Example #1
0
        public void State_AddTransition_TwoValidTranDiffTriggers_ReturnsOneForEachTransitionsOn()
        {
            var state1      = new State <StubStateModel>("s1");
            var state2      = new State <StubStateModel>("s2");
            var state3      = new State <StubStateModel>("s2");
            var trigger1    = new Trigger("t1");
            var trigger2    = new Trigger("t2");
            var transition1 = new Transition <StubStateModel>(trigger1, state1, state2, m => 1 == 2);
            var transition2 = new Transition <StubStateModel>(trigger2, state1, state3, m => 1 == 1);

            state1.AddTransition(transition1);
            state1.AddTransition(transition2);

            Assert.Same(transition1, state1.TransitionsOn(trigger1).FirstOrDefault());
            Assert.Same(transition2, state1.TransitionsOn(trigger2).FirstOrDefault());
        }
Example #2
0
        public void State_TransitionsOn_NewTrigger_NoMatchingTrans_ReturnsEmptyNonNullEnumerable()
        {
            var state1 = new State <StubStateModel>("s1");

            var result = state1.TransitionsOn(new Trigger("sometrigger"));

            Assert.NotNull(result);
            Assert.Empty(result);
        }
Example #3
0
        public void State_AddTransition_ValidTran_ReturnsWithTransitionsOnTrigger()
        {
            var state1      = new State <StubStateModel>("s1");
            var state2      = new State <StubStateModel>("s2");
            var trigger1    = new Trigger("t1");
            var transition1 = new Transition <StubStateModel>(trigger1, state1, state2);

            state1.AddTransition(transition1);

            Assert.Same(transition1, state1.TransitionsOn(trigger1).FirstOrDefault());
        }
Example #4
0
        public void State_TransitionsOn_TriggerMatchingOneTransitionNotAnother_ReturnsOnlyMatchingONe()
        {
            var state1      = new State <StubStateModel>("s1");
            var state2      = new State <StubStateModel>("s2");
            var trigger1    = new Trigger("t1");
            var transition1 = new Transition <StubStateModel>(trigger1, state1, state2, m => 1 == 2);

            state1.AddTransition(transition1);

            var result = state1.TransitionsOn(new Trigger("t1"));

            Assert.NotNull(result);
            Assert.Equal(1, result.Count());
            Assert.Same(transition1, result.FirstOrDefault());
        }
Example #5
0
        public void State_AddTransition_TwoValidTranSameTrigger_ReturnsBothWithTransitionsOn()
        {
            var state1      = new State <StubStateModel>("s1");
            var state2      = new State <StubStateModel>("s2");
            var state3      = new State <StubStateModel>("s2");
            var trigger1    = new Trigger("t1");
            var transition1 = new Transition <StubStateModel>(trigger1, state1, state2, m => 1 == 2);
            var transition2 = new Transition <StubStateModel>(trigger1, state1, state3, m => 1 == 1);

            state1.AddTransition(transition1);
            state1.AddTransition(transition2);

            var trans = state1.TransitionsOn(trigger1).ToList();

            Assert.Equal(transition1, trans[0]);
            Assert.Equal(transition2, trans[1]);
        }
Example #6
0
        public void State_TransitionsOn_TriggerMatchingTwoTransitionsNotAnother_ReturnsTwoMatching()
        {
            var state1      = new State <StubStateModel>("s1");
            var state2      = new State <StubStateModel>("s2");
            var state3      = new State <StubStateModel>("s2");
            var trigger1    = new Trigger("t1");
            var transition1 = new Transition <StubStateModel>(trigger1, state1, state2, m => 1 == 2);
            var transition2 = new Transition <StubStateModel>(trigger1, state1, state3, m => 1 == 1);

            state1.AddTransition(transition1);
            state1.AddTransition(transition2);

            var result = state1.TransitionsOn(new Trigger("t1"));

            Assert.NotNull(result);
            Assert.Equal(2, result.Count());
            Assert.Same(transition1, result.ToList()[0]);
            Assert.Same(transition2, result.ToList()[1]);
        }
Example #7
0
        public void State_TransitionsOn_TriggerMatchingThree_ReturnsThreeInOrderAdded()
        {
            var state1      = new State <StubStateModel>("s1");
            var state2      = new State <StubStateModel>("s2");
            var state3      = new State <StubStateModel>("s2");
            var trigger1    = new Trigger("t1");
            var transition3 = new Transition <StubStateModel>(trigger1, state1, state1, m => 1 == 0);
            var transition2 = new Transition <StubStateModel>(trigger1, state1, state3, m => 1 == 1);
            var transition1 = new Transition <StubStateModel>(trigger1, state1, state2, m => 1 == 2);

            state1.AddTransition(transition1);
            state1.AddTransition(transition2);
            state1.AddTransition(transition3);

            var result = state1.TransitionsOn(new Trigger("t1"));

            Assert.NotNull(result);
            Assert.Equal(3, result.Count());
            Assert.Same(transition1, result.ToList()[0]);
            Assert.Same(transition2, result.ToList()[1]);
            Assert.Same(transition3, result.ToList()[2]);
        }
