From c456606cbff95d3df834ec9701eaf9643e470ffb Mon Sep 17 00:00:00 2001 From: bo Date: Wed, 20 Dec 2023 14:24:02 +0100 Subject: [PATCH] #1351 Added tests for the Assessments.Transformation project --- Assessments-frontend.sln | 6 ++ .../Assessments.Transformation.Tests.csproj | 18 ++++++ .../DynamicPropertyObjectComparerTests.cs | 62 +++++++++++++++++++ Assessments.Transformation.Tests/Program.cs | 2 + 4 files changed, 88 insertions(+) create mode 100644 Assessments.Transformation.Tests/Assessments.Transformation.Tests.csproj create mode 100644 Assessments.Transformation.Tests/DynamicPropertyObjectComparerTests.cs create mode 100644 Assessments.Transformation.Tests/Program.cs diff --git a/Assessments-frontend.sln b/Assessments-frontend.sln index 9ffed9c16..270f3c3cd 100644 --- a/Assessments-frontend.sln +++ b/Assessments-frontend.sln @@ -30,6 +30,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Assessments.Data", "Assessm EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ML", "ML", "{A4A32A2F-CF27-4FC8-BFD9-63C6116D56E7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assessments.Transformation.Tests", "Assessments.Transformation.Tests\Assessments.Transformation.Tests.csproj", "{14703783-E9F4-43DD-93AB-E400C69028EE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -60,6 +62,10 @@ Global {2B7D3328-8C3A-40ED-9932-66B07374394B}.Debug|Any CPU.Build.0 = Debug|Any CPU {2B7D3328-8C3A-40ED-9932-66B07374394B}.Release|Any CPU.ActiveCfg = Release|Any CPU {2B7D3328-8C3A-40ED-9932-66B07374394B}.Release|Any CPU.Build.0 = Release|Any CPU + {14703783-E9F4-43DD-93AB-E400C69028EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14703783-E9F4-43DD-93AB-E400C69028EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14703783-E9F4-43DD-93AB-E400C69028EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14703783-E9F4-43DD-93AB-E400C69028EE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Assessments.Transformation.Tests/Assessments.Transformation.Tests.csproj b/Assessments.Transformation.Tests/Assessments.Transformation.Tests.csproj new file mode 100644 index 000000000..cb04fc3fe --- /dev/null +++ b/Assessments.Transformation.Tests/Assessments.Transformation.Tests.csproj @@ -0,0 +1,18 @@ + + + + Exe + net6.0 + enable + enable + + + + + + + + + + + diff --git a/Assessments.Transformation.Tests/DynamicPropertyObjectComparerTests.cs b/Assessments.Transformation.Tests/DynamicPropertyObjectComparerTests.cs new file mode 100644 index 000000000..b3ffee744 --- /dev/null +++ b/Assessments.Transformation.Tests/DynamicPropertyObjectComparerTests.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Assessments.Transformation.Models; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using static Assessments.Transformation.PublishDynamicProperties; + +namespace Assessments.Transformation.Tests +{ + [TestClass] + public class DynamicPropertyObjectComparerTests + { + [TestMethod] + public void GetHashCode_SameObject_ReturnsSameHashCode() + { + // Arrange + var comparer = new DynamicPropertyObjectComparer(); + var dynamicProperty = new DynamicProperty { Id = "1", References = new string[0], Properties = new DynamicProperty.Property[0] }; + + // Act + int hashCode1 = comparer.GetHashCode(dynamicProperty); + int hashCode2 = comparer.GetHashCode(dynamicProperty); + + // Assert + Assert.AreEqual(hashCode1, hashCode2); + } + + [TestMethod] + public void GetHashCode_EqualObjects_ReturnsSameHashCode() + { + // Arrange + var comparer = new DynamicPropertyObjectComparer(); + var dynamicProperty1 = new DynamicProperty { Id = "1", References = new string[1] { "Ref1" }, Properties = new DynamicProperty.Property[1] { new DynamicProperty.Property() { Name = "test1" } } }; + var dynamicProperty2 = new DynamicProperty { Id = "1", References = new string[1] { "Ref1" }, Properties = new DynamicProperty.Property[1] { new DynamicProperty.Property() { Name = "test1" } } }; + + // Act + int hashCode1 = comparer.GetHashCode(dynamicProperty1); + int hashCode2 = comparer.GetHashCode(dynamicProperty2); + + // Assert + Assert.AreEqual(hashCode1, hashCode2); + } + + [TestMethod] + public void GetHashCode_DifferentObjects_ReturnsDifferentHashCode() + { + // Arrange + var comparer = new DynamicPropertyObjectComparer(); + var dynamicProperty1 = new DynamicProperty { Id = "1", References = new string[1] { "Ref1" }, Properties = new DynamicProperty.Property[1] { new DynamicProperty.Property() { Name = "test1" } } }; + var dynamicProperty2 = new DynamicProperty { Id = "2", References = new string[1] { "Ref2" }, Properties = new DynamicProperty.Property[1] { new DynamicProperty.Property() { Name = "test2" } } }; + + // Act + int hashCode1 = comparer.GetHashCode(dynamicProperty1); + int hashCode2 = comparer.GetHashCode(dynamicProperty2); + + // Assert + Assert.AreNotEqual(hashCode1, hashCode2); + } + } +} diff --git a/Assessments.Transformation.Tests/Program.cs b/Assessments.Transformation.Tests/Program.cs new file mode 100644 index 000000000..3751555cb --- /dev/null +++ b/Assessments.Transformation.Tests/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!");