From 671ce154293fbb63f4ea2946aa2abf4d33e60bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20K=C3=BC=C3=A7=C3=BCk?= Date: Mon, 17 Jul 2023 08:10:34 +0200 Subject: [PATCH 1/2] Url Type Implemented - Url Type - Types Tests - EF Convertes - EF Tests - Percentage tests modified, 'cause were not working on Turkish decimal environment --- .../Types/Url/UrlConverter.cs | 9 ++++ src/Nox.Types/Types/Url/Url.cs | 45 ++++++++++++++++++ .../Configuration/CountryDbConfiguration.cs | 2 + .../EntityFrameworkTests/Models/Country.cs | 2 + .../NoxTypesEntityFrameworkTests.cs | 13 ++++-- .../Types/Percentage/PercentageTests.cs | 4 +- tests/Nox.Types.Tests/Types/Url/UrlTests.cs | 46 +++++++++++++++++++ 7 files changed, 115 insertions(+), 6 deletions(-) create mode 100644 src/Nox.Types.EntityFramework/Types/Url/UrlConverter.cs create mode 100644 src/Nox.Types/Types/Url/Url.cs create mode 100644 tests/Nox.Types.Tests/Types/Url/UrlTests.cs diff --git a/src/Nox.Types.EntityFramework/Types/Url/UrlConverter.cs b/src/Nox.Types.EntityFramework/Types/Url/UrlConverter.cs new file mode 100644 index 0000000000..a4a5fac1aa --- /dev/null +++ b/src/Nox.Types.EntityFramework/Types/Url/UrlConverter.cs @@ -0,0 +1,9 @@ +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace Nox.Types.EntityFramework.Types; + +public class UrlConverter : ValueConverter +{ + public UrlConverter() : base(url => url.Value.AbsoluteUri, + url => Url.From(url)) { } +} diff --git a/src/Nox.Types/Types/Url/Url.cs b/src/Nox.Types/Types/Url/Url.cs new file mode 100644 index 0000000000..79aba9db73 --- /dev/null +++ b/src/Nox.Types/Types/Url/Url.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace Nox.Types; + +public sealed class Url : ValueObject +{ + + public static Url From(string value) + { + if (!System.Uri.TryCreate(value, System.UriKind.Absolute, out var uriValue)) + { + throw new TypeValidationException( + new List { + new ValidationFailure("Uri", $"The string '{value}' you provided, is not a valid Uri.") }); + } + + var newObject = new Url + { + Value = uriValue + }; + + return newObject; + } + + internal override ValidationResult Validate() + { + var result = base.Validate(); + + bool isValid = System.Uri.TryCreate(base.Value.ToString(), UriKind.Absolute, out var uriResult) && + (uriResult.Scheme == System.Uri.UriSchemeHttps + || uriResult.Scheme == System.Uri.UriSchemeHttp + || uriResult.Scheme == System.Uri.UriSchemeMailto + || uriResult.Scheme == System.Uri.UriSchemeFtp + || uriResult.Scheme == System.Uri.UriSchemeFile); + + if (!isValid) + { + result.Errors.Add(new ValidationFailure(nameof(Value), + $"Could not create a Nox Url type; as value {Value} is not a valid Url.")); + } + + return result; + } +} \ No newline at end of file diff --git a/tests/Nox.Types.Tests/EntityFrameworkTests/Configuration/CountryDbConfiguration.cs b/tests/Nox.Types.Tests/EntityFrameworkTests/Configuration/CountryDbConfiguration.cs index 88f331fb6c..a06c463dbc 100644 --- a/tests/Nox.Types.Tests/EntityFrameworkTests/Configuration/CountryDbConfiguration.cs +++ b/tests/Nox.Types.Tests/EntityFrameworkTests/Configuration/CountryDbConfiguration.cs @@ -28,6 +28,8 @@ public void Configure(EntityTypeBuilder builder) builder.Property(e => e.Date).HasConversion(); builder.Property(e => e.LocalTimeZone).HasConversion(); builder.Property(e => e.Uri).HasConversion(); + builder.Property(e => e.Url).HasConversion(); + // Configure Multi-value ValueObjects builder.OwnsOne(e => e.LatLong).Ignore(p => p.Value); diff --git a/tests/Nox.Types.Tests/EntityFrameworkTests/Models/Country.cs b/tests/Nox.Types.Tests/EntityFrameworkTests/Models/Country.cs index 5021a2bc6e..3d971181cb 100644 --- a/tests/Nox.Types.Tests/EntityFrameworkTests/Models/Country.cs +++ b/tests/Nox.Types.Tests/EntityFrameworkTests/Models/Country.cs @@ -95,6 +95,8 @@ public sealed class Country public Uri Uri { get; set; } = null!; + public Url Url { get; set; } = null!; + /// /// Gets or sets the date. /// diff --git a/tests/Nox.Types.Tests/EntityFrameworkTests/NoxTypesEntityFrameworkTests.cs b/tests/Nox.Types.Tests/EntityFrameworkTests/NoxTypesEntityFrameworkTests.cs index bcfb6aafdd..255bc6af35 100644 --- a/tests/Nox.Types.Tests/EntityFrameworkTests/NoxTypesEntityFrameworkTests.cs +++ b/tests/Nox.Types.Tests/EntityFrameworkTests/NoxTypesEntityFrameworkTests.cs @@ -7,6 +7,8 @@ namespace Nox.Types.Tests.EntityFrameworkTests; public class NoxTypesEntityFrameworkTests : TestWithSqlite { private const string Sample_Uri = "https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName"; + private const string Sample_Url = "https://www.myregus.com/"; + [Fact] public async Task DatabaseIsAvailableAndCanBeConnectedTo() { @@ -46,7 +48,8 @@ public void Countries_CanRead_LatLong() MACAddress = MacAddress.From("AE-D4-32-2C-CF-EF"), Date = Date.From(new DateTime(2023, 11, 25), new()), LocalTimeZone = TimeZoneCode.From("CET"), - Uri = Uri.From(Sample_Uri) + Uri = Uri.From(Sample_Uri), + Url = Url.From(Sample_Url) }; DbContext.Countries!.Add(newItem); DbContext.SaveChanges(); @@ -85,7 +88,9 @@ public void AddedItemShouldGetGeneratedId() MACAddress = MacAddress.From("AE-D4-32-2C-CF-EF"), Uri = Uri.From(Sample_Uri), Date = Date.From(new DateTime(2023, 11, 25), new()), - LocalTimeZone = TimeZoneCode.From("CET") + LocalTimeZone = TimeZoneCode.From("CET"), + Url = Url.From(Sample_Url) + }; DbContext.Countries!.Add(newItem); DbContext.SaveChanges(); @@ -123,9 +128,9 @@ public void AddedItemShouldGetGeneratedId() Assert.Equal("AED4322CCFEF", item.MACAddress.Value); Assert.Equal(new DateTime(2023, 11, 25).Date, item.Date.Value); Assert.Equal("CET", item.LocalTimeZone.Value); - - Assert.Equal(Sample_Uri, item.Uri.Value.AbsoluteUri); + Assert.Equal(Sample_Url, item.Url.Value.AbsoluteUri); Assert.Equal(Sample_Uri, item.Uri.Value.AbsoluteUri); + AssertStreetAddress(streetAddress, item.StreetAddress); } diff --git a/tests/Nox.Types.Tests/Types/Percentage/PercentageTests.cs b/tests/Nox.Types.Tests/Types/Percentage/PercentageTests.cs index d9f7464a7d..850da0c1fd 100644 --- a/tests/Nox.Types.Tests/Types/Percentage/PercentageTests.cs +++ b/tests/Nox.Types.Tests/Types/Percentage/PercentageTests.cs @@ -23,7 +23,7 @@ public void Percentage_Constructor_ThrowsException_WhenValueExceedsMaxAllowed() var action = () => Percentage.From(testPercentage); action.Should().Throw() - .And.Errors.Should().BeEquivalentTo(new[] { new ValidationFailure("Value", "Could not create a Nox Percentage type a value 3.2 is greater than than the maximum specified value of 1") }); + .And.Errors.Should().BeEquivalentTo(new[] { new ValidationFailure("Value", $"Could not create a Nox Percentage type a value {testPercentage} is greater than than the maximum specified value of 1") }); } @@ -35,7 +35,7 @@ public void Percentage_Constructor_ThrowsException_WhenValueIsLessThanMinAllowed var action = () => Percentage.From(testPercentage); action.Should().Throw() - .And.Errors.Should().BeEquivalentTo(new[] { new ValidationFailure("Value", "Could not create a Nox Percentage type as value -0.3 is less than than the minimum specified value of 0") }); + .And.Errors.Should().BeEquivalentTo(new[] { new ValidationFailure("Value", $"Could not create a Nox Percentage type as value {testPercentage} is less than than the minimum specified value of 0") }); } [Fact] diff --git a/tests/Nox.Types.Tests/Types/Url/UrlTests.cs b/tests/Nox.Types.Tests/Types/Url/UrlTests.cs new file mode 100644 index 0000000000..5da6c8b6fa --- /dev/null +++ b/tests/Nox.Types.Tests/Types/Url/UrlTests.cs @@ -0,0 +1,46 @@ +using FluentAssertions; + +namespace Nox.Types.Tests.Types; + +public class UrlTests +{ + [Theory] + [InlineData("https://www.google.com")] + [InlineData("https://www.google.com/")] + [InlineData("https://www.google.com/test")] + [InlineData("https://www.google.com/test/test1?q=123")] + [InlineData("https://example.org/test/test1?search=test-question#part2")] + [InlineData("file://website.com/pathtofile/intro.pdf")] + [InlineData("mailto:abc@iwgplc.com")] + public void UrlFromUri_ShouldBe_Validated(string url) + { + var expected = new System.Uri(url); + var actual = Url.From(expected); + actual.Value.AbsoluteUri.Should().Be(expected.AbsoluteUri); + } + + [Theory] + [InlineData("https://www.google.com/")] + [InlineData("https://www.google.com/test")] + [InlineData("https://www.google.com/test/test1?q=123")] + [InlineData("https://example.org/test/test1?search=test-question#part2")] + [InlineData("file://website.com/pathtofile/intro.pdf")] + [InlineData("mailto:abc@iwgplc.com")] + public void UrlFromString_ShouldBe_Validated(string expected) + { + var actual = Url.From(expected); + actual.Value.AbsoluteUri.Should().Be(expected); + } + + + [Theory] + [InlineData("abc://www.google.com/")] + public void BadUrl_Should_ThrowException(string input) + { + var uri = new System.Uri(input); + Action init = () => { var url = Url.From(uri); }; + + init.Should().Throw(); + } + +} \ No newline at end of file From ba39e7e69a66e4a34d8155ac85b8abfd0c959bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20K=C3=BC=C3=A7=C3=BCk?= Date: Mon, 17 Jul 2023 16:04:38 +0200 Subject: [PATCH 2/2] =?UTF-8?q?merged=20from=20ma=C4=B1n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Nox.Generator.sln | 228 ++++++++++++++++++ .../NoxTypesEntityFrameworkTests.cs | 1 - 2 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 Nox.Generator.sln diff --git a/Nox.Generator.sln b/Nox.Generator.sln new file mode 100644 index 0000000000..273fe0107a --- /dev/null +++ b/Nox.Generator.sln @@ -0,0 +1,228 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33723.286 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Generator", "src\Nox.Generator\Nox.Generator.csproj", "{D51EC17D-12C3-4101-BCF1-4EC65822CC5B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampleWebApp", "src\SampleWebApp\SampleWebApp.csproj", "{8FC400B5-B768-4712-BDBA-359BC2606B1B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Lib", "src\Nox.Lib\Nox.Lib.csproj", "{15AAEF8D-469F-4EA3-80D3-8D746A53E18A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Monitoring.ElasticApm", "src\Nox.Monitoring.ElasticApm\Nox.Monitoring.ElasticApm.csproj", "{23D83C90-BC4D-4D55-982E-67A55EE97D0D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Abstractions", "src\Nox.Abstractions\Nox.Abstractions.csproj", "{477711F6-C7D5-45D5-8E8B-A1810DD307D1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Monitoring", "src\Nox.Monitoring\Nox.Monitoring.csproj", "{E054D012-2AA7-4B70-9CDC-253FF510B0C8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Logging", "src\Nox.Logging\Nox.Logging.csproj", "{DBA5FE1B-100F-460F-B192-320B5C85949C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Logging.Serilog", "src\Nox.Logging.Serilog\Nox.Logging.Serilog.csproj", "{7BD651E7-3B5C-4118-963C-629C34F30258}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Types.EntityFramework.Tests", "tests\Nox.Types.EntityFramework.Tests\Nox.Types.EntityFramework.Tests.csproj", "{9FFE063D-3093-4C0A-AFAA-85D34E5E4AE1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Types", "Types", "{110C16ED-A11D-4B5A-ABB2-0E0F4692C77A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution", "Solution", "{4A930AE8-3A32-48A4-BCDB-0F55FA53AE4B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lib", "Lib", "{672E561C-44EA-43EE-8C9D-9E70D8DFB80F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Monitoring", "Monitoring", "{FCAB2F70-846A-4C13-8332-48B70C792256}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Generator.Tests", "tests\Nox.Generator.Tests\Nox.Generator.Tests.csproj", "{58599385-98BD-44A4-9990-A7AEDCAFC8A0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0SolutionItems", "0SolutionItems", "{820129FF-6448-42E2-8792-ABE1A8CBF722}" + ProjectSection(SolutionItems) = preProject + GitVersion.yml = GitVersion.yml + readme.md = readme.md + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Solution", "src\Nox.Solution\Nox.Solution.csproj", "{6E3F2DD4-6AE5-49B2-B5E4-04B21E073B4F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Solution.Tests", "tests\Nox.Solution.Tests\Nox.Solution.Tests.csproj", "{FAF13809-A3BA-417D-AC25-B682011AB655}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Types", "src\Nox.Types\Nox.Types.csproj", "{A19EC5EA-3E4F-47CD-A9B8-802663E9F489}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Types.EntityFramework", "src\Nox.Types.EntityFramework\Nox.Types.EntityFramework.csproj", "{3649B470-E632-41F7-A7B9-5331B21B3560}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Types.Tests", "tests\Nox.Types.Tests\Nox.Types.Tests.csproj", "{A1C3BA6A-7055-4AFD-9EB3-3B9019D3E7A4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{30CC9E47-ED93-4E09-A567-2BF3B414B882}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Docs.Tests", "tests\Nox.Docs.Tests\Nox.Docs.Tests\Nox.Docs.Tests.csproj", "{07E3D341-708A-4399-93CA-0CAC8ABE3364}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Docs", "src\Nox.Docs\Nox.Docs.csproj", "{18817438-77AB-4547-98D8-9BC9973C68C5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DatabaseProviders", "DatabaseProviders", "{873BFCC4-435D-44D7-8287-1FB1574B2319}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.EntityFramework.Postgres", "src\Nox.EntityFramework.Postgres\Nox.EntityFramework.Postgres.csproj", "{55D717E8-6043-487C-83A9-8AE2E92086D7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.EntityFramework.SqlServer", "src\Nox.EntityFramework.SqlServer\Nox.EntityFramework.SqlServer.csproj", "{A851D896-AC63-4DC0-98FC-9E1EEA5DACE5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.EntityFramework.Sqlite", "src\Nox.EntityFramework.Sqlite\Nox.EntityFramework.Sqlite.csproj", "{049C94B7-EC09-4511-B6BC-21DE2C9C54E1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Generator", "Generator", "{154B838E-65DE-479F-80B7-D48CF9862306}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Tests", "tests\Nox.Tests\Nox.Tests.csproj", "{749A8B24-397E-4794-B647-3557E19FBA41}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dockerfiles", "dockerfiles", "{0B013153-526C-4B3B-8363-2D8ECA36AFFC}" + ProjectSection(SolutionItems) = preProject + docker-compose.elastic.yml = docker-compose.elastic.yml + docker-compose.hashicorp.yml = docker-compose.hashicorp.yml + docker-compose.postgres.yml = docker-compose.postgres.yml + docker-compose.sqlServer.yml = docker-compose.sqlServer.yml + docker-compose.yml = docker-compose.yml + init_org_vault.json = init_org_vault.json + init_sln_vault.json = init_sln_vault.json + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Secrets", "src\Nox.Secrets\Nox.Secrets.csproj", "{5A884FCB-BD50-4C38-B692-030F3BA0AB0F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Secrets.Tests", "tests\Nox.Secrets.Tests\Nox.Secrets.Tests.csproj", "{9C5DF8EC-0F0C-4FF0-86CC-3BE5181E6292}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Secrets", "Secrets", "{2B151195-53F6-45CD-84D5-F1E18CDFF1B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Secrets.Azure", "src\Nox.Secrets.Azure\Nox.Secrets.Azure.csproj", "{D017DD5E-2DE1-462A-A891-CAB16C8BF940}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nox.Secrets.Hashicorp", "src\Nox.Secrets.Hashicorp\Nox.Secrets.Hashicorp.csproj", "{0B3974A4-121C-486B-964F-9037DAD3C5E8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D51EC17D-12C3-4101-BCF1-4EC65822CC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D51EC17D-12C3-4101-BCF1-4EC65822CC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D51EC17D-12C3-4101-BCF1-4EC65822CC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D51EC17D-12C3-4101-BCF1-4EC65822CC5B}.Release|Any CPU.Build.0 = Release|Any CPU + {8FC400B5-B768-4712-BDBA-359BC2606B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FC400B5-B768-4712-BDBA-359BC2606B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FC400B5-B768-4712-BDBA-359BC2606B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FC400B5-B768-4712-BDBA-359BC2606B1B}.Release|Any CPU.Build.0 = Release|Any CPU + {15AAEF8D-469F-4EA3-80D3-8D746A53E18A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15AAEF8D-469F-4EA3-80D3-8D746A53E18A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15AAEF8D-469F-4EA3-80D3-8D746A53E18A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15AAEF8D-469F-4EA3-80D3-8D746A53E18A}.Release|Any CPU.Build.0 = Release|Any CPU + {23D83C90-BC4D-4D55-982E-67A55EE97D0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23D83C90-BC4D-4D55-982E-67A55EE97D0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23D83C90-BC4D-4D55-982E-67A55EE97D0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23D83C90-BC4D-4D55-982E-67A55EE97D0D}.Release|Any CPU.Build.0 = Release|Any CPU + {477711F6-C7D5-45D5-8E8B-A1810DD307D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {477711F6-C7D5-45D5-8E8B-A1810DD307D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {477711F6-C7D5-45D5-8E8B-A1810DD307D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {477711F6-C7D5-45D5-8E8B-A1810DD307D1}.Release|Any CPU.Build.0 = Release|Any CPU + {E054D012-2AA7-4B70-9CDC-253FF510B0C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E054D012-2AA7-4B70-9CDC-253FF510B0C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E054D012-2AA7-4B70-9CDC-253FF510B0C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E054D012-2AA7-4B70-9CDC-253FF510B0C8}.Release|Any CPU.Build.0 = Release|Any CPU + {DBA5FE1B-100F-460F-B192-320B5C85949C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBA5FE1B-100F-460F-B192-320B5C85949C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBA5FE1B-100F-460F-B192-320B5C85949C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBA5FE1B-100F-460F-B192-320B5C85949C}.Release|Any CPU.Build.0 = Release|Any CPU + {7BD651E7-3B5C-4118-963C-629C34F30258}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BD651E7-3B5C-4118-963C-629C34F30258}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BD651E7-3B5C-4118-963C-629C34F30258}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BD651E7-3B5C-4118-963C-629C34F30258}.Release|Any CPU.Build.0 = Release|Any CPU + {9FFE063D-3093-4C0A-AFAA-85D34E5E4AE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FFE063D-3093-4C0A-AFAA-85D34E5E4AE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FFE063D-3093-4C0A-AFAA-85D34E5E4AE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FFE063D-3093-4C0A-AFAA-85D34E5E4AE1}.Release|Any CPU.Build.0 = Release|Any CPU + {58599385-98BD-44A4-9990-A7AEDCAFC8A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58599385-98BD-44A4-9990-A7AEDCAFC8A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58599385-98BD-44A4-9990-A7AEDCAFC8A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {58599385-98BD-44A4-9990-A7AEDCAFC8A0}.Release|Any CPU.Build.0 = Release|Any CPU + {6E3F2DD4-6AE5-49B2-B5E4-04B21E073B4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E3F2DD4-6AE5-49B2-B5E4-04B21E073B4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E3F2DD4-6AE5-49B2-B5E4-04B21E073B4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E3F2DD4-6AE5-49B2-B5E4-04B21E073B4F}.Release|Any CPU.Build.0 = Release|Any CPU + {FAF13809-A3BA-417D-AC25-B682011AB655}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAF13809-A3BA-417D-AC25-B682011AB655}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAF13809-A3BA-417D-AC25-B682011AB655}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAF13809-A3BA-417D-AC25-B682011AB655}.Release|Any CPU.Build.0 = Release|Any CPU + {A19EC5EA-3E4F-47CD-A9B8-802663E9F489}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A19EC5EA-3E4F-47CD-A9B8-802663E9F489}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A19EC5EA-3E4F-47CD-A9B8-802663E9F489}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A19EC5EA-3E4F-47CD-A9B8-802663E9F489}.Release|Any CPU.Build.0 = Release|Any CPU + {3649B470-E632-41F7-A7B9-5331B21B3560}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3649B470-E632-41F7-A7B9-5331B21B3560}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3649B470-E632-41F7-A7B9-5331B21B3560}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3649B470-E632-41F7-A7B9-5331B21B3560}.Release|Any CPU.Build.0 = Release|Any CPU + {A1C3BA6A-7055-4AFD-9EB3-3B9019D3E7A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1C3BA6A-7055-4AFD-9EB3-3B9019D3E7A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1C3BA6A-7055-4AFD-9EB3-3B9019D3E7A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1C3BA6A-7055-4AFD-9EB3-3B9019D3E7A4}.Release|Any CPU.Build.0 = Release|Any CPU + {07E3D341-708A-4399-93CA-0CAC8ABE3364}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07E3D341-708A-4399-93CA-0CAC8ABE3364}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07E3D341-708A-4399-93CA-0CAC8ABE3364}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07E3D341-708A-4399-93CA-0CAC8ABE3364}.Release|Any CPU.Build.0 = Release|Any CPU + {18817438-77AB-4547-98D8-9BC9973C68C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18817438-77AB-4547-98D8-9BC9973C68C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {18817438-77AB-4547-98D8-9BC9973C68C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {18817438-77AB-4547-98D8-9BC9973C68C5}.Release|Any CPU.Build.0 = Release|Any CPU + {55D717E8-6043-487C-83A9-8AE2E92086D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55D717E8-6043-487C-83A9-8AE2E92086D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55D717E8-6043-487C-83A9-8AE2E92086D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55D717E8-6043-487C-83A9-8AE2E92086D7}.Release|Any CPU.Build.0 = Release|Any CPU + {A851D896-AC63-4DC0-98FC-9E1EEA5DACE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A851D896-AC63-4DC0-98FC-9E1EEA5DACE5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A851D896-AC63-4DC0-98FC-9E1EEA5DACE5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A851D896-AC63-4DC0-98FC-9E1EEA5DACE5}.Release|Any CPU.Build.0 = Release|Any CPU + {049C94B7-EC09-4511-B6BC-21DE2C9C54E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {049C94B7-EC09-4511-B6BC-21DE2C9C54E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {049C94B7-EC09-4511-B6BC-21DE2C9C54E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {049C94B7-EC09-4511-B6BC-21DE2C9C54E1}.Release|Any CPU.Build.0 = Release|Any CPU + {749A8B24-397E-4794-B647-3557E19FBA41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {749A8B24-397E-4794-B647-3557E19FBA41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {749A8B24-397E-4794-B647-3557E19FBA41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {749A8B24-397E-4794-B647-3557E19FBA41}.Release|Any CPU.Build.0 = Release|Any CPU + {5A884FCB-BD50-4C38-B692-030F3BA0AB0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A884FCB-BD50-4C38-B692-030F3BA0AB0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A884FCB-BD50-4C38-B692-030F3BA0AB0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A884FCB-BD50-4C38-B692-030F3BA0AB0F}.Release|Any CPU.Build.0 = Release|Any CPU + {9C5DF8EC-0F0C-4FF0-86CC-3BE5181E6292}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C5DF8EC-0F0C-4FF0-86CC-3BE5181E6292}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C5DF8EC-0F0C-4FF0-86CC-3BE5181E6292}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C5DF8EC-0F0C-4FF0-86CC-3BE5181E6292}.Release|Any CPU.Build.0 = Release|Any CPU + {D017DD5E-2DE1-462A-A891-CAB16C8BF940}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D017DD5E-2DE1-462A-A891-CAB16C8BF940}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D017DD5E-2DE1-462A-A891-CAB16C8BF940}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D017DD5E-2DE1-462A-A891-CAB16C8BF940}.Release|Any CPU.Build.0 = Release|Any CPU + {0B3974A4-121C-486B-964F-9037DAD3C5E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B3974A4-121C-486B-964F-9037DAD3C5E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B3974A4-121C-486B-964F-9037DAD3C5E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B3974A4-121C-486B-964F-9037DAD3C5E8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {D51EC17D-12C3-4101-BCF1-4EC65822CC5B} = {154B838E-65DE-479F-80B7-D48CF9862306} + {15AAEF8D-469F-4EA3-80D3-8D746A53E18A} = {672E561C-44EA-43EE-8C9D-9E70D8DFB80F} + {23D83C90-BC4D-4D55-982E-67A55EE97D0D} = {FCAB2F70-846A-4C13-8332-48B70C792256} + {477711F6-C7D5-45D5-8E8B-A1810DD307D1} = {672E561C-44EA-43EE-8C9D-9E70D8DFB80F} + {E054D012-2AA7-4B70-9CDC-253FF510B0C8} = {672E561C-44EA-43EE-8C9D-9E70D8DFB80F} + {DBA5FE1B-100F-460F-B192-320B5C85949C} = {672E561C-44EA-43EE-8C9D-9E70D8DFB80F} + {7BD651E7-3B5C-4118-963C-629C34F30258} = {FCAB2F70-846A-4C13-8332-48B70C792256} + {9FFE063D-3093-4C0A-AFAA-85D34E5E4AE1} = {873BFCC4-435D-44D7-8287-1FB1574B2319} + {58599385-98BD-44A4-9990-A7AEDCAFC8A0} = {154B838E-65DE-479F-80B7-D48CF9862306} + {6E3F2DD4-6AE5-49B2-B5E4-04B21E073B4F} = {4A930AE8-3A32-48A4-BCDB-0F55FA53AE4B} + {FAF13809-A3BA-417D-AC25-B682011AB655} = {4A930AE8-3A32-48A4-BCDB-0F55FA53AE4B} + {A19EC5EA-3E4F-47CD-A9B8-802663E9F489} = {110C16ED-A11D-4B5A-ABB2-0E0F4692C77A} + {3649B470-E632-41F7-A7B9-5331B21B3560} = {873BFCC4-435D-44D7-8287-1FB1574B2319} + {A1C3BA6A-7055-4AFD-9EB3-3B9019D3E7A4} = {110C16ED-A11D-4B5A-ABB2-0E0F4692C77A} + {07E3D341-708A-4399-93CA-0CAC8ABE3364} = {30CC9E47-ED93-4E09-A567-2BF3B414B882} + {18817438-77AB-4547-98D8-9BC9973C68C5} = {30CC9E47-ED93-4E09-A567-2BF3B414B882} + {55D717E8-6043-487C-83A9-8AE2E92086D7} = {873BFCC4-435D-44D7-8287-1FB1574B2319} + {A851D896-AC63-4DC0-98FC-9E1EEA5DACE5} = {873BFCC4-435D-44D7-8287-1FB1574B2319} + {049C94B7-EC09-4511-B6BC-21DE2C9C54E1} = {873BFCC4-435D-44D7-8287-1FB1574B2319} + {0B013153-526C-4B3B-8363-2D8ECA36AFFC} = {820129FF-6448-42E2-8792-ABE1A8CBF722} + {5A884FCB-BD50-4C38-B692-030F3BA0AB0F} = {2B151195-53F6-45CD-84D5-F1E18CDFF1B0} + {9C5DF8EC-0F0C-4FF0-86CC-3BE5181E6292} = {2B151195-53F6-45CD-84D5-F1E18CDFF1B0} + {D017DD5E-2DE1-462A-A891-CAB16C8BF940} = {2B151195-53F6-45CD-84D5-F1E18CDFF1B0} + {0B3974A4-121C-486B-964F-9037DAD3C5E8} = {2B151195-53F6-45CD-84D5-F1E18CDFF1B0} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0E72B357-9E1E-43B5-9868-8D2B74CB2AF0} + EndGlobalSection +EndGlobal diff --git a/tests/Nox.Types.Tests/EntityFrameworkTests/NoxTypesEntityFrameworkTests.cs b/tests/Nox.Types.Tests/EntityFrameworkTests/NoxTypesEntityFrameworkTests.cs index 476ef502a7..e9593d5f6d 100644 --- a/tests/Nox.Types.Tests/EntityFrameworkTests/NoxTypesEntityFrameworkTests.cs +++ b/tests/Nox.Types.Tests/EntityFrameworkTests/NoxTypesEntityFrameworkTests.cs @@ -96,7 +96,6 @@ public void AddedItemShouldGetGeneratedId() LocalTimeZone = TimeZoneCode.From("CET"), Url = Url.From(Sample_Url), StreetAddressJson = Json.From(JsonSerializer.Serialize(streetAddress, new JsonSerializerOptions { WriteIndented = true })), - LocalTimeZone = TimeZoneCode.From("CET"), IsLandLocked = Boolean.From(true), DateTimeDuration = DateTimeDuration.From(days: 10, 5, 2, 1), };