Beispiel #1
0
        internal void InvalidCombination_Should_Throw_InvalidOperationException()
        {
            var exception = new InvalidOperationException();
            var affector  = new ExceptionThrower(exception);

            Assert.Throws <InvalidOperationException>(() => affector.AtRandom().And.Or.AfterNCalls(2));
        }
Beispiel #2
0
        internal void Xor_Should_Combine_Triggers()
        {
            var exception = new InvalidOperationException();
            var affector  = new ExceptionThrower(exception);

            affector.AtRandom().Xor.AfterNCalls(2);

            var triggers = ((IAffector)affector).Triggers;

            Assert.Single(triggers);
            Assert.IsType <CombinedTrigger>(triggers[0]);

            var combinedTrigger = (CombinedTrigger)triggers[0];

            Assert.IsType <RandomTrigger>(combinedTrigger.First);
            Assert.IsType <TimesCalledTrigger>(combinedTrigger.Second);
            Assert.Equal(Logical.Xor, combinedTrigger.Operand);
        }
Beispiel #3
0
        [Fact] internal void Not_Should_Inverse_CombinedTrigger()
        {
            var exception = new InvalidOperationException();
            var affector  = new ExceptionThrower(exception);

            affector.AtRandom().And.Not.AfterNCalls(2);

            var triggers = ((IAffector)affector).Triggers;

            Assert.Single(triggers);
            Assert.IsType <CombinedTrigger>(triggers[0]);

            var combinedTrigger = (CombinedTrigger)triggers[0];

            Assert.IsType <RandomTrigger>(combinedTrigger.First);
            Assert.IsType <CombinedTrigger>(combinedTrigger.Second);
            Assert.Equal(Logical.And, combinedTrigger.Operand);

            combinedTrigger = (CombinedTrigger)combinedTrigger.Second;
            Assert.Null(combinedTrigger.First);
            Assert.IsType <TimesCalledTrigger>(combinedTrigger.Second);
            Assert.Equal(Logical.Not, combinedTrigger.Operand);
        }