public void InverseTransitionTokens_NoSucessorsNoPredecessors_NoCallback() { // arrange Transition testTrans = new Transition(0, 0, "testTransition"); testTrans.Predecessors.Clear(); testTrans.Successors.Clear(); // act testTrans.InverseTransitionTokens((s, b) => { }, testCallback); // assert Assert.AreEqual(0, callbackIds.Count, "No callback should occur when there are no successors or predecessors."); }
public void InverseTransitionTokens_NoSuccessorsTwoPredecessors_CallbackTwice() { // arrange Transition testTrans = new Transition(0, 0, "testTransition"); testTrans.Successors.Clear(); IList<String> predecessorIds = new List<String> { "predecessor_1", "predecessor_2" }; int tokenCount = new Random().Next(0, 999); StubPlace predecessor_1 = new StubPlace(predecessorIds[0], new List<INode> { testTrans }, new List<INode> { }); predecessor_1.TokenCount = tokenCount; StubPlace predecessor_2 = new StubPlace(predecessorIds[1], new List<INode> { testTrans }, new List<INode> { }); predecessor_2.TokenCount = tokenCount; testTrans.Predecessors.Clear(); testTrans.Predecessors.Add(predecessor_1); testTrans.Predecessors.Add(predecessor_2); // act testTrans.InverseTransitionTokens((s, b) => { }, testCallback); // assert Assert.IsTrue(Compare.UnorderedEqual(predecessorIds, callbackIds), "Callback called with incorrect ids."); Assert.AreEqual(tokenCount + 1, predecessor_2.TokenCount, "TokenCount not increased correctly."); }
public void TransitionTokens_OneSuccessorZeroTokens_ThrowsInvalidOperationException() { // arrange Transition testTrans = new Transition(0, 0, "testTransition"); testTrans.Predecessors.Clear(); IList<String> successorIds = new List<String> { "successor_1" }; StubPlace successor_1 = new StubPlace(successorIds[0], new List<INode> { }, new List<INode> { testTrans }); successor_1.TokenCount = 0; testTrans.Successors.Clear(); testTrans.Successors.Add(successor_1); // act testTrans.InverseTransitionTokens((s, b) => { }, testCallback); }