/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.control.common; import java.lang.reflect.Method; import junit.framework.TestCase; import net.codjo.test.common.mock.ConnectionMock; /** * DOCUMENT ME! * * @version $Revision: 1.3 $ */ public class ImmutableControlContextTest extends TestCase { private ImmutableControlContext immutable; private ControlContext context; public void test_delegateAll() throws Exception { Method[] imMeth = ImmutableControlContext.class.getMethods(); for (Method method : imMeth) { if (method.getDeclaringClass() != Object.class && method.getDeclaringClass() != ImmutableControlContext.class) { fail("La m�thode doit �tre d�clar� dans ImmutableControlContext " + "pour s'assurer de l'aspect immutable et de la d�l�gation! " + method); } } } public void test_delegate() throws Exception { context.setCurrentRequestId("id"); context.setUser("bobo"); assertEquals("id", immutable.getCurrentRequestId()); assertEquals("bobo", immutable.getUser()); } public void test_immutable() throws Exception { try { immutable.setCurrentRequestId("id"); fail("Methode immutable"); } catch (UnsupportedOperationException ex) { ; } try { immutable.setUser("bobo"); fail("Methode immutable"); } catch (UnsupportedOperationException ex) { ; } try { immutable.setConnection(new ConnectionMock().getStub()); fail("Methode immutable"); } catch (UnsupportedOperationException ex) { ; } } @Override protected void setUp() throws Exception { context = new ControlContext(); immutable = new ImmutableControlContext(context); } }