/* * Test the clone() method */ @Test public void testRegularIFNetTransitionClone() throws ParameterException { IFNet sNet = IFNetTestUtil.createSimpleIFNet(); RegularIFNetTransition t = (RegularIFNetTransition) sNet.getTransition("t0"); t.setSilent(true); // Create an instance of TestGuardDataContainer TestGuardDataContainer tgdc = new TestGuardDataContainer(sNet.getTokenColors()); t.setGuardDataContainer(tgdc); RegularIFNetTransition tClone = t.clone(); assertEquals(t, tClone); assertNotSame(t, tClone); assertTrue(tClone.isSilent()); assertEquals(t.getName(), tClone.getName()); assertEquals(t.getLabel(), tClone.getLabel()); assertEquals(t.isPlace(), tClone.isPlace()); assertEquals(t.isDrain(), tClone.isDrain()); assertEquals(t.isSource(), tClone.isSource()); assertEquals(t.isTransition(), tClone.isTransition()); assertEquals(t.getGuards().size(), tClone.getGuards().size()); assertEquals(t.getGuardDataContainer(), tClone.getGuardDataContainer()); // assertNotSame(t.getGuardDataContainer(), tClone.getGuardDataContainer()); // Access modes for (Entry<String, Set<AccessMode>> color : t.getAccessModes().entrySet()) { assertEquals(color.getValue(), tClone.getAccessModes(color.getKey())); } }
/* * Test method for {@link de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.RegularIFNetTransition#removeGuard(de.invation.code.toval.constraint.AbstractConstraint)}. */ @Test public void testRemoveGuard() throws ParameterException { IFNet sNet = IFNetTestUtil.createSimpleIFNet(); RegularIFNetTransition trans = (RegularIFNetTransition) sNet.getTransition("tIn"); // Get the gurads and check there are no guards initially Set<AbstractConstraint<?>> guards = trans.getGuards(); assertTrue(guards.isEmpty()); // add a guard and make sure it is really there trans.setGuardDataContainer(new TestGuardDataContainer(sNet.getTokenColors())); NumberConstraint nc = new NumberConstraint("green", NumberOperator.LARGER, -3); trans.addGuard(nc); assertFalse(guards.isEmpty()); // remove it again trans.removeGuard(nc); assertTrue(guards.isEmpty()); }