public void RandomEventsStateMachinesEquivalent() { var sm1 = CoffeeMakerProgram.SetupCoffeeMaker(); var sm2 = CoffeeMakerProgram.SetupCoffeeMachineFluent(); var possibleEvents = new string[] { "ON", "OFF", "PAID", "WATER", "COFFEE", "COCOA", "CUP", "NOCUP" }; var rand = new Random(); var executedEvents = new List <string>(); for (int i = 0; i < 100000; i++) { var ev = possibleEvents[rand.Next(0, possibleEvents.Length)]; sm1.ProcessEvent(new Event(ev)); sm2.ProcessEvent(new Event(ev)); executedEvents.Add(ev); AssertThatStateMachinesAreEquivalent(sm1, sm2); } }
public void InitialStateIdentical() { var sm1 = CoffeeMakerProgram.SetupCoffeeMaker(); var sm2 = CoffeeMakerProgram.SetupCoffeeMachineFluent(); AssertThatStateMachinesAreEquivalent(sm1, sm2); }
public void TestCertainRowsOfEvents(string[] input) { var sm1 = CoffeeMakerProgram.SetupCoffeeMaker(); var sm2 = CoffeeMakerProgram.SetupCoffeeMachineFluent(); foreach (var ev in input) { sm1.ProcessEvent(new Event(ev)); sm2.ProcessEvent(new Event(ev)); AssertThatStateMachinesAreEquivalent(sm1, sm2); } }