public void IsEqualTo_WhenComparingValueObjectsOfDifferentTypes_ThrowInvalidValueObjectComparisonException() { // Arrange var valueForPropertyA = "test-value-A"; var valueForPropertyB = "test-value-B"; var differentValueForPropertyB = "different-test-value-B"; var valueObjectA = new FakeValueObjectA() { PropertyA = valueForPropertyA, PropertyB = valueForPropertyB }; var valueObjectB = new FakeValueObjectB() { PropertyA = valueForPropertyA, PropertyB = differentValueForPropertyB }; // Act Action areEqualAToBAction = () => valueObjectA.IsEqualTo(valueObjectB); Action areEqualBToAAction = () => valueObjectB.IsEqualTo(valueObjectA); // Assert areEqualAToBAction.ShouldThrow <InvalidValueObjectComparisonException>().Message.ShouldContain($"{typeof(FakeValueObjectA)} vs {typeof(FakeValueObjectB)}"); areEqualBToAAction.ShouldThrow <InvalidValueObjectComparisonException>().Message.ShouldContain($"{typeof(FakeValueObjectB)} vs {typeof(FakeValueObjectA)}");; }
public void IsEqualTo_TwoNotEqualValueObjectsOfTheSameType_ReturnsFalse() { // Arrange var valueForPropertyA = "test-value-A"; var valueForPropertyB = "test-value-B"; var differentValueForPropertyB = "different-test-value-B"; var valueObjectA = new FakeValueObjectA() { PropertyA = valueForPropertyA, PropertyB = valueForPropertyB }; var valueObjectB = new FakeValueObjectA() { PropertyA = valueForPropertyA, PropertyB = differentValueForPropertyB }; // Act var areEqualAToB = valueObjectA.IsEqualTo(valueObjectB); var areEqualBToA = valueObjectB.IsEqualTo(valueObjectA); // Assert areEqualAToB.ShouldBeFalse(); areEqualBToA.ShouldBeFalse(); }