From 9bb7186c7ea203eae4ba4e67fea84ee3975ca421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mariusz=20St=C4=99pie=C5=84?= Date: Thu, 23 Jan 2025 21:43:24 +0100 Subject: [PATCH 1/2] add tests for constant fields --- .../Helpers/Models/AppSettings.cs | 6 ++++++ test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/test/System.Linq.Dynamic.Core.Tests/Helpers/Models/AppSettings.cs b/test/System.Linq.Dynamic.Core.Tests/Helpers/Models/AppSettings.cs index 260ffef2..3c6b96c5 100644 --- a/test/System.Linq.Dynamic.Core.Tests/Helpers/Models/AppSettings.cs +++ b/test/System.Linq.Dynamic.Core.Tests/Helpers/Models/AppSettings.cs @@ -14,6 +14,8 @@ public static class AppSettings { { "jwt", "test" } }; + + public const string ConstantField = "test"; } [DynamicLinqType] @@ -28,6 +30,8 @@ public static class AppSettings2 { { "jwt", "test" } }; + + public const string ConstantField = "test"; } public class AppSettings3 @@ -41,5 +45,7 @@ public class AppSettings3 { { "jwt", "test" } }; + + public const string ConstantField = "test"; } } \ No newline at end of file diff --git a/test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs b/test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs index 787124e3..2cd4c083 100644 --- a/test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs +++ b/test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs @@ -85,8 +85,10 @@ public void UsingSystemReflectionAssembly_ThrowsException(string selector) [Theory] [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsProp[\"jwt\"]")] [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsField[\"jwt\"]")] + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.ConstantField")] [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsProp[\"jwt\"]")] [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsField[\"jwt\"]")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.ConstantField")] public void UsingStaticClassAsType_ThrowsException(string selector) { // Arrange @@ -105,8 +107,10 @@ public void UsingStaticClassAsType_ThrowsException(string selector) [Theory] [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsProp[\"jwt\"]")] [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsField[\"jwt\"]")] + [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().ConstantField")] [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsProp[\"jwt\"]")] [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsField[\"jwt\"]")] + [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().ConstantField")] public void UsingClassAsType_ThrowsException(string selector) { // Arrange @@ -125,8 +129,10 @@ public void UsingClassAsType_ThrowsException(string selector) [Theory] [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsProp[\"jwt\"]")] [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsField[\"jwt\"]")] + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.ConstantField")] [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsProp[\"jwt\"]")] [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsField[\"jwt\"]")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.ConstantField")] public void UsingStaticClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvider_ShouldBeOk(string selector) { // Arrange @@ -148,8 +154,10 @@ public void UsingStaticClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvid [Theory] [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "SettingsProp[\"jwt\"]")] [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "SettingsField[\"jwt\"]")] + [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "ConstantField")] [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "SettingsProp[\"jwt\"]")] [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "SettingsField[\"jwt\"]")] + [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "ConstantField")] public void UsingClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvider_ShouldBeOk(string selector1, string selector2) { // Arrange @@ -171,8 +179,10 @@ public void UsingClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvider_Sho [Theory] [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings2.SettingsProp[\"jwt\"]")] [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings2.SettingsField[\"jwt\"]")] + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings2.ConstantField")] [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings2.SettingsProp[\"jwt\"]")] [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings2.SettingsField[\"jwt\"]")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings2.ConstantField")] public void UsingStaticClassWithDynamicTypeAttribute_ShouldBeOk(string selector) { // Arrange From c6ad26fe39d12e6319ed2cc07ec66ec7108d8215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mariusz=20St=C4=99pie=C5=84?= Date: Thu, 23 Jan 2025 22:00:00 +0100 Subject: [PATCH 2/2] fix syntax in statics tests --- .../SecurityTests.cs | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs b/test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs index 2cd4c083..53fd16c2 100644 --- a/test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs +++ b/test/System.Linq.Dynamic.Core.Tests/SecurityTests.cs @@ -105,12 +105,12 @@ public void UsingStaticClassAsType_ThrowsException(string selector) } [Theory] - [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsProp[\"jwt\"]")] - [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsField[\"jwt\"]")] - [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().ConstantField")] - [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsProp[\"jwt\"]")] - [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsField[\"jwt\"]")] - [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().ConstantField")] + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.SettingsProp[\"jwt\"]")] + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.SettingsField[\"jwt\"]")] + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.ConstantField")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.SettingsProp[\"jwt\"]")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.SettingsField[\"jwt\"]")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.ConstantField")] public void UsingClassAsType_ThrowsException(string selector) { // Arrange @@ -152,13 +152,13 @@ public void UsingStaticClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvid } [Theory] - [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "SettingsProp[\"jwt\"]")] - [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "SettingsField[\"jwt\"]")] - [InlineData("new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "ConstantField")] - [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "SettingsProp[\"jwt\"]")] - [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "SettingsField[\"jwt\"]")] - [InlineData("c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()", "ConstantField")] - public void UsingClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvider_ShouldBeOk(string selector1, string selector2) + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.SettingsProp[\"jwt\"]")] + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.SettingsField[\"jwt\"]")] + [InlineData("System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.ConstantField")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.SettingsProp[\"jwt\"]")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.SettingsField[\"jwt\"]")] + [InlineData("c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3.ConstantField")] + public void UsingClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvider_ShouldBeOk(string selector) { // Arrange var config = new ParsingConfig(); @@ -170,7 +170,7 @@ public void UsingClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvider_Sho }.AsQueryable(); // Act - Action action = () => queryable.Select(config, selector1).Select(config, selector2); + Action action = () => queryable.Select(config, selector); // Assert action.Should().NotThrow();