Where do you get NullPointerExceptions? Could you post a stack trace?
How does getHivemindRegistry work?

Achim

Am Thu, 07 Sep 2006 17:09:41 +0200 schrieb <[EMAIL PROTECTED]>:

Hi,

Here's the situation:

I have a Tapestry 4 application with a hivemodule.xml file inside of
which is a "tmpDir" ASO String.

I've got an HttpSessionListener configured to perform some cleanup
operations when the session expires.

Inside that listener, I have code like this:

Object getASO(HttpSessionEvent event, String asoName) {
    ApplicationStateManager manager = null;
    Registry registry = getHivemindRegistry(event);
                
                
    if(registry.containsService(ApplicationStateManager.class)) {
        manager = (ApplicationStateManager)
            registry.getService(ApplicationStateManager.class);
    } else {
          throw new UsitcApplicationRuntimeException("blah");
    }
                
    Object aso = null;

    if(manager.exists(asoName)) {
        aso = manager.get(asoName);     
    }
                
    return aso;
}

I suspect this code will run fine in production, but I'm having a
helluva time writing a unit test for this.  Basically, I just want to
confirm that if I call 'getAso(event, "tempUploadDir")' it'll return the
String that is the value of the " tempUploadDir " key in my
hivemodule.xml ASO.  Simple, right?

In my unit test, I've got code like this:

public void testGetASO() throws Exception {
    //  ehmtc just extends the HiveMindTestCase to provide access to the

    // protected 'buildFrameworkRegistry' methods
    EdisHiveMindUtil ehmtc = new EdisHiveMindUtil();
    Registry registry = ehmtc.buildFrameworkRegistry();
        
    HttpSessionEvent event = createMockHttpSessionEvent(registry);
                
    SessionListener sl = new SessionListener();
    String dir = (String)sl.getASO(event, "tempUploadDir");
                
    System.out.println("dir = " + dir);
}

The problem is that even though the registry gets loaded, it
NullPointerExceptions unless the (key, value) pair for tempUploadDir is
defined.

Unfortunately, I see no way in the API of force-setting that ASO, nor do
I see a straight forward way of EasyMocking this.

Please help!



Reply via email to