Exemple #1
0
        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);
            }
        }
Exemple #2
0
        public void InitialStateIdentical()
        {
            var sm1 = CoffeeMakerProgram.SetupCoffeeMaker();
            var sm2 = CoffeeMakerProgram.SetupCoffeeMachineFluent();

            AssertThatStateMachinesAreEquivalent(sm1, sm2);
        }
Exemple #3
0
        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);
            }
        }