[kune-commits] r831 - in trunk/src/test/java/org/ourproject/kune/platf: integration server server/auth

vjrj vjrj at ourproject.org
Wed Aug 6 04:36:02 CEST 2008


Author: vjrj
Date: 2008-08-06 04:36:00 +0200 (Wed, 06 Aug 2008)
New Revision: 831

Added:
   trunk/src/test/java/org/ourproject/kune/platf/server/auth/
   trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthenticatedMethodInterceptorTest.java
Modified:
   trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
Log:
Incomplete - task 38: Auth*MethodInterceptors Tests 


Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java	2008-08-05 17:43:43 UTC (rev 830)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java	2008-08-06 02:36:00 UTC (rev 831)
@@ -18,24 +18,26 @@
 public class IntegrationTestHelper {
 
     public static Injector createInjector() {
-        final Injector injector = Guice.createInjector(new PlatformServerModule(), new DocumentServerModule(),
-                new ChatServerModule(), new AbstractModule() {
-                    @Override
-                    protected void configure() {
-                        bindScope(SessionScoped.class, Scopes.SINGLETON);
-                        // test: use memory
-                        // test_db: use mysql
-                        bindConstant().annotatedWith(JpaUnit.class).to("test");
-                        bindConstant().annotatedWith(PropertiesFileName.class).to("kune.properties");
-                        bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
-                    }
-                });
-        return injector;
+	final Injector injector = Guice.createInjector(new PlatformServerModule(), new DocumentServerModule(),
+		new ChatServerModule(), new AbstractModule() {
+		    @Override
+		    protected void configure() {
+			bindScope(SessionScoped.class, Scopes.SINGLETON);
+			// test: use memory
+			// test_db: use mysql
+			bindConstant().annotatedWith(JpaUnit.class).to("test");
+			bindConstant().annotatedWith(PropertiesFileName.class).to("kune.properties");
+			bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
+		    }
+		});
+	return injector;
     }
 
-    public IntegrationTestHelper(final Object test) {
-        final Injector injector = createInjector();
-        injector.getInstance(KunePersistenceService.class).start();
-        injector.injectMembers(test);
+    public IntegrationTestHelper(final Object... tests) {
+	final Injector injector = createInjector();
+	injector.getInstance(KunePersistenceService.class).start();
+	for (final Object test : tests) {
+	    injector.injectMembers(test);
+	}
     }
 }

Added: trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthenticatedMethodInterceptorTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthenticatedMethodInterceptorTest.java	2008-08-05 17:43:43 UTC (rev 830)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthenticatedMethodInterceptorTest.java	2008-08-06 02:36:00 UTC (rev 831)
@@ -0,0 +1,81 @@
+package org.ourproject.kune.platf.server.auth;
+
+import java.lang.reflect.AccessibleObject;
+
+import org.aopalliance.intercept.MethodInvocation;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.ourproject.kune.platf.client.errors.SessionExpiredException;
+import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
+import org.ourproject.kune.platf.integration.IntegrationTest;
+import org.ourproject.kune.platf.integration.IntegrationTestHelper;
+
+public class AuthenticatedMethodInterceptorTest extends IntegrationTest {
+
+    private AuthenticatedMethodInterceptor auth;
+    private MethodInvocation invocation;
+    private Authenticated authAnnotation;
+
+    @Before
+    public void before() {
+	auth = new AuthenticatedMethodInterceptor();
+	new IntegrationTestHelper(auth, this);
+	invocation = Mockito.mock(MethodInvocation.class);
+	final AccessibleObject accessibleObject = Mockito.mock(AccessibleObject.class);
+	Mockito.stub(invocation.getMethod()).toReturn(this.getClass().getMethods()[0]);
+	Mockito.stub(invocation.getStaticPart()).toReturn(accessibleObject);
+	authAnnotation = Mockito.mock(Authenticated.class);
+	Mockito.stub(accessibleObject.getAnnotation(Authenticated.class)).toReturn(authAnnotation);
+    }
+
+    @Test(expected = UserMustBeLoggedException.class)
+    public void hashNullAndMandatoryMustDoNothing() throws Throwable {
+	Mockito.stub(authAnnotation.mandatory()).toReturn(true);
+	final Object[] result = { null };
+	Mockito.stub(invocation.getArguments()).toReturn(result);
+	auth.invoke(invocation);
+    }
+
+    @Test
+    public void hashNullAndNotMandatoryMustDoNothing() throws Throwable {
+	Mockito.stub(authAnnotation.mandatory()).toReturn(false);
+	final Object[] result = { null };
+	Mockito.stub(invocation.getArguments()).toReturn(result);
+	auth.invoke(invocation);
+    }
+
+    @Test
+    public void hashNullAsStringAndNotMandatoryMustDoNothing() throws Throwable {
+	Mockito.stub(authAnnotation.mandatory()).toReturn(false);
+	final Object[] result = { "null" };
+	Mockito.stub(invocation.getArguments()).toReturn(result);
+	auth.invoke(invocation);
+    }
+
+    @Test(expected = SessionExpiredException.class)
+    public void otherHashAndMandatoryAndLoggedMustSessionExp() throws Throwable {
+	doLogin();
+	Mockito.stub(authAnnotation.mandatory()).toReturn(true);
+	final Object[] result = { "other-hash" };
+	Mockito.stub(invocation.getArguments()).toReturn(result);
+	auth.invoke(invocation);
+    }
+
+    @Test
+    public void sameHashAndMandatoryAndLoggedMustSessionExp() throws Throwable {
+	doLogin();
+	Mockito.stub(authAnnotation.mandatory()).toReturn(true);
+	final Object[] result = { getHash() };
+	Mockito.stub(invocation.getArguments()).toReturn(result);
+	auth.invoke(invocation);
+    }
+
+    @Test(expected = SessionExpiredException.class)
+    public void someHashAndMandatoryAndNotLoggedMustSessionExp() throws Throwable {
+	Mockito.stub(authAnnotation.mandatory()).toReturn(true);
+	final Object[] result = { "some-hash" };
+	Mockito.stub(invocation.getArguments()).toReturn(result);
+	auth.invoke(invocation);
+    }
+}




More information about the kune-commits mailing list