Esempio n. 1
0
                public void WhenCalled_ReplacesPreviousItems()
                {
                    var expectedValuesFirstTime = new List<int> { 1 };
                    var expectedValuesSecondTime = new List<int> { 2 };

                    var sut = new EqualitySieve<ABusinessObject>().ForProperty(x => x.AnInt).ForValue(1);

                    sut.AcceptableValues.Should().BeEquivalentTo(expectedValuesFirstTime);

                    sut.ForValue(2);

                    sut.AcceptableValues.Should().BeEquivalentTo(expectedValuesSecondTime);

                }
Esempio n. 2
0
                public void CanBeCalledAgainToReplaceValueAfterFirstCausesAnError()
                {
                    const int ACCEPTABLE_VALUE = 1;
                    string acceptableValueInStringform = ACCEPTABLE_VALUE.ToString(CultureInfo.InvariantCulture);

                    const string UNACCEPTABLE_VALUE = "1abc";
                    var expectedFinalList = new List<int> { ACCEPTABLE_VALUE };

                    var sut =
                        new EqualitySieve<ABusinessObject>().ForProperty(x => x.AnInt)
                            .WithInvalidValueBehavior(InvalidValueBehavior.ThrowInvalidSieveValueException)
                            .ForValue(UNACCEPTABLE_VALUE);

                    // ReSharper disable once UnusedVariable -- used in deferred action
                    Action act = () => { var values = sut.AcceptableValues; };

                    act.ShouldThrow<InvalidSieveValueException>()
                        .And.Message.Should()
                        .ContainEquivalentOf(UNACCEPTABLE_VALUE);

                    sut.ForValue(acceptableValueInStringform);

                    sut.AcceptableValues.Should().BeEquivalentTo(expectedFinalList);
                }