all non-UI packages compile

This commit is contained in:
Axel Uhl committed 2012-05-15 17:59:29 +02:00
1 parent 545769590f
commit 029d0a05b0
6 files changed
+55 -35

No files matched your search

@@ -20,6 +20,7 @@ import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.SpeedWithBearing;
import com.sap.sailing.domain.base.impl.FleetImpl;
import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.MaxPointsReason;
@@ -157,10 +158,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
discardIndexResultsStartingWithHowManyRaces[i++] = (Integer) discardingThresholdAsObject;
}
ThresholdBasedResultDiscardingRule resultDiscardingRule = new ResultDiscardingRuleImpl(discardIndexResultsStartingWithHowManyRaces);
// TODO should this be a FlexibleLeaderboard or a RegattaLeaderboard?
// TODO should this be a FlexibleLeaderboard or a RegattaLeaderboard? See bug 636
LeaderboardImplWithDelayedCarriedPoints result = new LeaderboardImplWithDelayedCarriedPoints(
(String) o.get(FieldNames.LEADERBOARD_NAME.name()), scoreCorrection, resultDiscardingRule);
BasicDBList dbRaceColumns = (BasicDBList) o.get(FieldNames.LEADERBOARD_COLUMNS.name());
// For a FlexibleLeaderboard, fleets are owned by the leaderboard's RaceColumn objects. We need to manage them here:
Map<String, Fleet> fleetsByName = new HashMap<String, Fleet>();
for (Object dbRaceColumnAsObject : dbRaceColumns) {
BasicDBObject dbRaceColumn = (BasicDBObject) dbRaceColumnAsObject;
Map<String, RaceIdentifier> raceIdentifiers = loadRaceIdentifiers(dbRaceColumn);
@@ -176,12 +179,19 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
}
}
List<Fleet> fleets = new ArrayList<Fleet>();
for (String fleetName : )
for (Map.Entry<String, RaceIdentifier> e : raceIdentifiers.entrySet()) {
for (String fleetName : raceIdentifiers.keySet()) {
Fleet fleet = fleetsByName.get(fleetName);
if (fleet == null) {
fleet = new FleetImpl(fleetName);
fleetsByName.put(fleetName, fleet);
}
fleets.add(fleet);
}
RaceColumn raceColumn = result.addRaceColumn((String) dbRaceColumn.get(FieldNames.LEADERBOARD_COLUMN_NAME.name()),
(Boolean) dbRaceColumn.get(FieldNames.LEADERBOARD_IS_MEDAL_RACE_COLUMN.name()));
(Boolean) dbRaceColumn.get(FieldNames.LEADERBOARD_IS_MEDAL_RACE_COLUMN.name()), fleets.toArray(new Fleet[0]));
for (Map.Entry<String, RaceIdentifier> e : raceIdentifiers.entrySet()) {
raceColumn.setRaceIdentifier(fleetsByName.get(e.getKey()), e.getValue());
}
}
DBObject carriedPoints = (DBObject) o.get(FieldNames.LEADERBOARD_CARRIED_POINTS.name());
if (carriedPoints != null) {
@@ -10,6 +10,7 @@ import java.util.GregorianCalendar;
import org.junit.Test;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.NoWindException;
@@ -35,23 +36,24 @@ public class LeaderboardForKielWeekTest extends OnlineTracTracBasedTest {
@Test
public void leaderboardWithOneRaceTest() throws URISyntaxException, NoWindException, IOException, InterruptedException {
leaderboard = new FlexibleLeaderboardImpl("Kiel Week 2011 505s", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(new int[] { 3, 6 }));
Fleet defaultFleet = leaderboard.getFleet(null);
MillisecondsTimePoint now = MillisecondsTimePoint.now();
loadRace("357c700a-9d9a-11e0-85be-406186cbf87c"); // 505 Race 2
Competitor hasso = getCompetitorByName("Dr.Plattner");
RaceColumn column = leaderboard.addRace(getTrackedRace(), "Test Race 1", /* medalRace */ false);
RaceColumn column = leaderboard.addRace(getTrackedRace(), "Test Race 1", /* medalRace */ false, defaultFleet);
assertEquals(21, leaderboard.getTotalPoints(hasso, now));
Pair<Competitor, RaceColumn> key = new Pair<Competitor, RaceColumn>(hasso, column);
assertEquals(21, leaderboard.getContent(now).get(key).getTotalPoints());
assertEquals(21, leaderboard.getEntry(hasso, column, now).getTotalPoints());
loadRace("e876c3a0-9da8-11e0-85be-406186cbf87c"); // 505 Race 3
column = leaderboard.addRace(getTrackedRace(), "Test Race 2", /* medalRace */ false);
column = leaderboard.addRace(getTrackedRace(), "Test Race 2", /* medalRace */ false, defaultFleet);
key = new Pair<Competitor, RaceColumn>(hasso, column);
// In Race 3, Hasso ranked 31st
assertEquals(52, leaderboard.getTotalPoints(hasso, now));
assertEquals(31, leaderboard.getContent(now).get(key).getTotalPoints());
assertEquals(31, leaderboard.getEntry(hasso, column, now).getTotalPoints());
loadRace("7c666e50-9dde-11e0-85be-406186cbf87c"); // 505 Race 4
column = leaderboard.addRace(getTrackedRace(), "Test Race 3", /* medalRace */ false);
column = leaderboard.addRace(getTrackedRace(), "Test Race 3", /* medalRace */ false, defaultFleet);
key = new Pair<Competitor, RaceColumn>(hasso, column);
// now the second race is discarded because Hasso ranked worst compared to the other two; in race 4 he ranked 11th
assertEquals(32, leaderboard.getTotalPoints(hasso, now));
@@ -15,6 +15,7 @@ import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.impl.BoatClassImpl;
import com.sap.sailing.domain.base.impl.BoatImpl;
import com.sap.sailing.domain.base.impl.CompetitorImpl;
@@ -27,7 +28,7 @@ import com.sap.sailing.domain.common.NoWindException;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
import com.sap.sailing.domain.leaderboard.RaceColumn;
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
import com.sap.sailing.domain.leaderboard.impl.ResultDiscardingRuleImpl;
@@ -98,12 +99,13 @@ public class LeaderboardOfflineTest {
@Test
public void ensureMedalRaceParamIsIgnoredIfRaceColumnAlreadyExists() {
Leaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(
FlexibleLeaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(
new int[] { 5, 8 }));
Fleet defaultFleet = leaderboard.getFleet(null);
final String columnName = "abc";
setupRaces(1, 0);
leaderboard.addRaceColumn(columnName, /* medalRace */ true);
leaderboard.addRace(testRaces.iterator().next(), columnName, /* medalRace */ false);
leaderboard.addRace(testRaces.iterator().next(), columnName, /* medalRace */ false, defaultFleet);
assertTrue(leaderboard.getRaceColumnByName(columnName).isMedalRace());
}
@@ -120,14 +122,15 @@ public class LeaderboardOfflineTest {
testRaces.add(r); // hash set should take care of more or less randomly permuting the races
}
ScoreCorrectionImpl scoreCorrection = new ScoreCorrectionImpl();
Leaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", scoreCorrection, new ResultDiscardingRuleImpl(
FlexibleLeaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", scoreCorrection, new ResultDiscardingRuleImpl(
new int[] { 1 }));
Fleet defaultFleet = leaderboard.getFleet(null);
int i=0;
int bestScore = Integer.MAX_VALUE;
RaceColumn bestScoringRaceColumn = null;
for (TrackedRace race : testRaces) {
i++;
RaceColumn raceColumn = leaderboard.addRace(race, "Test Race " + i, /* medalRace */ false);
RaceColumn raceColumn = leaderboard.addRace(race, "Test Race " + i, /* medalRace */ false, defaultFleet);
raceColumnsInLeaderboard.put(race, raceColumn);
if (race.getRank(competitor) < bestScore) {
bestScore = race.getRank(competitor);
@@ -136,7 +139,7 @@ public class LeaderboardOfflineTest {
}
scoreCorrection.setMaxPointsReason(competitor, bestScoringRaceColumn, MaxPointsReason.DSQ);
// assert that best scoring but now disqualified race gets max net points because of disqualification:
assertEquals(Util.size(bestScoringRaceColumn.getTrackedRace(fleet).getRace().getCompetitors())+1,
assertEquals(Util.size(bestScoringRaceColumn.getTrackedRace(defaultFleet).getRace().getCompetitors())+1,
leaderboard.getEntry(competitor, bestScoringRaceColumn, MillisecondsTimePoint.now()).getNetPoints());
// now assert that it gets discarded because due to disqualification it scores worse than all others:
assertEquals(0, leaderboard.getEntry(competitor, bestScoringRaceColumn, MillisecondsTimePoint.now()).getTotalPoints());
@@ -145,13 +148,14 @@ public class LeaderboardOfflineTest {
protected void testLeaderboard(int numberOfStartedRaces, int numberOfNotStartedRaces, int firstDiscardingThreshold,
int secondDiscardingThreshold, Integer carry, boolean addOneMedalRace, int numberOfUntrackedRaces) throws NoWindException {
setupRaces(numberOfStartedRaces, numberOfNotStartedRaces);
Leaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(
FlexibleLeaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(
new int[] { firstDiscardingThreshold, secondDiscardingThreshold }));
Fleet defaultFleet = leaderboard.getFleet(null);
int i=0;
for (TrackedRace race : testRaces) {
i++;
raceColumnsInLeaderboard.put(race, leaderboard.addRace(race, "Test Race "+i,
/* medalRace */ numberOfUntrackedRaces == 0 && addOneMedalRace && i == testRaces.size()));
/* medalRace */ numberOfUntrackedRaces == 0 && addOneMedalRace && i == testRaces.size(), defaultFleet));
}
// add a few race columns not yet connected to a tracked race
for (int j=0; j<numberOfUntrackedRaces; j++) {
@@ -164,14 +168,14 @@ public class LeaderboardOfflineTest {
List<Integer> ranksOfNonMedalStartedRaces = new ArrayList<Integer>();
TimePoint now = MillisecondsTimePoint.now();
for (RaceColumn column : raceColumnsInLeaderboard.values()) {
if (!column.isMedalRace() && column.getTrackedRace(fleet) != null && column.getTrackedRace(fleet).hasStarted(now)) {
ranksOfNonMedalStartedRaces.add(column.getTrackedRace(fleet).getRank(competitor, now));
if (!column.isMedalRace() && column.getTrackedRace(defaultFleet) != null && column.getTrackedRace(defaultFleet).hasStarted(now)) {
ranksOfNonMedalStartedRaces.add(column.getTrackedRace(defaultFleet).getRank(competitor, now));
}
}
Collections.sort(ranksOfNonMedalStartedRaces);
int carryInt = (carry == null ? 0 : carry);
int totalPoints = carryInt;
int medalRacePoints = getMedalRacePoints(competitor, now);
int medalRacePoints = getMedalRacePoints(competitor, now, defaultFleet);
int numberOfRacesFromWhichToDiscard = ranksOfNonMedalStartedRaces.size();
for (TrackedRace race : testRaces) {
RaceColumn raceColumn = raceColumnsInLeaderboard.get(race);
@@ -207,7 +211,7 @@ public class LeaderboardOfflineTest {
assertEquals(totalPoints, leaderboard.getTotalPoints(competitor, now));
}
private int getMedalRacePoints(Competitor competitor, TimePoint at) throws NoWindException {
private int getMedalRacePoints(Competitor competitor, TimePoint at, Fleet fleet) throws NoWindException {
for (TrackedRace r : testRaces) {
if (raceColumnsInLeaderboard.get(r) != null && raceColumnsInLeaderboard.get(r).isMedalRace() &&
raceColumnsInLeaderboard.get(r).getTrackedRace(fleet).hasStarted(at)) {
@@ -27,6 +27,7 @@ public class GwtTestCaseColumnToggling extends GWTTestCase {
//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"));
@@ -131,15 +132,15 @@ public class GwtTestCaseColumnToggling extends GWTTestCase {
RaceInLeaderboardDTO race = new RaceInLeaderboardDTO();
race.setRaceColumnName(COLUMN1_NAME);
race.setMedalRace(false);
race.setRaceIdentifier(fleetName, null);
leaderboardPanel.addColumn(leaderboardPanel.createRaceColumn(race));
linkTrackedRace();
}
});
}
private void linkTrackedRace(){
service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, new RegattaNameAndRaceName(EVENT_NAME, TRACKED_RACE),
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) {
@@ -21,6 +21,7 @@ public class TestColumnSwapping {
private LeaderboardDTO lb = null;
private static final String LEADERBOARDNAME = "test";
private static final String DEFAULT_FLEET_NAME = "Default";
private SailingServiceImpl service;
private LeaderboardDTO leaderboardOriginalDTO;
private LeaderboardDTO leaderboardDTO;
@@ -49,9 +50,9 @@ public class TestColumnSwapping {
try {
// get Leaderboard with name and current date
leaderboardOriginalDTO = new LeaderboardDTO();
leaderboardOriginalDTO.addRace("Race1", fleetName, true, null, null);
leaderboardOriginalDTO.addRace("Race3", fleetName, true, null, null);
leaderboardOriginalDTO.addRace("Race2", fleetName, true, null, null);
leaderboardOriginalDTO.addRace("Race1", DEFAULT_FLEET_NAME, true, null, null);
leaderboardOriginalDTO.addRace("Race3", DEFAULT_FLEET_NAME, true, null, null);
leaderboardOriginalDTO.addRace("Race2", DEFAULT_FLEET_NAME, true, null, null);
} catch (Exception e) {
e.printStackTrace();
}
@@ -100,9 +101,9 @@ public class TestColumnSwapping {
public void testLeaderBoardDTOMethods() {
lb = new LeaderboardDTO();
assertNotNull("Leaderboard != NULL", lb);
lb.addRace("1", fleetName, false, null, null);
lb.addRace("2", fleetName, false, null, null);
lb.addRace("3", fleetName, true, null, null);
lb.addRace("1", DEFAULT_FLEET_NAME, false, null, null);
lb.addRace("2", DEFAULT_FLEET_NAME, false, null, null);
lb.addRace("3", DEFAULT_FLEET_NAME, true, null, null);
lb.moveRaceDown("1");
String[] s = new String[] { "2", "1", "3" };
for (int i = 0; i < lb.getRaceList().size(); i++)
@@ -17,6 +17,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.DefaultLeaderboardName;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
@@ -106,19 +107,20 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest {
Leaderboard replicaDefaultLeaderboard = replica.getLeaderboardByName(DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME);
RaceColumn column = replicaDefaultLeaderboard.getRaceColumnByName(replicaTrackedRace.getRace().getName());
assertNotNull(column);
assertSame(replicaTrackedRace, column.getTrackedRace(fleet));
assertSame(replicaTrackedRace, column.getTrackedRace(replicaDefaultLeaderboard.getFleet(null)));
}
@Test
public void testReassignmentToLeaderboardReplication() throws Exception {
final String leaderboardName = "Test Leaderboard";
master.apply(new CreateLeaderboard(leaderboardName, new int[0]));
Leaderboard masterLeaderboard = master.apply(new CreateLeaderboard(leaderboardName, new int[0]));
final String columnName = "R1";
RaceColumn masterColumn = master.apply(new AddColumnToLeaderboard(columnName, leaderboardName, /* medalRace */ false));
master.apply(new ConnectTrackedRaceToLeaderboardColumn(leaderboardName, columnName, fleet.getName(), new RegattaNameAndRaceName(
"Academy Tracking 2011 (STG)", "weym470may122011")));
final Fleet defaultFleet = masterLeaderboard.getFleet(null);
master.apply(new ConnectTrackedRaceToLeaderboardColumn(leaderboardName, columnName, defaultFleet.getName(),
new RegattaNameAndRaceName("Academy Tracking 2011 (STG)", "weym470may122011")));
startTracking();
assertNotNull(masterColumn.getTrackedRace(fleet)); // ensure the re-assignment worked on the master
assertNotNull(masterColumn.getTrackedRace(defaultFleet)); // ensure the re-assignment worked on the master
Thread.sleep(1000);
TrackedRace replicaTrackedRace = replica.getTrackedRace(raceIdentifier);
assertNotNull(replicaTrackedRace);
@@ -129,7 +131,7 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest {
assertNotNull(replicaLeaderboard);
RaceColumn column = replicaLeaderboard.getRaceColumnByName(columnName);
assertNotNull(column);
assertSame(replicaTrackedRace, column.getTrackedRace(fleet));
assertSame(replicaTrackedRace, column.getTrackedRace(defaultFleet));
}
@Test