internal void InvalidCombination_Should_Throw_InvalidOperationException() { var exception = new InvalidOperationException(); var affector = new ExceptionThrower(exception); Assert.Throws <InvalidOperationException>(() => affector.AtRandom().And.Or.AfterNCalls(2)); }
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); }
[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); }