Exemplo n.º 1
0
        public void NotFinishedStateBuilding_Build_Error()
        {
            var builder = new AutomatonBuilder()
                          .BeginState("1", "title");

            Assert.Throws <InvalidOperationException>(() => builder.Build());
        }
Exemplo n.º 2
0
        public void StartStateBuilding_StartNewStateBuilding_Error()
        {
            var builder = new AutomatonBuilder()
                          .BeginState("1", "title");

            Assert.Throws <InvalidOperationException>(() => builder.BeginState("2", "title"));
        }
Exemplo n.º 3
0
        public void BuildWithStates_Check()
        {
            var automaton = new AutomatonBuilder()
                            .BeginState("1", "title1")
                            .WithJump('a', "1")
                            .WithJump('b', "2")
                            .WithJump('c', "3")
                            .EndState()
                            .BeginState("2", "title2")
                            .WithJump('c', "2")
                            .WithJump('a', "3")
                            .EndState()
                            .Build();

            Assert.That(automaton.StatesCount, Is.EqualTo(2));

            var state1 = automaton.GetState("1");

            Assert.That(state1.Id, Is.EqualTo("1"));
            Assert.That(state1.Title, Is.EqualTo("title1"));
            Assert.That(state1.Jump('a'), Is.EqualTo("1"));
            Assert.That(state1.Jump('b'), Is.EqualTo("2"));
            Assert.That(state1.Jump('c'), Is.EqualTo("3"));

            var state2 = automaton.GetState("2");

            Assert.That(state2.Id, Is.EqualTo("2"));
            Assert.That(state2.Title, Is.EqualTo("title2"));
            Assert.That(state2.Jump('c'), Is.EqualTo("2"));
            Assert.That(state2.Jump('a'), Is.EqualTo("3"));
            Assert.Null(state2.TryJump('b'));

            var state3 = automaton.FindState("3");

            Assert.Null(state3);
        }
Exemplo n.º 4
0
        public void NoStates_Build_NoError()
        {
            var automaton = new AutomatonBuilder().Build();

            Assert.That(automaton.StatesCount, Is.EqualTo(0));
        }