Implemented the optional reference of leaderboards to a coursearea of an

event
This commit is contained in:
Armin Zamani committed 2013-02-06 17:47:32 +01:00
1 parent 339f930a83
commit 0cb94ad321
44 files changed
+5917 -5667

No files matched your search

@@ -1,231 +1,231 @@
package com.sap.sailing.gwt.ui.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import com.google.gwt.core.client.GWT;
import com.google.gwt.junit.client.GWTTestCase;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.leaderboard.ExpandableSortableColumn;
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardRowDTO;
import com.sap.sailing.gwt.ui.shared.RaceColumnDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.TracTracRaceRecordDTO;
public class GwtTestCaseColumnToggling extends GWTTestCase {
//These objects should be created by calling GWT.create(Class c);
private LeaderboardPanelMock leaderboardPanel;
private MyTestSailingServiceAsync service;
private StringMessages sc;
//Test data.
private final String LEADERBOARD_NAME = "test";
private static final String DEFAULT_FLEET_NAME = "Default";
private final String COLUMN1_NAME = "r1";
private final String EVENT_NAME = "Sailing Team Germany (STG)";
protected static final boolean tractracTunnel = true; // Boolean.valueOf(System.getProperty("tractrac.tunnel", "false"));
protected static final String tractracTunnelHost = "10.18.206.73"; // System.getProperty("tractrac.tunnel.host", "localhost");
private final String JSON_URL= "http://" + TracTracConnectionConstants.HOST_NAME + "/events/event_20110505_SailingTea/jsonservice.php";
private final String TRACKED_RACE = "schwerttest";
private LeaderboardDTO leaderboard;
private TracTracRaceRecordDTO rrDao;
private ExpandableSortableColumn<LeaderboardRowDTO> rc;
@Override
protected void gwtSetUp() throws Exception {
super.gwtSetUp();
service = GWT.create(MyTestSailingService.class);
sc = GWT.create(StringMessages.class);
}
public void testColumnDeleting() {
delayTestFinish(1000000);
listRacesInEvent();
}
private void listRacesInEvent(){
service.listTracTracRacesInEvent(JSON_URL, new AsyncCallback<Pair<String,List<TracTracRaceRecordDTO>>>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to list races." + caught.getLocalizedMessage());
}
@Override
public void onSuccess(Pair<String, List<TracTracRaceRecordDTO>> result) {
System.out.println("Listed races.");
for (TracTracRaceRecordDTO rr : result.getB()){
if (rr.name.equals(TRACKED_RACE)){
rrDao = rr;
}
}
//assertNotNull("rrDao != null",rrDao);
assertNotNull(rrDao);
trackRace();
}
});
}
private void trackRace(){
service.trackWithTracTrac(/* regattaToAddTo */null, Collections.singleton(rrDao), tractracTunnel ? "tcp://" + tractracTunnelHost + ":"
+ TracTracConnectionConstants.PORT_TUNNEL_LIVE : "tcp://" + TracTracConnectionConstants.HOST_NAME + ":"
+ TracTracConnectionConstants.PORT_LIVE, tractracTunnel ? "tcp://" + tractracTunnelHost + ":"
+ TracTracConnectionConstants.PORT_TUNNEL_STORED : "tcp://" + TracTracConnectionConstants.HOST_NAME
+ ":" + TracTracConnectionConstants.PORT_STORED, false, false, /* simulateWithStartTimeNow */ false, new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to track race: " + caught.getLocalizedMessage());
}
@Override
public void onSuccess(Void result) {
System.out.println("Tracked race.");
createLeaderboard();
}
});
}
private void createLeaderboard(){
service.createFlexibleLeaderboard(LEADERBOARD_NAME, new int[] { 1, 2 }, ScoringSchemeType.LOW_POINT,
new AsyncCallback<StrippedLeaderboardDTO>() {
@Override
public void onSuccess(StrippedLeaderboardDTO result) {
System.out.println("Created Leaderboard "+result.name);
addColumnToLeaderboard();
}
@Override
public void onFailure(Throwable caught) {
fail("Failed to create Leaderboard." + caught.getLocalizedMessage());
finishTest();
}
});
}
private void addColumnToLeaderboard() {
leaderboardPanel = new LeaderboardPanelMock(service, LEADERBOARD_NAME, null, sc);
service.addColumnToLeaderboard(COLUMN1_NAME, LEADERBOARD_NAME, false,
new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to add column to leaderboard.");
finishTest();
}
@Override
public void onSuccess(Void result) {
System.out.println("Added column to leaderboard.");
RaceColumnDTO race = new RaceColumnDTO(/* isValidInTotalScore */ null);
race.name = COLUMN1_NAME;
race.setMedalRace(false);
leaderboardPanel.addColumn(leaderboardPanel.createRaceColumn(race));
linkTrackedRace();
}
});
}
private void linkTrackedRace() {
service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, DEFAULT_FLEET_NAME,
new RegattaNameAndRaceName(EVENT_NAME, TRACKED_RACE),
new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to link race.");
}
@Override
public void onSuccess(Boolean result) {
System.out.println("Success of linking race to column: "+result);
getLeaderboard();
}
});
}
private void getLeaderboard(){
ArrayList<String> al = new ArrayList<String>();
al.add(COLUMN1_NAME);
service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), al, new AsyncCallback<LeaderboardDTO>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to get leaderboard.");
finishTest();
}
@Override
public void onSuccess(LeaderboardDTO result) {
System.out.println("Got leaderboard.");
leaderboard = result;
leaderboardPanel.updateLeaderboard(leaderboard);
for (int i = 0; i < leaderboardPanel.getLeaderboardTable()
.getColumnCount(); i++) {
Column<LeaderboardRowDTO, ?> c = leaderboardPanel.getLeaderboardTable().getColumn(i);
if (c instanceof ExpandableSortableColumn<?>) {
@SuppressWarnings("unchecked")
ExpandableSortableColumn<LeaderboardRowDTO> myRc = (ExpandableSortableColumn<LeaderboardRowDTO>) c;
rc = myRc;
rc.setEnableExpansion(true);
}
}
removeColumnAndAssert();
}
});
}
private void removeColumnAndAssert(){
service.removeLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME,
new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to remoce column.");
finishTest();
}
@Override
public void onSuccess(Void result) {
leaderboardPanel.updateLeaderboard(leaderboard);
assertNotNull(rc);
try {
rc.toggleExpansion();
leaderboardPanel.updateLeaderboard(leaderboard);
} catch (Exception e) {
fail("Toggle column failed." + e.getLocalizedMessage());
}
finishTest();
}
});
}
@Override
protected void gwtTearDown() throws Exception {
// TODO Auto-generated method stub
super.gwtTearDown();
}
@Override
public String getModuleName() {
// TODO Auto-generated method stub
return "com.sap.sailing.gwt.ui.test.TestConsole";
}
}
package com.sap.sailing.gwt.ui.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import com.google.gwt.core.client.GWT;
import com.google.gwt.junit.client.GWTTestCase;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.leaderboard.ExpandableSortableColumn;
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardRowDTO;
import com.sap.sailing.gwt.ui.shared.RaceColumnDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.TracTracRaceRecordDTO;
public class GwtTestCaseColumnToggling extends GWTTestCase {
//These objects should be created by calling GWT.create(Class c);
private LeaderboardPanelMock leaderboardPanel;
private MyTestSailingServiceAsync service;
private StringMessages sc;
//Test data.
private final String LEADERBOARD_NAME = "test";
private static final String DEFAULT_FLEET_NAME = "Default";
private final String COLUMN1_NAME = "r1";
private final String EVENT_NAME = "Sailing Team Germany (STG)";
protected static final boolean tractracTunnel = true; // Boolean.valueOf(System.getProperty("tractrac.tunnel", "false"));
protected static final String tractracTunnelHost = "10.18.206.73"; // System.getProperty("tractrac.tunnel.host", "localhost");
private final String JSON_URL= "http://" + TracTracConnectionConstants.HOST_NAME + "/events/event_20110505_SailingTea/jsonservice.php";
private final String TRACKED_RACE = "schwerttest";
private LeaderboardDTO leaderboard;
private TracTracRaceRecordDTO rrDao;
private ExpandableSortableColumn<LeaderboardRowDTO> rc;
@Override
protected void gwtSetUp() throws Exception {
super.gwtSetUp();
service = GWT.create(MyTestSailingService.class);
sc = GWT.create(StringMessages.class);
}
public void testColumnDeleting() {
delayTestFinish(1000000);
listRacesInEvent();
}
private void listRacesInEvent(){
service.listTracTracRacesInEvent(JSON_URL, new AsyncCallback<Pair<String,List<TracTracRaceRecordDTO>>>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to list races." + caught.getLocalizedMessage());
}
@Override
public void onSuccess(Pair<String, List<TracTracRaceRecordDTO>> result) {
System.out.println("Listed races.");
for (TracTracRaceRecordDTO rr : result.getB()){
if (rr.name.equals(TRACKED_RACE)){
rrDao = rr;
}
}
//assertNotNull("rrDao != null",rrDao);
assertNotNull(rrDao);
trackRace();
}
});
}
private void trackRace(){
service.trackWithTracTrac(/* regattaToAddTo */null, Collections.singleton(rrDao), tractracTunnel ? "tcp://" + tractracTunnelHost + ":"
+ TracTracConnectionConstants.PORT_TUNNEL_LIVE : "tcp://" + TracTracConnectionConstants.HOST_NAME + ":"
+ TracTracConnectionConstants.PORT_LIVE, tractracTunnel ? "tcp://" + tractracTunnelHost + ":"
+ TracTracConnectionConstants.PORT_TUNNEL_STORED : "tcp://" + TracTracConnectionConstants.HOST_NAME
+ ":" + TracTracConnectionConstants.PORT_STORED, false, false, /* simulateWithStartTimeNow */ false, new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to track race: " + caught.getLocalizedMessage());
}
@Override
public void onSuccess(Void result) {
System.out.println("Tracked race.");
createLeaderboard();
}
});
}
private void createLeaderboard(){
service.createFlexibleLeaderboard(LEADERBOARD_NAME, new int[] { 1, 2 }, ScoringSchemeType.LOW_POINT, null,
new AsyncCallback<StrippedLeaderboardDTO>() {
@Override
public void onSuccess(StrippedLeaderboardDTO result) {
System.out.println("Created Leaderboard "+result.name);
addColumnToLeaderboard();
}
@Override
public void onFailure(Throwable caught) {
fail("Failed to create Leaderboard." + caught.getLocalizedMessage());
finishTest();
}
});
}
private void addColumnToLeaderboard() {
leaderboardPanel = new LeaderboardPanelMock(service, LEADERBOARD_NAME, null, sc);
service.addColumnToLeaderboard(COLUMN1_NAME, LEADERBOARD_NAME, false,
new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to add column to leaderboard.");
finishTest();
}
@Override
public void onSuccess(Void result) {
System.out.println("Added column to leaderboard.");
RaceColumnDTO race = new RaceColumnDTO(/* isValidInTotalScore */ null);
race.name = COLUMN1_NAME;
race.setMedalRace(false);
leaderboardPanel.addColumn(leaderboardPanel.createRaceColumn(race));
linkTrackedRace();
}
});
}
private void linkTrackedRace() {
service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, DEFAULT_FLEET_NAME,
new RegattaNameAndRaceName(EVENT_NAME, TRACKED_RACE),
new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to link race.");
}
@Override
public void onSuccess(Boolean result) {
System.out.println("Success of linking race to column: "+result);
getLeaderboard();
}
});
}
private void getLeaderboard(){
ArrayList<String> al = new ArrayList<String>();
al.add(COLUMN1_NAME);
service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), al, new AsyncCallback<LeaderboardDTO>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to get leaderboard.");
finishTest();
}
@Override
public void onSuccess(LeaderboardDTO result) {
System.out.println("Got leaderboard.");
leaderboard = result;
leaderboardPanel.updateLeaderboard(leaderboard);
for (int i = 0; i < leaderboardPanel.getLeaderboardTable()
.getColumnCount(); i++) {
Column<LeaderboardRowDTO, ?> c = leaderboardPanel.getLeaderboardTable().getColumn(i);
if (c instanceof ExpandableSortableColumn<?>) {
@SuppressWarnings("unchecked")
ExpandableSortableColumn<LeaderboardRowDTO> myRc = (ExpandableSortableColumn<LeaderboardRowDTO>) c;
rc = myRc;
rc.setEnableExpansion(true);
}
}
removeColumnAndAssert();
}
});
}
private void removeColumnAndAssert(){
service.removeLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME,
new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
fail("Failed to remoce column.");
finishTest();
}
@Override
public void onSuccess(Void result) {
leaderboardPanel.updateLeaderboard(leaderboard);
assertNotNull(rc);
try {
rc.toggleExpansion();
leaderboardPanel.updateLeaderboard(leaderboard);
} catch (Exception e) {
fail("Toggle column failed." + e.getLocalizedMessage());
}
finishTest();
}
});
}
@Override
protected void gwtTearDown() throws Exception {
// TODO Auto-generated method stub
super.gwtTearDown();
}
@Override
public String getModuleName() {
// TODO Auto-generated method stub
return "com.sap.sailing.gwt.ui.test.TestConsole";
}
}
@@ -1,138 +1,138 @@
package com.sap.sailing.gwt.ui.test;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.gwt.ui.server.SailingServiceImpl;
import com.sap.sailing.gwt.ui.shared.FleetDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.RaceColumnDTO;
public class TestColumnSwapping {
private LeaderboardDTO lb = null;
private static final String LEADERBOARDNAME = "test";
private static final String DEFAULT_FLEET_NAME = "Default";
private static final FleetDTO DEFAULT_FLEET = new FleetDTO(DEFAULT_FLEET_NAME, /* ordering */ 0, /* color */ null);
private SailingServiceImpl service;
private LeaderboardDTO leaderboardOriginalDTO;
private LeaderboardDTO leaderboardDTO;
private Collection<String> leglist;
private Date leaderboardCreationDate;
private SailingServiceImpl sailingService = null;
// Test-Data
private final String TEST_LEADERBOARD_NAME = "test_board";
private final String[] races = { "1", "2", "3" };
private final boolean[] isMedalRace = { false, false, true };
@Before
public void prepareColumnSwapping() {
service = new SailingServiceImplMock();
int[] disc = { 5, 8, 9, 0, 7, 5, 43 };
service.createFlexibleLeaderboard(LEADERBOARDNAME, disc, ScoringSchemeType.LOW_POINT);
service.addColumnToLeaderboard("Race1", LEADERBOARDNAME, true);
service.addColumnToLeaderboard("Race2", LEADERBOARDNAME, true);
service.addColumnToLeaderboard("Race3", LEADERBOARDNAME, true);
leglist = new ArrayList<String>();
leglist.add("Race1");
leglist.add("Race2");
leglist.add("Race3");
leaderboardCreationDate = new Date();
try {
// get Leaderboard with name and current date
leaderboardOriginalDTO = new LeaderboardDTO(null, null, /* higherScoreIsBetter */ false);
leaderboardOriginalDTO.addRace("Race1", /* explicitFactor */ null, DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race3", /* explicitFactor */ null, DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race2", /* explicitFactor */ null, DEFAULT_FLEET, true, null, null);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testColumnSwapping() {
testColumnSwappingFabian();
testLeaderBoardDTOMethods();
testSailingService();
}
@Test
public void testSailingService() {
sailingService = new SailingServiceImplMock();
assertNotNull("Sailingservice != NULL", sailingService);
int td[] = { 5, 8 };
sailingService.createFlexibleLeaderboard(TEST_LEADERBOARD_NAME, td, ScoringSchemeType.LOW_POINT);
for (int i = 0; i < races.length; i++)
sailingService.addColumnToLeaderboard(races[i], TEST_LEADERBOARD_NAME, isMedalRace[i]);
sailingService.moveLeaderboardColumnDown(TEST_LEADERBOARD_NAME, races[0]);
sailingService.moveLeaderboardColumnDown(TEST_LEADERBOARD_NAME, races[0]);
sailingService.moveLeaderboardColumnUp(TEST_LEADERBOARD_NAME, races[2]);
sailingService.updateIsMedalRace(TEST_LEADERBOARD_NAME, races[0], true);
sailingService.updateIsMedalRace(TEST_LEADERBOARD_NAME, races[2], false);
try {
lb = sailingService.getLeaderboardByName(TEST_LEADERBOARD_NAME, new Date(), /* races to load */ null);
} catch (Exception e) {
// e.printStackTrace();
fail(e.getLocalizedMessage());
}
assertNotNull("LeaderboardDTO != NULL", lb);
// asserted data
String[] raceNames = new String[] { "3", "2", "1" };
boolean[] medalRace = { true, false, false };
for (int i = 0; i < lb.getRaceList().size(); i++) {
assertTrue("Race[" + i + "] == " + raceNames[i], lb.getRaceList().get(i).equals(raceNames[i]));
assertTrue("Race[" + i + "] is " + (medalRace[i] ? "" : "no ") + "medalrace.",
lb.raceIsMedalRace(races[i]) == medalRace[i]);
}
}
@Test
public void testLeaderBoardDTOMethods() {
lb = new LeaderboardDTO(null, null, /* higherScoreIsBetter */ false);
assertNotNull("Leaderboard != NULL", lb);
lb.addRace("1", /* explicitFactor */ null, DEFAULT_FLEET, false, null, null);
lb.addRace("2", /* explicitFactor */ null, DEFAULT_FLEET, false, null, null);
lb.addRace("3", /* explicitFactor */ null, DEFAULT_FLEET, true, null, null);
lb.moveRaceDown("1");
String[] s = new String[] { "2", "1", "3" };
for (int i = 0; i < lb.getRaceList().size(); i++)
assertTrue("Race[" + i + "] = " + s[i], lb.getRaceList().get(i).equals(s[i]));
}
@Test
public void testColumnSwappingFabian() {
service.moveLeaderboardColumnUp(LEADERBOARDNAME, "Race3");
try {
leaderboardDTO = service.getLeaderboardByName(LEADERBOARDNAME, leaderboardCreationDate, leglist);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// check if leaderboardDTO an dleaderboardOriginalDTO same
List<RaceColumnDTO> leaderboardList = leaderboardDTO.getRaceList();
List<RaceColumnDTO> leaderboardOriginalList = leaderboardOriginalDTO.getRaceList();
// ??????? assert races in list
assertArrayEquals(leaderboardList.toArray(), leaderboardOriginalList.toArray());
for (RaceColumnDTO raceDTO : leaderboardOriginalList) {
assert leaderboardDTO.raceIsMedalRace(raceDTO.getRaceColumnName()) == leaderboardOriginalDTO.raceIsMedalRace(raceDTO.getRaceColumnName());
assert leaderboardDTO.raceIsTracked(raceDTO.getRaceColumnName()) == leaderboardOriginalDTO.raceIsTracked(raceDTO.getRaceColumnName());
}
}
}
package com.sap.sailing.gwt.ui.test;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.gwt.ui.server.SailingServiceImpl;
import com.sap.sailing.gwt.ui.shared.FleetDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.RaceColumnDTO;
public class TestColumnSwapping {
private LeaderboardDTO lb = null;
private static final String LEADERBOARDNAME = "test";
private static final String DEFAULT_FLEET_NAME = "Default";
private static final FleetDTO DEFAULT_FLEET = new FleetDTO(DEFAULT_FLEET_NAME, /* ordering */ 0, /* color */ null);
private SailingServiceImpl service;
private LeaderboardDTO leaderboardOriginalDTO;
private LeaderboardDTO leaderboardDTO;
private Collection<String> leglist;
private Date leaderboardCreationDate;
private SailingServiceImpl sailingService = null;
// Test-Data
private final String TEST_LEADERBOARD_NAME = "test_board";
private final String[] races = { "1", "2", "3" };
private final boolean[] isMedalRace = { false, false, true };
@Before
public void prepareColumnSwapping() {
service = new SailingServiceImplMock();
int[] disc = { 5, 8, 9, 0, 7, 5, 43 };
service.createFlexibleLeaderboard(LEADERBOARDNAME, disc, ScoringSchemeType.LOW_POINT, null);
service.addColumnToLeaderboard("Race1", LEADERBOARDNAME, true);
service.addColumnToLeaderboard("Race2", LEADERBOARDNAME, true);
service.addColumnToLeaderboard("Race3", LEADERBOARDNAME, true);
leglist = new ArrayList<String>();
leglist.add("Race1");
leglist.add("Race2");
leglist.add("Race3");
leaderboardCreationDate = new Date();
try {
// get Leaderboard with name and current date
leaderboardOriginalDTO = new LeaderboardDTO(null, null, /* higherScoreIsBetter */ false);
leaderboardOriginalDTO.addRace("Race1", /* explicitFactor */ null, DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race3", /* explicitFactor */ null, DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race2", /* explicitFactor */ null, DEFAULT_FLEET, true, null, null);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testColumnSwapping() {
testColumnSwappingFabian();
testLeaderBoardDTOMethods();
testSailingService();
}
@Test
public void testSailingService() {
sailingService = new SailingServiceImplMock();
assertNotNull("Sailingservice != NULL", sailingService);
int td[] = { 5, 8 };
sailingService.createFlexibleLeaderboard(TEST_LEADERBOARD_NAME, td, ScoringSchemeType.LOW_POINT, null);
for (int i = 0; i < races.length; i++)
sailingService.addColumnToLeaderboard(races[i], TEST_LEADERBOARD_NAME, isMedalRace[i]);
sailingService.moveLeaderboardColumnDown(TEST_LEADERBOARD_NAME, races[0]);
sailingService.moveLeaderboardColumnDown(TEST_LEADERBOARD_NAME, races[0]);
sailingService.moveLeaderboardColumnUp(TEST_LEADERBOARD_NAME, races[2]);
sailingService.updateIsMedalRace(TEST_LEADERBOARD_NAME, races[0], true);
sailingService.updateIsMedalRace(TEST_LEADERBOARD_NAME, races[2], false);
try {
lb = sailingService.getLeaderboardByName(TEST_LEADERBOARD_NAME, new Date(), /* races to load */ null);
} catch (Exception e) {
// e.printStackTrace();
fail(e.getLocalizedMessage());
}
assertNotNull("LeaderboardDTO != NULL", lb);
// asserted data
String[] raceNames = new String[] { "3", "2", "1" };
boolean[] medalRace = { true, false, false };
for (int i = 0; i < lb.getRaceList().size(); i++) {
assertTrue("Race[" + i + "] == " + raceNames[i], lb.getRaceList().get(i).equals(raceNames[i]));
assertTrue("Race[" + i + "] is " + (medalRace[i] ? "" : "no ") + "medalrace.",
lb.raceIsMedalRace(races[i]) == medalRace[i]);
}
}
@Test
public void testLeaderBoardDTOMethods() {
lb = new LeaderboardDTO(null, null, /* higherScoreIsBetter */ false);
assertNotNull("Leaderboard != NULL", lb);
lb.addRace("1", /* explicitFactor */ null, DEFAULT_FLEET, false, null, null);
lb.addRace("2", /* explicitFactor */ null, DEFAULT_FLEET, false, null, null);
lb.addRace("3", /* explicitFactor */ null, DEFAULT_FLEET, true, null, null);
lb.moveRaceDown("1");
String[] s = new String[] { "2", "1", "3" };
for (int i = 0; i < lb.getRaceList().size(); i++)
assertTrue("Race[" + i + "] = " + s[i], lb.getRaceList().get(i).equals(s[i]));
}
@Test
public void testColumnSwappingFabian() {
service.moveLeaderboardColumnUp(LEADERBOARDNAME, "Race3");
try {
leaderboardDTO = service.getLeaderboardByName(LEADERBOARDNAME, leaderboardCreationDate, leglist);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// check if leaderboardDTO an dleaderboardOriginalDTO same
List<RaceColumnDTO> leaderboardList = leaderboardDTO.getRaceList();
List<RaceColumnDTO> leaderboardOriginalList = leaderboardOriginalDTO.getRaceList();
// ??????? assert races in list
assertArrayEquals(leaderboardList.toArray(), leaderboardOriginalList.toArray());
for (RaceColumnDTO raceDTO : leaderboardOriginalList) {
assert leaderboardDTO.raceIsMedalRace(raceDTO.getRaceColumnName()) == leaderboardOriginalDTO.raceIsMedalRace(raceDTO.getRaceColumnName());
assert leaderboardDTO.raceIsTracked(raceDTO.getRaceColumnName()) == leaderboardOriginalDTO.raceIsTracked(raceDTO.getRaceColumnName());
}
}
}