Example #1
0
        private bool GetTransition(string name, out Transition t)
        {
            Transition[] tlist;
            GetTransitions(name, out tlist);
            if (tlist != null && tlist.Length > 0)
            {
                if (tlist.Length == 1)
                {
                    t = tlist[0];
                }
                else
                {
                    var jt = new JoinTransition();
                    t = jt;
                    for (int i = 0; i < tlist.Length; i++)
                    {
                        jt.Add(tlist[i]);
                    }
                }

                return(true);
            }
            else
            {
                t = null;
                return(false);
            }
        }
        public void IncompleteJoinTransition(int index)
        {
            // Arrange
            var trans = new JoinTransition
            {
                Id      = 1,
                Inputs  = _inputs,
                Outputs = new[] { _outputs[0] }
            };
            var split = new SplitToken(_token);

            // Act
            trans.Initialize();
            _inputs[index].Add(split);

            // Assert
            Assert.AreEqual(1, _inputs[index].Tokens.Count());
            Assert.AreEqual(0, _inputs[(index + 1) % 2].Tokens.Count());
            Assert.AreEqual(0, _outputs[0].Tokens.Count());
        }
        public void JoinTransition()
        {
            // Arrange
            var trans = new JoinTransition
            {
                Id      = 1,
                Inputs  = _inputs,
                Outputs = new[] { _outputs[0] }
            };
            var split1 = new SplitToken(_token);
            var split2 = new SplitToken(_token);

            // Act
            trans.Initialize();
            _inputs[0].Add(split1);
            _inputs[1].Add(split2);

            // Assert
            Assert.IsTrue(_inputs.All(i => !i.Tokens.Any()));
            Assert.AreEqual(1, _outputs[0].Tokens.Count());
            Assert.AreEqual(_token, _outputs[0].Tokens.First());
        }