public void Equals_False_ComplexPoco_NUllableDateTime_Lhs() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); // Act var actual = componentUnderTest.Equals(new ComplexPoco { }, new ComplexPoco { MyNullableDateTime = new DateTime() }); // Assert Assert.AreEqual(false, actual); }
public void AreEqual_True_ComplexPoco() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); var simplePoco = new SimplePoco { MyInt = 23 }; var lhs = new ComplexPoco { MyInt = 1, MyStrings = new[] { "1", "2" }, SimplePocoArray = new[] { new SimplePoco(), simplePoco }, SimplePocoDictionary = new Dictionary <string, SimplePoco> { { "1", new SimplePoco { MyString = "test" } }, { "2", simplePoco } }, Bytes = Encoding.Default.GetBytes("test") }; var rhs = new ComplexPoco { MyInt = 1, MyStrings = new[] { "1", "2" }, SimplePocoArray = new[] { new SimplePoco(), simplePoco }, SimplePocoDictionary = new Dictionary <string, SimplePoco> { { "1", new SimplePoco { MyString = "test" } }, { "2", simplePoco } }, Bytes = Encoding.Default.GetBytes("test") }; // Act var actual = FieldValueEqualityComparer.AreEqual(lhs, rhs); // Assert Assert.AreEqual(true, actual); }
public void Equals_False_ComplexPoco_InDictionary_RhsNull() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); var lhs = new Dictionary <string, ComplexPoco> { { "a", new ComplexPoco() }, { "b", new ComplexPoco() } }; // Act var actual = componentUnderTest.Equals(lhs, null); // Assert Assert.AreEqual(false, actual); }
public void Equals_False_ComplexPoco_ArraysNotEqual_DifferentSizes() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); // Act var actual = componentUnderTest.Equals(new ComplexPoco { MyStrings = new[] { "1", "2" } }, new ComplexPoco { MyStrings = new[] { "1" } }); // Assert Assert.AreEqual(false, actual); }
public void Equals_True_ComplexPoco_ArraysEqual_BothNull() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); // Act var actual = componentUnderTest.Equals(new ComplexPoco { MyStrings = null }, new ComplexPoco { MyStrings = null }); // Assert Assert.AreEqual(true, actual); }
public void Equals_False_ComplexPoco_DictionaryNotEqual_NullDictionary_Rhs() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); // Act var actual = componentUnderTest.Equals(new ComplexPoco { SimplePocoDictionary = new Dictionary <string, SimplePoco> { { "2", new SimplePoco() } } }, new ComplexPoco { SimplePocoDictionary = null }); // Assert Assert.AreEqual(false, actual); }
public void Equals_True_WithEqualityComparer_AtTopLevel() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); var lhs = new SimplePoco { MyString = "1" }; var rhs = new InheritedSimplePoco { MyString = "xxx" }; // Act FieldValueEqualityComparer.AddFieldValueEqualityComparer(new SimplePocoEqualityComparer()); var actual = componentUnderTest.Equals(lhs, rhs); // Assert Assert.AreEqual(true, actual); }
public void Equals_False_List_SimpleType() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); var list1 = new[] { "a", "b", "c" }; var list2 = new[] { "a", "a", "a" }; // Act var actual = componentUnderTest.Equals(list1, list2); // Assert Assert.AreEqual(false, actual); }
public void Equals_True_ComplexPoco_InList() { // Arrange var componentUnderTest = new FieldValueEqualityComparer(); FieldValueEqualityComparer.SetAssembliesWithTypesToUseValueSemanticsOn(new[] { typeof(SimplePoco).Assembly }); var lhs = new List <ComplexPoco> { new ComplexPoco(), new ComplexPoco() }; var rhs = new List <ComplexPoco> { new ComplexPoco(), new ComplexPoco() }; // Act var actual = componentUnderTest.Equals(lhs, rhs); // Assert Assert.AreEqual(true, actual); }