示例#1
0
    public void IsEqualTo_TwoNotEqualAggregatesOfTheSameType_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 FakeValueObjectB()
        {
            PropertyA = valueForPropertyA,
            PropertyB = valueForPropertyB
        };

        var differentValueObjectForPropertyB = new FakeValueObjectB()
        {
            PropertyA = valueForPropertyA,
            PropertyB = differentValueForPropertyB
        };

        var aggregateA = new FakeAggregateA()
        {
            PropertyA = valueObjectA,
            PropertyB = valueObjectB
        };

        var aggregateB = new FakeAggregateA()
        {
            PropertyA = valueObjectA,
            PropertyB = differentValueObjectForPropertyB
        };

        // Act
        var areEqualAToB = aggregateA.IsEqualTo(aggregateB);
        var areEqualBToA = aggregateB.IsEqualTo(aggregateA);

        // Assert
        areEqualAToB.ShouldBeFalse();
        areEqualBToA.ShouldBeFalse();
    }
示例#2
0
    public void IsEqualTo_TwoAggregatesNotOfTheSameType_ThrowsInvalidComparisonException()
    {
        // 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 = valueForPropertyB
        };

        var differentValueObjectForPropertyB = new FakeValueObjectB()
        {
            PropertyA = valueForPropertyA,
            PropertyB = differentValueForPropertyB
        };

        var aggregateA = new FakeAggregateA()
        {
            PropertyA = valueObjectA,
            PropertyB = valueObjectB
        };

        var aggregateB = new FakeAggregateB()
        {
            PropertyA = valueObjectA,
            PropertyB = differentValueObjectForPropertyB
        };

        // Act
        Action isEqualToAToBAction = () => aggregateA.IsEqualTo(aggregateB);
        Action isEqualToBToAAction = () => aggregateB.IsEqualTo(aggregateA);

        // Assert
        isEqualToAToBAction.ShouldThrow <InvalidAggregateComparisonException>();
        isEqualToBToAAction.ShouldThrow <InvalidAggregateComparisonException>();
    }