Cannot create more than one subclass of AbstractStateMachine
------------------------------------------------------------

                 Key: SCXML-48
                 URL: https://issues.apache.org/jira/browse/SCXML-48
             Project: Commons SCXML
          Issue Type: Bug
            Reporter: Michael Heuer
         Attachments: abstract-state-machine-test-src.tar.gz

Similar to the issue described in SCXML-47, the following test case will fail:

    public void testMoreThanOneScxmlDocument() throws Exception {
        URL fooScxmlDocument = getClass().getResource("foo.xml");
        URL barScxmlDocument = getClass().getResource("bar.xml");

        Foo foo = new Foo(fooScxmlDocument);
        Bar bar = new Bar(barScxmlDocument);

        assertTrue(fooCalled);
        // bar's initialstate "bar" never called, since bar's 
AbstractStateMachine has
        // static reference to stateMachine for foo.xml
        assertTrue(barCalled);
    }

    private class Foo extends AbstractStateMachine {

        public Foo(final URL scxmlDocument) {
            super(scxmlDocument);
        }

        public void foo() {
            fooCalled = true;
        }
    }

    private class Bar extends AbstractStateMachine {

        public Bar(final URL scxmlDocument) {
            super(scxmlDocument);
        }

        public void bar() {
            barCalled = true;
        }
    }

with simple SCXML files

foo.xml:
<scxml xmlns="http://www.w3.org/2005/07/scxml"; version="1.0" initialstate="foo">
  <state id="foo"/>
</scxml>

bar.xml:
<scxml xmlns="http://www.w3.org/2005/07/scxml"; version="1.0" initialstate="bar">
  <state id="bar"/>
</scxml>


    [junit] Running org.apache.commons.scxml.env.EnvTestSuite
org.apache.commons.scxml.env.AbstractStateMachineTest$Bar.foo()
java.lang.NoSuchMethodException: 
org.apache.commons.scxml.env.AbstractStateMachineTest$Bar.foo()
        at java.lang.Class.getDeclaredMethod(Class.java:1937)
        at 
org.apache.commons.scxml.env.AbstractStateMachine.invoke(AbstractStateMachine.java:212)
        at 
org.apache.commons.scxml.env.AbstractStateMachine$EntryListener.onEntry(AbstractStateMachine.java:269)


Testsuite: org.apache.commons.scxml.env.EnvTestSuite
Tests run: 21, Failures: 2, Errors: 0, Time elapsed: 0.391 sec

Testcase: 
testMoreThanOneScxmlDocument(org.apache.commons.scxml.env.AbstractStateMachineTest):
  FAILED
junit.framework.AssertionFailedError
        at 
org.apache.commons.scxml.env.AbstractStateMachineTest.testMoreThanOneScxmlDocument(AbstractStateMachineTest.java:60)

Testcase: testStopWatch(org.apache.commons.scxml.env.StopWatchTest):    FAILED
expected:<reset> but was:<foo>
junit.framework.ComparisonFailure: expected:<reset> but was:<foo>
        at 
org.apache.commons.scxml.env.StopWatchTest.testStopWatch(StopWatchTest.java:56)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to