> Hey Drew,
> I'm kinda stumped on this one. I thought it should be a simple matter of
> creating a stub for the injected event but it appears that I am missing
> something.
> I have a command which injects an event:
> [*Inject*]
> *public* *var* event:UserEvent;
> *override* *public* *function* execute():*void*
> {
> *if* ( event.usersCollection ) {
> *if* ( !event.usersCollection.length ) {
> eventDispatcher.dispatchEvent ( *new* ViewEvent (
> ViewEvent.SET_VIEW_STATE, *false*, *false*, StateConstants.NEW_USER ) );
> } *else* *if* ( event.usersCollection.length ) {
> eventDispatcher.dispatchEvent ( *new* ViewEvent (
> ViewEvent.SET_VIEW_STATE, *false*, *false*, StateConstants.SELECT_USER ) );
> }
> }
> }
> I am testing the individual conditions of the command. Here is my setup:
> [*Rule*]
> *public* *var* rule:MockolateRule = *new* MockolateRule();
> [*Mock*]
> *public* *var* instanceEvent:UserEvent;
> *private* *var* instanceCommand:ViewStateDecisionCommand;
> *private* *var* collection:ArrayCollection;
> [*Before*]
> *public* *function* setUp():*void*
> {
> collection = *new* ArrayCollection();
> instanceCommand = *new* ViewStateDecisionCommand();
> instanceCommand.eventDispatcher = *new* EventDispatcher();
> }
> [*After*]
> *public* *function* tearDown():*void*
> {
> instanceCommand = *null*;
> }
> I don't even make it into my test method before I get the following runtime
> exception (I've highlighted the actual error below, Line 40 is actually the
> event's call to *super*(type, bubbles, cancelable);):
> [SWF] FlexUnitApplication.swf - 3,994,601 bytes after decompression
> FloxyMockolateFactory prepareClassRecipes [class UserEvent],
> ProxyRepository.prepareClasses 1 [class UserEvent],
> ProxyRepository.prepareClasses classToPrepare [class UserEvent]
> ProxyRepository.prepareClasses namespacesToProxy
> ProxyRepository.prepareClasses proxy
> mockolate.generated:UserEventD88B6B79B0FD8F435ED6E256A55B83AFEBF5F500
> ProxyGenerator.addSuperClassMembers dynamicClass addSuper
> UserEventD88B6B79B0FD8F435ED6E256A55B83AFEBF5F500
> ProxyGenerator.addSuperClassMembers superClass UserEvent
> ProxyGenerator.addSuperClassMembers method clone true
> ProxyGenerator.addSuperClassMembers property usersCollection true -1
> ProxyGenerator.addSuperClassMembers property faultMessage true -1
> ProxyGenerator.addSuperClassMembers superClass Event
> ProxyGenerator.addSuperClassMembers method stopPropagation true
> ProxyGenerator.addSuperClassMembers method stopImmediatePropagation true
> ProxyGenerator.addSuperClassMembers method preventDefault true
> ProxyGenerator.addSuperClassMembers method isDefaultPrevented true
> ProxyGenerator.addSuperClassMembers method formatToString true
> ProxyGenerator.addSuperClassMembers method toString true
> ProxyGenerator.addSuperClassMembers method clone false
> ProxyGenerator.addSuperClassMembers property currentTarget true -1
> ProxyGenerator.addSuperClassMembers property eventPhase true -1
> ProxyGenerator.addSuperClassMembers property type true -1
> ProxyGenerator.addSuperClassMembers property bubbles true -1
> ProxyGenerator.addSuperClassMembers property cancelable true -1
> ProxyGenerator.addSuperClassMembers property target true -1
> [SWF] FlexUnitApplication.swf/[[DYNAMIC]]/1 - 5,344 bytes after
> decompression
> ProxyRepository.prepareClasses loaded item [class
> UserEvent],,mockolate.generated:UserEventD88B6B79B0FD8F435ED6E256A55B83AFEB F5F500
> ProxyRepository.prepareClasses loaded
> mockolate.generated::UserEventD88B6B79B0FD8F435ED6E256A55B83AFEBF5F500
> ProxyRepository.prepareClasses loaded [class UserEvent] [class
> UserEventD88B6B79B0FD8F435ED6E256A55B83AFEBF5F500]
> FloxyMockolateFactory prepareClassRecipes prepared [class UserEvent] [class
> UserEventD88B6B79B0FD8F435ED6E256A55B83AFEBF5F500]
> FloxyMockolateFactory prepareClassRecipes classRecipe [ClassRecipe
> classToPrepare=[class UserEvent] namespacesToProxy=[] proxyClass=null]
> FloxyMockolateFactory prepareClassRecipes complete [class
> UserEvent],,mockolate.generated:UserEventD88B6B79B0FD8F435ED6E256A55B83AFEB F5F500
> ProxyRepository.createWithProxyClass [class
> UserEventD88B6B79B0FD8F435ED6E256A55B83AFEBF5F500] ,,,,
> TypeError: Error #2007: Parameter type must be non-null.
> at flash.events::Event/ctor()
> at flash.events::Event()
> at
> com.fitmetrix.events::UserEvent()[/crypt/myApp/src/com/myapp/events/UserEve nt.as:40]
> at mockolate.generated::UserEventD88B6B79B0FD8F435ED6E256A55B83AFEBF5F500()
> at
> org.flemit.util::ClassUtility$/createClass6()[/Users/drew/Development/works pace-burrito/flemit/flemit/src/org/flemit/util/ClassUtility.as:66]
> at Function/http://adobe.com/AS3/2006/builtin::apply()
> at
> org.flemit.util::ClassUtility$/createClass()[/Users/drew/Development/worksp ace-burrito/flemit/flemit/src/org/flemit/util/ClassUtility.as:57]
> at
> org.floxy::ProxyRepository/createWithProxyClass()[/Users/drew/Development/w orkspace-burrito/floxy/floxy/src/org/floxy/ProxyRepository.as:94]
> at
> mockolate.ingredients.floxy::FloxyMockolateFactory/createInstance()[/Users/ abourne/Workspaces/drewbourne/mockolate/mockolate/src/mockolate/ingredients /floxy/FloxyMockolateFactory.as:122]
> at
> mockolate.ingredients.floxy::FloxyMockolateFactory/prepareInstance()[/Users /abourne/Workspaces/drewbourne/mockolate/mockolate/src/mockolate/ingredient s/floxy/FloxyMockolateFactory.as:92]
> at
> global/asx.array::forEach()[/Users/drew/Development/workspace-oss-/asx/asx/ src/asx/array/forEach.as:12]
> at
> mockolate.ingredients.floxy::FloxyMockolateFactory/prepareInstances()[/User s/abourne/Workspaces/drewbourne/mockolate/mockolate/src/mockolate/ingredien ts/floxy/FloxyMockolateFactory.as:80]
> at
> mockolate.ingredients::Mockolatier/prepareInstances()[/Users/abourne/Worksp aces/drewbourne/mockolate/mockolate/src/mockolate/ingredients/Mockolatier.a s:193]
> at
> mockolate.runner.statements::InjectMockInstances/evaluate()[/Users/abourne/ Workspaces/drewbourne/mockolate/mockolate/src/mockolate/runner/statements/I njectMockInstances.as:49]
> at
> org.flexunit.internals.runners.statements::StatementSequencer/executeStep() [E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\inte rnals\runners\statements\StatementSequencer.as:98]
> at
> org.flexunit.internals.runners.statements::StatementSequencer/handleChildEx ecuteComplete()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\or g\flexunit\internals\runners\statements\StatementSequencer.as:141]
> at
> org.flexunit.token::AsyncTestToken/sendResult()[E:\hudson\jobs\FlexUnit4-Fl ex4.1\workspace\FlexUnit4\src\org\flexunit\token\AsyncTestToken.as:107]
> at
> Function/<anonymous>()[/Users/abourne/Workspaces/drewbourne/mockolate/mocko late/src/mockolate/runner/statements/PrepareMockClasses.as:34]
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at Function/http://adobe.com/AS3/2006/builtin::apply()
> at SetIntervalTimer/onTimer()
> at flash.utils::Timer/_timerDispatch()
> at flash.utils::Timer/tick()