package de.lessvoid.nifty.elements; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import org.easymock.ConstructorArgs; import org.junit.After; import org.junit.Before; import org.junit.Test; import de.lessvoid.nifty.Nifty; import de.lessvoid.nifty.controls.FocusHandler; import de.lessvoid.nifty.elements.render.ElementRenderer; import de.lessvoid.nifty.loaderv2.types.ElementType; import de.lessvoid.nifty.spi.time.TimeProvider; public class ElementEnableDisableEffectsTest { private Nifty niftyMock; private Element e1; private Element e2; @Before public void before() throws Exception { niftyMock = createMock(Nifty.class); expect(niftyMock.getAlternateKey()).andReturn(null).times(2); replay(niftyMock); e1 = createMock( Element.class, new ConstructorArgs( Element.class.getConstructor( Nifty.class, ElementType.class, String.class, Element.class, FocusHandler.class, boolean.class, TimeProvider.class, ElementRenderer[].class), niftyMock, null, "e1", null, null, false, null, null), Element.class.getDeclaredMethod("enableEffect"), Element.class.getDeclaredMethod("disableEffect"), Element.class.getDeclaredMethod("disableFocus")); e2 = createMock( Element.class, new ConstructorArgs( Element.class.getConstructor( Nifty.class, ElementType.class, String.class, Element.class, FocusHandler.class, boolean.class, TimeProvider.class, ElementRenderer[].class), niftyMock, null, "e1", null, null, false, null, null), Element.class.getDeclaredMethod("enableEffect"), Element.class.getDeclaredMethod("disableEffect"), Element.class.getDeclaredMethod("disableFocus")); e1.addChild(e2); } @After public void after() { verify(niftyMock); verify(e1); verify(e2); } @Test public void testSimpleDisable() { replay(e1); e2.disableFocus(); e2.disableEffect(); replay(e2); e2.disable(); } @Test public void testDisableTwice() { replay(e1); e2.disableFocus(); e2.disableEffect(); replay(e2); e2.disable(); e2.disable(); } @Test public void testDisableTwiceAndThenEnable() { replay(e1); e2.disableFocus(); e2.disableEffect(); e2.enableEffect(); replay(e2); e2.disable(); e2.disable(); e2.enable(); e2.enable(); } @Test public void testSimpleEnable() { replay(e1); replay(e2); e2.enable(); } @Test public void testEnableTwice() { replay(e1); replay(e2); e2.enable(); e2.enable(); } @Test public void testEnableTwiceAndThenDisable() { replay(e1); e2.disableFocus(); e2.disableEffect(); replay(e2); e2.enable(); e2.enable(); e2.disable(); } @Test public void testParentDisable() { e1.disableFocus(); e1.disableEffect(); replay(e1); e2.disableFocus(); e2.disableEffect(); replay(e2); e1.disable(); } @Test public void testParentDisableWithDisabledChild() { e1.disableFocus(); e1.disableEffect(); replay(e1); e2.disableFocus(); e2.disableEffect(); replay(e2); e2.disable(); e1.disable(); } @Test public void testParentDisableWithDisabledChildAndParentEnable() { e1.disableFocus(); e1.disableEffect(); e1.enableEffect(); replay(e1); e2.disableFocus(); e2.disableEffect(); replay(e2); e2.disable(); e1.disable(); e1.enable(); } }