From 7ff15ce6c38288548641be5e528631e3c1f9d304 Mon Sep 17 00:00:00 2001 From: John Gathogo Date: Thu, 12 Jun 2025 10:03:55 +0300 Subject: [PATCH 1/2] Default EnableCaseInsensitive to true when initializing a new instance of ODataUriResolver --- .../UriParser/Resolver/ODataUriResolver.cs | 2 +- .../UriParser/Binders/InnerPathTokenBinderTests.cs | 10 ++++++---- .../UriParser/Metadata/ODataUriResolverTests.cs | 4 ++-- .../UriParser/ODataUriParserTests.cs | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Microsoft.OData.Core/UriParser/Resolver/ODataUriResolver.cs b/src/Microsoft.OData.Core/UriParser/Resolver/ODataUriResolver.cs index 24492b3356..eadd9d5113 100644 --- a/src/Microsoft.OData.Core/UriParser/Resolver/ODataUriResolver.cs +++ b/src/Microsoft.OData.Core/UriParser/Resolver/ODataUriResolver.cs @@ -35,7 +35,7 @@ public class ODataUriResolver /// /// All extensions should look at this property and keep case sensitive behavior consistent. /// - public virtual bool EnableCaseInsensitive { get; set; } + public virtual bool EnableCaseInsensitive { get; set; } = true; /// /// Gets and sets the optional-$-sign-prefix for OData system query option. diff --git a/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/Binders/InnerPathTokenBinderTests.cs b/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/Binders/InnerPathTokenBinderTests.cs index 2d8a146bcd..ba1239bcd2 100644 --- a/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/Binders/InnerPathTokenBinderTests.cs +++ b/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/Binders/InnerPathTokenBinderTests.cs @@ -169,11 +169,13 @@ public void BindPropertyShouldReturnCorrectPropertyIfFoundForComplex() Assert.Same(HardCodedTestModel.GetAddressMyNeighborsProperty(), result); } - [Fact] - public void BindPropertyShouldBeCaseSensitive() + [Theory] + [InlineData("Shoe")] + [InlineData("shoe")] + public void BindPropertyShouldNotBeCaseSensitive(string propertyName) { - var result = InnerPathTokenBinder.BindProperty(HardCodedTestModel.GetPersonTypeReference(), "shoe", DefaultUriResolver); - Assert.Null(result); + var result = InnerPathTokenBinder.BindProperty(HardCodedTestModel.GetPersonTypeReference(), propertyName, DefaultUriResolver); + Assert.Same(HardCodedTestModel.GetPersonShoeProp(), result); } [Fact] diff --git a/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/Metadata/ODataUriResolverTests.cs b/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/Metadata/ODataUriResolverTests.cs index 9b5fd80375..e81b385bc8 100644 --- a/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/Metadata/ODataUriResolverTests.cs +++ b/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/Metadata/ODataUriResolverTests.cs @@ -21,10 +21,10 @@ namespace Microsoft.OData.Tests.UriParser.Metadata public class ODataUriResolverTests : ExtensionTestBase { [Fact] - public void DefaultEnableCaseInsensitiveShouldbeFalse() + public void DefaultEnableCaseInsensitiveShouldBeTrue() { ODataQueryOptionParser parser2 = new ODataQueryOptionParser(HardCodedTestModel.TestModel, null, null, new Dictionary()) { Resolver = new ODataUriResolver() }; - Assert.False(parser2.Resolver.EnableCaseInsensitive); + Assert.True(parser2.Resolver.EnableCaseInsensitive); } [Fact] diff --git a/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/ODataUriParserTests.cs b/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/ODataUriParserTests.cs index 4766b4a5bd..adae95e93a 100644 --- a/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/ODataUriParserTests.cs +++ b/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/ODataUriParserTests.cs @@ -343,9 +343,9 @@ public void DefaultEnableTemplateParsingShouldBeFalse() } [Fact] - public void DefaultEnableCaseInsensitiveBuiltinIdentifierShouldBeFalse() + public void DefaultEnableCaseInsensitiveBuiltinIdentifierShouldBeTrue() { - Assert.False(new ODataUriResolver().EnableCaseInsensitive); + Assert.True(new ODataUriResolver().EnableCaseInsensitive); } [Fact] From 4b338d90f27884b13841e0eebc2873b8c52ef491 Mon Sep 17 00:00:00 2001 From: John Gathogo Date: Mon, 16 Jun 2025 10:13:06 +0300 Subject: [PATCH 2/2] Address test for ODataUriResolver.EnableCaseInsenstive to false --- .../UriParser/ODataUriParserTests.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/ODataUriParserTests.cs b/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/ODataUriParserTests.cs index adae95e93a..7eef020a04 100644 --- a/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/ODataUriParserTests.cs +++ b/test/UnitTests/Microsoft.OData.Core.Tests/UriParser/ODataUriParserTests.cs @@ -348,6 +348,12 @@ public void DefaultEnableCaseInsensitiveBuiltinIdentifierShouldBeTrue() Assert.True(new ODataUriResolver().EnableCaseInsensitive); } + [Fact] + public void TestEnableCaseInsensitiveSetToFalse() + { + Assert.False((new ODataUriResolver { EnableCaseInsensitive = false }).EnableCaseInsensitive); + } + [Fact] public void DefaultParameterAliasNodesShouldBeEmtpy() {