Mock ist wieder heile und es gibt Tests für die LoginControl... und eine LoginControl
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@397 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
9c281a73c0
commit
8e24819d86
5 changed files with 193 additions and 4 deletions
45
mock/jrummikub/util/MockEvent3.java
Normal file
45
mock/jrummikub/util/MockEvent3.java
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
package jrummikub.util;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mock class for Event2s
|
||||||
|
*
|
||||||
|
* @param <T1>
|
||||||
|
* first event type
|
||||||
|
* @param <T2>
|
||||||
|
* second event type
|
||||||
|
*/
|
||||||
|
public class MockEvent3<T1, T2, T3> implements IEvent3<T1, T2, T3> {
|
||||||
|
/** */
|
||||||
|
public HashSet<IListener3<T1, T2, T3>> listeners = new HashSet<IListener3<T1, T2, T3>>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Connection add(final IListener3<T1, T2, T3> listener) {
|
||||||
|
listeners.add(listener);
|
||||||
|
return new Connection() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove() {
|
||||||
|
MockEvent3.this.remove(listener);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove(IListener3<T1, T2, T3> listener) {
|
||||||
|
listeners.remove(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param value1
|
||||||
|
* the first event parameter
|
||||||
|
* @param value2
|
||||||
|
* the second event parameter
|
||||||
|
*/
|
||||||
|
public void emit(T1 value1, T2 value2, T3 value3) {
|
||||||
|
for (IListener3<T1, T2, T3> listener : listeners) {
|
||||||
|
listener.handle(value1, value2, value3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
24
mock/jrummikub/view/MockLoginPanel.java
Normal file
24
mock/jrummikub/view/MockLoginPanel.java
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
package jrummikub.view;
|
||||||
|
|
||||||
|
import jrummikub.util.IEvent;
|
||||||
|
import jrummikub.util.IEvent3;
|
||||||
|
import jrummikub.util.MockEvent;
|
||||||
|
import jrummikub.util.MockEvent3;
|
||||||
|
/** */
|
||||||
|
public class MockLoginPanel implements ILoginPanel {
|
||||||
|
/** */
|
||||||
|
public MockEvent3<String, String, String> loginEvent = new MockEvent3<String, String, String>();
|
||||||
|
/** */
|
||||||
|
public MockEvent cancelEvent = new MockEvent();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IEvent3<String, String, String> getLoginEvent() {
|
||||||
|
return loginEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IEvent getCancelEvent() {
|
||||||
|
return cancelEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -24,6 +24,14 @@ public class MockView implements IView {
|
||||||
public MockTablePanel tablePanel = new MockTablePanel();
|
public MockTablePanel tablePanel = new MockTablePanel();
|
||||||
/** */
|
/** */
|
||||||
public MockHandPanel handPanel = new MockHandPanel();
|
public MockHandPanel handPanel = new MockHandPanel();
|
||||||
|
/** */
|
||||||
|
public MockLoginPanel loginPanel = new MockLoginPanel();
|
||||||
|
/** */
|
||||||
|
public boolean isSettingsPanelVisible = false;
|
||||||
|
/** */
|
||||||
|
public boolean isScorePanelVisible = false;
|
||||||
|
/** */
|
||||||
|
public boolean isLoginPanelVisible = false;
|
||||||
|
|
||||||
/** */
|
/** */
|
||||||
public Collection<Stone> selectedStones;
|
public Collection<Stone> selectedStones;
|
||||||
|
@ -53,6 +61,8 @@ public class MockView implements IView {
|
||||||
public MockEvent pauseEvent = new MockEvent();
|
public MockEvent pauseEvent = new MockEvent();
|
||||||
/** */
|
/** */
|
||||||
public MockEvent endPauseEvent = new MockEvent();
|
public MockEvent endPauseEvent = new MockEvent();
|
||||||
|
/** */
|
||||||
|
public MockEvent networkGameEvent = new MockEvent();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MockTablePanel getTablePanel() {
|
public MockTablePanel getTablePanel() {
|
||||||
|
@ -101,8 +111,7 @@ public class MockView implements IView {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showSettingsPanel(boolean show) {
|
public void showSettingsPanel(boolean show) {
|
||||||
// TODO Auto-generated method stub
|
isSettingsPanelVisible = show;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -112,8 +121,7 @@ public class MockView implements IView {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showScorePanel(boolean show) {
|
public void showScorePanel(boolean show) {
|
||||||
// TODO Auto-generated method stub
|
isScorePanelVisible = show;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -177,4 +185,20 @@ public class MockView implements IView {
|
||||||
public IEvent getEndPauseEvent() {
|
public IEvent getEndPauseEvent() {
|
||||||
return endPauseEvent;
|
return endPauseEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IEvent getNetworkGameEvent() {
|
||||||
|
return networkGameEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ILoginPanel getLoginPanel() {
|
||||||
|
return loginPanel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showLoginPanel(boolean show) {
|
||||||
|
isLoginPanelVisible = show;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
26
src/jrummikub/control/network/LoginControl.java
Normal file
26
src/jrummikub/control/network/LoginControl.java
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
package jrummikub.control.network;
|
||||||
|
|
||||||
|
import jrummikub.util.Event;
|
||||||
|
import jrummikub.util.Event3;
|
||||||
|
import jrummikub.util.IEvent;
|
||||||
|
import jrummikub.util.IEvent3;
|
||||||
|
import jrummikub.view.IView;
|
||||||
|
|
||||||
|
public class LoginControl {
|
||||||
|
private IView view;
|
||||||
|
private Event3<String, String, String> loginEvent = new Event3<String, String, String>();
|
||||||
|
private Event cancelEvent = new Event();
|
||||||
|
|
||||||
|
public LoginControl(IView view) {
|
||||||
|
this.view = view;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEvent3<String, String, String> getLoginEvent() {
|
||||||
|
return loginEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEvent getCancelEvent() {
|
||||||
|
return cancelEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
70
test/jrummikub/control/network/LoginControlTest.java
Normal file
70
test/jrummikub/control/network/LoginControlTest.java
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
package jrummikub.control.network;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
import jrummikub.util.IListener;
|
||||||
|
import jrummikub.util.IListener3;
|
||||||
|
import jrummikub.view.MockView;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/** */
|
||||||
|
public class LoginControlTest {
|
||||||
|
MockView view;
|
||||||
|
LoginControl loginControl;
|
||||||
|
boolean handled = false;
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
view = new MockView();
|
||||||
|
loginControl = new LoginControl(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Test
|
||||||
|
public void panelVisibleTest() {
|
||||||
|
assertFalse(view.isSettingsPanelVisible);
|
||||||
|
assertTrue(view.isLoginPanelVisible);
|
||||||
|
assertFalse(view.isScorePanelVisible);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Test
|
||||||
|
public void loginEventTest() {
|
||||||
|
loginControl.getLoginEvent().add(
|
||||||
|
new IListener3<String, String, String>() {
|
||||||
|
@Override
|
||||||
|
public void handle(String value1, String value2,
|
||||||
|
String value3) {
|
||||||
|
assertEquals("a", value1);
|
||||||
|
assertEquals("b", value2);
|
||||||
|
assertEquals("c", value3);
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
view.loginPanel.loginEvent.emit("a", "b", "c");
|
||||||
|
assertTrue(handled);
|
||||||
|
assertFalse(view.isLoginPanelVisible);
|
||||||
|
assertFalse(view.isScorePanelVisible);
|
||||||
|
assertFalse(view.isSettingsPanelVisible);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Test
|
||||||
|
public void cancelEventTest() {
|
||||||
|
loginControl.getCancelEvent().add(
|
||||||
|
new IListener() {
|
||||||
|
@Override
|
||||||
|
public void handle() {
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
view.loginPanel.cancelEvent.emit();
|
||||||
|
assertTrue(handled);
|
||||||
|
assertFalse(view.isLoginPanelVisible);
|
||||||
|
assertFalse(view.isScorePanelVisible);
|
||||||
|
assertFalse(view.isSettingsPanelVisible);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Reference in a new issue