public void GetStartTransitionsEmptyNetTest() { // Arrange List <IPlace> places = new List <IPlace>(); List <ITransition> transitions = new List <ITransition>(); PetriNet net = new PetriNet(transitions, places, null, null); // Act List <ITransition> foundTransitions = net.GetStartTransitions(); // Assert Assert.AreEqual(foundTransitions.Count, 0); }
public void GetStartTransitionsTest() { // Arrange IPlace p1 = new Place("start place"); IPlace p2 = new Place("middle place"); IPlace p3 = new Place("end place"); ITransition t1 = new Transition("t1", "start transition"); ITransition t2 = new Transition("t2", "end transition"); t1.InputPlaces.Add(p1); t1.OutputPlaces.Add(p2); t2.InputPlaces.Add(p2); t2.OutputPlaces.Add(p3); List <IPlace> places = new List <IPlace>() { p1, p2, p3 }; List <ITransition> transitions = new List <ITransition>() { t1, t2 }; List <ITransition> startTransitions = new List <ITransition>() { t1 }; PetriNet net = new PetriNet(transitions, places, p1, p3); // Act List <ITransition> foundTransitions = net.GetStartTransitions(); // Assert Assert.AreEqual(startTransitions.Count, foundTransitions.Count); for (int i = 0; i < startTransitions.Count; i++) { Assert.AreEqual(startTransitions[i].Activity, foundTransitions[i].Activity); Assert.AreEqual(startTransitions[i].InputPlaces.Count, foundTransitions[i].InputPlaces.Count); Assert.AreEqual(startTransitions[i].OutputPlaces.Count, foundTransitions[i].OutputPlaces.Count); for (int j = 0; j < startTransitions[i].InputPlaces.Count; j++) { Assert.AreEqual(startTransitions[i].InputPlaces[j].Id, foundTransitions[i].InputPlaces[j].Id); } for (int j = 0; j < startTransitions[i].OutputPlaces.Count; j++) { Assert.AreEqual(startTransitions[i].OutputPlaces[j].Id, foundTransitions[i].OutputPlaces[j].Id); } } }