/* * Test method for {@link de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.RegularIFNetTransition#checkValidity()}. Check whether a transition with delete consumes but does not produce a token with a certain color. */ @Test public void testCheckValidityDelete() throws ParameterException { // Get a simple standard SNet and one of its transitions IFNet sNet = IFNetTestUtil.createSimpleIFNet(); RegularIFNetTransition rt = (RegularIFNetTransition) sNet.getTransition("t0"); // Set "delete" to a produced color HashSet<AccessMode> dAccess = new HashSet<AccessMode>(); dAccess.add(AccessMode.DELETE); rt.setAccessMode("blue", dAccess); try { rt.checkValidity(); fail("A transition with delete on a certain color cannot produce this color!"); } catch (PNValidationException e1) { } // clean up ... dAccess.clear(); dAccess.add(AccessMode.CREATE); rt.setAccessMode("blue", dAccess); // set delete to a color which is not consumed HashSet<AccessMode> dAccess2 = new HashSet<AccessMode>(); dAccess2.add(AccessMode.DELETE); rt.setAccessMode("pink", dAccess2); try { rt.checkValidity(); fail("A transition with delete on a certain color must consume this color!"); } catch (PNValidationException e1) { } }
/* * Test method for {@link de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.RegularIFNetTransition#setAccessMode(java.lang.String, java.util.Collection)}. */ @Test public void testSetAccessModeStringCollectionOfAccessMode() throws ParameterException { IFNet sNet = IFNetTestUtil.createSimpleIFNet(); RegularIFNetTransition trans = (RegularIFNetTransition) sNet.getTransition("tIn"); // set access mode trans.setAccessMode("pink", AccessMode.READ, AccessMode.CREATE); Map<String, Set<AccessMode>> modes = trans.getAccessModes(); Set<AccessMode> pinkAccess = modes.get("pink"); assertTrue("A given accessmode (READ) was not set.", pinkAccess.contains(AccessMode.READ)); assertTrue("A given accessmode (CREATE) was not set.", pinkAccess.contains(AccessMode.CREATE)); // Check there are no other modes pinkAccess.remove(AccessMode.READ); pinkAccess.remove(AccessMode.CREATE); assertTrue("A non given accessmode was set.", pinkAccess.isEmpty()); }
/* * Test method for {@link de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.RegularIFNetTransition#checkValidity()}. Check whether a transition with neither creates nor deletes on a certain token color process that color. */ @Test public void testCheckValidityProcess() throws ParameterException { // Get a simple standard SNet and one of its transitions IFNet sNet = IFNetTestUtil.createSimpleIFNet(); RegularIFNetTransition rt = (RegularIFNetTransition) sNet.getTransition("t0"); // Set "read" to a consumed but not produced color HashSet<AccessMode> rAccess = new HashSet<AccessMode>(); rAccess.add(AccessMode.READ); rt.setAccessMode("red", rAccess); try { rt.checkValidity(); fail("A token color which is only read must be consumed and produced."); } catch (PNValidationException e1) { } }
/* * Test method for {@link de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.RegularIFNetTransition#checkValidity()}. Check whether a transition with create and delete is reported to be valid. */ @Test public void testCheckValidityCreateDelete() throws ParameterException { // Get a simple standard SNet and one of its transtitions IFNet sNet = IFNetTestUtil.createSimpleIFNet(); RegularIFNetTransition rt = (RegularIFNetTransition) sNet.getTransition("t0"); // Set "create" and "delete" mode for one color HashSet<AccessMode> cdAccess = new HashSet<AccessMode>(); cdAccess.add(AccessMode.DELETE); cdAccess.add(AccessMode.CREATE); rt.setAccessMode("pink", cdAccess); try { rt.checkValidity(); fail("A transition with create and delete on the same color is not valid!."); } catch (PNValidationException e1) { } }