public void testEvaluation() { Lem l = new Lem(); Model m = null; try { m = l.parse(new FileInputStream("regression/tests/AssociativityTest.lem")); } catch (FileNotFoundException fnfe) { fail("Could not find model file " + fnfe.getMessage()); } catch (IOException e) { fail("Could not read model file: " + e.getMessage()); } catch (ParseException e) { fail("Could not parse model file: " + e.getMessage()); } catch (LemException e) { fail("Some LEMException occurred: " + e.getMessage()); } Procedure p = m.getDomain("TestDomain") .getClass("A") .getStateMachine() .getState("evalTest") .getProcedure(); DomainContext c = new DomainContext(); Interpreter i = new Interpreter(null); try { i.interpret(p, c); } catch (LemRuntimeException e) { fail("Some LemRuntimeException occurred: " + e.getMessage()); } }
public void testAssociations() { Lem l = new Lem(); Model m = null; try { m = l.parse(new FileInputStream("regression/tests/AssociationTest.lem")); } catch (FileNotFoundException fnfe) { fail("Could not find model file " + fnfe.getMessage()); } catch (IOException e) { fail("Could not read model file: " + e.getMessage()); } catch (ParseException e) { fail("Could not parse model file: " + e.getMessage()); } catch (LemException e) { fail("Some LEMException occurred: " + e.getMessage()); } org.jdns.xtuml.metamodel.Class a = m.getDomain("TestDomain").getClass("A"); org.jdns.xtuml.metamodel.Class b = m.getDomain("TestDomain").getClass("B"); org.jdns.xtuml.metamodel.Class c = m.getDomain("TestDomain").getClass("C"); assertEquals("Class A participates in 1 association", 1, a.getAssociations().size()); assertEquals("Class B participates in 1 association", 1, b.getAssociations().size()); assertEquals( "Class C participates in 1 (reflexive) association", 1, c.getAssociations().size()); }
public void testSignalGeneration() { Lem l = new Lem(); Model m = null; try { m = l.parse(new FileInputStream("regression/tests/SignalTest.lem")); } catch (FileNotFoundException fnfe) { fail("Could not find model file " + fnfe.getMessage()); } catch (IOException e) { fail("Could not read model file: " + e.getMessage()); } catch (ParseException e) { fail("Could not parse model file: " + e.getMessage()); } catch (LemException e) { fail("Some LEMException occurred: " + e.getMessage()); } CreateAction create = (CreateAction) m.getDomain("TestDomain") .getClass("main") .getStateMachine() .getState("sigInit") .getProcedure() .getActionBlock() .getActions() .getFirst(); Procedure mainProc = m.getDomain("TestDomain") .getClass("main") .getStateMachine() .getState("sigTest") .getProcedure(); DomainContext c = new DomainContext(); Interpreter i = new Interpreter(null); try { org.jdns.xtuml.runtime.Object obj = i.executeCreateAction(create, c); i = new Interpreter(obj); i.interpret(mainProc, c); } catch (LemRuntimeException e) { fail("Some LemRuntimeException occurred: " + e.getMessage()); } }
public void testLinkDeletion() { Lem l = new Lem(); Model m = null; try { m = l.parse(new FileInputStream("regression/tests/LinkDeletionTest.lem")); } catch (FileNotFoundException fnfe) { fail("Could not find model file " + fnfe.getMessage()); } catch (IOException e) { fail("Could not read model file: " + e.getMessage()); } catch (ParseException e) { fail("Could not parse model file: " + e.getMessage()); } catch (LemException e) { fail("Some LEMException occurred: " + e.getMessage()); } CreateAction create = (CreateAction) m.getDomain("TestDomain") .getClass("TestClass") .getStateMachine() .getState("createTestClass") .getProcedure() .getActionBlock() .getActions() .getFirst(); Procedure mainProc = m.getDomain("TestDomain") .getClass("TestClass") .getStateMachine() .getState("unrelateTestClass") .getProcedure(); DomainContext c = new DomainContext(); Interpreter i = new Interpreter(null); int k = 0; try { org.jdns.xtuml.runtime.Object obj = i.executeCreateAction(create, c); i = new Interpreter(obj); i.interpret(mainProc, c); } catch (LemRuntimeException e) { fail( "Testing for deletion of association that exist.\n" + "Some LemRuntimeException occurred: " + e.getMessage()); } int count = 0; java.util.Iterator j = c.getAssociationInstances().values().iterator(); while (j.hasNext()) { count += ((java.util.LinkedList) j.next()).size(); } assertEquals("Test result: An association instance has been removed", 0, count); c = new DomainContext(); i = new Interpreter(null); mainProc = m.getDomain("TestDomain") .getClass("TestClass") .getStateMachine() .getState("unrelateTestClass2") .getProcedure(); try { org.jdns.xtuml.runtime.Object obj = i.executeCreateAction(create, c); i = new Interpreter(obj); i.interpret(mainProc, c); } catch (LemRuntimeException e) { fail( "Testing for deletion of association that does not exist.\n" + "Some LemRuntimeException occurred: " + e.getMessage()); } }
public void testLinkCreation() { Lem l = new Lem(); Model m = null; try { m = l.parse(new FileInputStream("regression/tests/LinkCreationTest.lem")); } catch (FileNotFoundException fnfe) { fail("Could not find model file " + fnfe.getMessage()); } catch (IOException e) { fail("Could not read model file: " + e.getMessage()); } catch (ParseException e) { fail("Could not parse model file: " + e.getMessage()); } catch (LemException e) { fail("Some LEMException occurred: " + e.getMessage()); } CreateAction create = (CreateAction) m.getDomain("TestDomain") .getClass("TestClass") .getStateMachine() .getState("createTestClass") .getProcedure() .getActionBlock() .getActions() .getFirst(); Procedure mainProc = m.getDomain("TestDomain") .getClass("TestClass") .getStateMachine() .getState("relateTestClass") .getProcedure(); DomainContext c = new DomainContext(); Interpreter i = new Interpreter(null); int k = 0; try { org.jdns.xtuml.runtime.Object obj = i.executeCreateAction(create, c); i = new Interpreter(obj); i.interpret(mainProc, c); } catch (LemRuntimeException e) { fail("Some LemRuntimeException occurred: " + e.getMessage()); } java.util.Iterator j = c.getAssociationInstances().values().iterator(); AssociationInstance a = (AssociationInstance) ((java.util.LinkedList) j.next()).getFirst(); Instance active = a.getActiveInstance(); Instance passive = a.getPassiveInstance(); int count = 0; j = c.getAssociationInstances().values().iterator(); while (j.hasNext()) { count += ((java.util.LinkedList) j.next()).size(); } assertEquals("An association instance has been added", 2, count); assertEquals( "Active perspective instance is of class A", "A", active.getInstanceClass().getName()); assertEquals( "Passive perspective instance is of class B", "B", passive.getInstanceClass().getName()); Instance linkobject = (Instance) a.getLinkObjectInstance().getInstances().iterator().next(); assertEquals( "Link object instance is of class D", "D", linkobject.getInstanceClass().getName()); AssociationInstance aI_active = (AssociationInstance) active.getAssociationInstances(a.getAssociation()).iterator().next(); assertEquals("Instance of class A has the correct association instance", a, aI_active); AssociationInstance aI_passive = (AssociationInstance) passive.getAssociationInstances(a.getAssociation()).iterator().next(); assertEquals("Instance of class A has the correct association instance", a, aI_passive); mainProc = m.getDomain("TestDomain") .getClass("TestClass") .getStateMachine() .getState("relateTestClass2") .getProcedure(); c = new DomainContext(); i = new Interpreter(null); try { org.jdns.xtuml.runtime.Object obj = i.executeCreateAction(create, c); i = new Interpreter(obj); i.interpret(mainProc, c); } catch (LemRuntimeException e) { fail( "Testing for creation of association that already exist.\n" + "Some LemRuntimeException occurred: " + e.getMessage()); } }