Example #8
0
        public void State_TransitionsOn_TriggerMatchingTwoTransitionsNotAnother_ReturnsTwoMatching()
        {
            var state1 = new State<StubStateModel>("s1");
            var state2 = new State<StubStateModel>("s2");
            var state3 = new State<StubStateModel>("s2");
            var trigger1 = new Trigger("t1");
            var transition1 = new Transition<StubStateModel>(trigger1, state1, state2, m => 1 == 2);
            var transition2 = new Transition<StubStateModel>(trigger1, state1, state3, m => 1 == 1);

            state1.AddTransition(transition1);
            state1.AddTransition(transition2);

            var result = state1.TransitionsOn(new Trigger("t1"));
            Assert.NotNull(result);
            Assert.Equal(2, result.Count());
            Assert.Same(transition1, result.ToList()[0]);
            Assert.Same(transition2, result.ToList()[1]);
        }
Example #9
0
        public void State_AddTransition_TwoValidTranDiffTriggers_ReturnsOneForEachTransitionsOn()
        {
            var state1 = new State<StubStateModel>("s1");
            var state2 = new State<StubStateModel>("s2");
            var state3 = new State<StubStateModel>("s2");
            var trigger1 = new Trigger("t1");
            var trigger2 = new Trigger("t2");
            var transition1 = new Transition<StubStateModel>(trigger1, state1, state2, m => 1 == 2);
            var transition2 = new Transition<StubStateModel>(trigger2, state1, state3, m => 1 == 1);

            state1.AddTransition(transition1);
            state1.AddTransition(transition2);

            Assert.Same(transition1, state1.TransitionsOn(trigger1).FirstOrDefault());
            Assert.Same(transition2, state1.TransitionsOn(trigger2).FirstOrDefault());
        }
Example #10
0
        public void State_TransitionsOn_TriggerMatchingThree_ReturnsThreeInOrderAdded()
        {
            var state1 = new State<StubStateModel>("s1");
            var state2 = new State<StubStateModel>("s2");
            var state3 = new State<StubStateModel>("s2");
            var trigger1 = new Trigger("t1");
            var transition3 = new Transition<StubStateModel>(trigger1, state1, state1, m => 1 == 0);
            var transition2 = new Transition<StubStateModel>(trigger1, state1, state3, m => 1 == 1);
            var transition1 = new Transition<StubStateModel>(trigger1, state1, state2, m => 1 == 2);

            state1.AddTransition(transition1);
            state1.AddTransition(transition2);
            state1.AddTransition(transition3);

            var result = state1.TransitionsOn(new Trigger("t1"));
            Assert.NotNull(result);
            Assert.Equal(3, result.Count());
            Assert.Same(transition1, result.ToList()[0]);
            Assert.Same(transition2, result.ToList()[1]);
            Assert.Same(transition3, result.ToList()[2]);
        }
Example #11
0
        public void State_TransitionsOn_TriggerMatchingOneTransitionNotAnother_ReturnsOnlyMatchingONe()
        {
            var state1 = new State<StubStateModel>("s1");
            var state2 = new State<StubStateModel>("s2");
            var trigger1 = new Trigger("t1");
            var transition1 = new Transition<StubStateModel>(trigger1, state1, state2, m => 1 == 2);

            state1.AddTransition(transition1);

            var result = state1.TransitionsOn(new Trigger("t1"));
            Assert.NotNull(result);
            Assert.Equal(1, result.Count());
            Assert.Same(transition1, result.FirstOrDefault());
        }
Example #12
0
        public void State_TransitionsOn_NewTrigger_NoMatchingTrans_ReturnsEmptyNonNullEnumerable()
        {
            var state1 = new State<StubStateModel>("s1");

            var result = state1.TransitionsOn(new Trigger("sometrigger"));
            Assert.NotNull(result);
            Assert.Empty(result);
        }
Example #13
0
        public void State_AddTransition_ValidTran_ReturnsWithTransitionsOnTrigger()
        {
            var state1 = new State<StubStateModel>("s1");
            var state2 = new State<StubStateModel>("s2");
            var trigger1 = new Trigger("t1");
            var transition1 = new Transition<StubStateModel>(trigger1, state1, state2);

            state1.AddTransition(transition1);

            Assert.Same(transition1, state1.TransitionsOn(trigger1).FirstOrDefault());
        }
Example #14
0
        public void State_AddTransition_TwoValidTranSameTrigger_ReturnsBothWithTransitionsOn()
        {
            var state1 = new State<StubStateModel>("s1");
            var state2 = new State<StubStateModel>("s2");
            var state3 = new State<StubStateModel>("s2");
            var trigger1 = new Trigger("t1");
            var transition1 = new Transition<StubStateModel>(trigger1, state1, state2, m => 1 == 2);
            var transition2 = new Transition<StubStateModel>(trigger1, state1, state3, m => 1 == 1);

            state1.AddTransition(transition1);
            state1.AddTransition(transition2);

            var trans = state1.TransitionsOn(trigger1).ToList();
            Assert.Equal(transition1, trans[0]);
            Assert.Equal(transition2, trans[1]);
        }