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:
Ida Massow 2011-06-10 16:52:15 +02:00
parent 9c281a73c0
commit 8e24819d86
5 changed files with 193 additions and 4 deletions

View 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);
}
}
}

View 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;
}
}

View file

@ -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;
}
} }

View 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;
}
}

View 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);
}
}