fixed leaderboard column swapping tests by factoring and re-using the service mocking and fixing the effective factors for the test columns

This commit is contained in:
Axel Uhl committed 2013-12-06 11:02:11 +01:00
1 parent 3f20168986
commit 5eb8ff5075
3 files changed
+201 -239

No files matched your search

@@ -1,17 +1,5 @@
package com.sap.sailing.gwt.ui.test;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.UnknownHostException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.NavigableSet;
@@ -21,14 +9,10 @@ import java.util.concurrent.ConcurrentSkipListSet;
import junit.framework.Assert;
import org.junit.Test;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.DomainFactory;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.base.impl.BoatClassImpl;
import com.sap.sailing.domain.base.impl.BoatImpl;
@@ -42,9 +26,7 @@ import com.sap.sailing.domain.common.PolarSheetGenerationSettings;
import com.sap.sailing.domain.common.PolarSheetsData;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.RegattaIdentifier;
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.WindSource;
@@ -58,21 +40,11 @@ import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.common.impl.WindSourceImpl;
import com.sap.sailing.domain.common.impl.WindSteppingWithMaxDistance;
import com.sap.sailing.domain.racelog.RaceLogStore;
import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingAdapter;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingAdapterFactory;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayService;
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayServiceFactory;
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
import com.sap.sailing.domain.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.MarkPassing;
import com.sap.sailing.domain.tracking.RacesHandle;
import com.sap.sailing.domain.tracking.TrackerManager;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindStore;
import com.sap.sailing.domain.tracking.WindWithConfidence;
import com.sap.sailing.domain.tracking.impl.DynamicGPSFixMovingTrackImpl;
import com.sap.sailing.domain.tracking.impl.GPSFixMovingImpl;
@@ -80,17 +52,9 @@ import com.sap.sailing.domain.tracking.impl.MarkPassingByTimeComparator;
import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
import com.sap.sailing.domain.tracking.impl.WindImpl;
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
import com.sap.sailing.domain.tractracadapter.RaceRecord;
import com.sap.sailing.domain.tractracadapter.TracTracAdapter;
import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory;
import com.sap.sailing.domain.tractracadapter.TracTracConfiguration;
import com.sap.sailing.gwt.ui.client.SailingService;
import com.sap.sailing.gwt.ui.server.SailingServiceImpl;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.impl.RacingEventServiceImpl;
import com.sap.sailing.server.replication.ReplicationService;
import com.sap.sailing.server.replication.impl.ReplicationInstancesManager;
import com.sap.sailing.server.replication.impl.ReplicationServiceImpl;
public class PolarSheetGenerationServiceTest {
@@ -128,189 +92,12 @@ public class PolarSheetGenerationServiceTest {
@SuppressWarnings("serial")
private class MockSailingServiceForPolarSheetGeneration extends SailingServiceImpl {
private class MockSailingServiceForPolarSheetGeneration extends SailingServiceImplMock {
@Override
protected RacingEventService getService() {
RacingEventService service = new MockRacingEventServiceForPolarSheetGeneration();
return service;
}
@Override
protected ServiceTracker<RacingEventService, RacingEventService> createAndOpenRacingEventServiceTracker(
BundleContext context) {
@SuppressWarnings("unchecked")
ServiceTracker<RacingEventService, RacingEventService> result = mock(ServiceTracker.class);
when(result.getService()).thenReturn(new RacingEventServiceImpl());
return result;
}
@Override
protected ServiceTracker<ReplicationService, ReplicationService> createAndOpenReplicationServiceTracker(
BundleContext context) {
@SuppressWarnings("unchecked")
ServiceTracker<ReplicationService, ReplicationService> result = mock(ServiceTracker.class);
try {
final ReplicationServiceImpl replicationService = new ReplicationServiceImpl("test exchange", "localhost", new ReplicationInstancesManager()) {
@Override
protected ServiceTracker<RacingEventService, RacingEventService> getRacingEventServiceTracker() {
@SuppressWarnings("unchecked")
ServiceTracker<RacingEventService, RacingEventService> result = (ServiceTracker<RacingEventService, RacingEventService>) mock(ServiceTracker.class);
doReturn("Humba Humba").when(result).toString();
when(result.getService()).thenReturn(new RacingEventServiceImpl());
return result;
}
};
when(result.getService()).thenReturn(replicationService);
} catch (IOException e) {
throw new RuntimeException();
}
return result;
}
@Override
protected ServiceTracker<ScoreCorrectionProvider, ScoreCorrectionProvider> createAndOpenScoreCorrectionProviderServiceTracker(
BundleContext bundleContext) {
return null;
}
@Override
protected ServiceTracker<TracTracAdapterFactory, TracTracAdapterFactory> createAndOpenTracTracAdapterTracker(
BundleContext context) {
@SuppressWarnings("unchecked")
ServiceTracker<TracTracAdapterFactory, TracTracAdapterFactory> result = mock(ServiceTracker.class);
when(result.getService()).thenReturn(new TracTracAdapterFactory() {
@Override
public TracTracAdapter getOrCreateTracTracAdapter(DomainFactory baseDomainFactory) {
return new TracTracAdapter() {
@Override
public Pair<String, List<RaceRecord>> getTracTracRaceRecords(URL jsonURL, boolean loadClientParams)
throws IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException {
// TODO Auto-generated method stub
return null;
}
@Override
public com.sap.sailing.domain.tractracadapter.DomainFactory getTracTracDomainFactory() {
// TODO Auto-generated method stub
return null;
}
@Override
public RaceRecord getSingleTracTracRaceRecord(URL jsonURL, String raceId, boolean loadClientParams)
throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public TracTracConfiguration createTracTracConfiguration(String name, String jsonURL, String liveDataURI,
String storedDataURI, String courseDesignUpdateURI, String tracTracUsername, String tracTracPassword) {
// TODO Auto-generated method stub
return null;
}
@Override
public RacesHandle addTracTracRace(TrackerManager trackerManager, RegattaIdentifier regattaToAddTo, URL paramURL,
URI liveURI, URI storedURI, URI courseDesignUpdateURI, TimePoint trackingStartTime,
TimePoint trackingEndTime, RaceLogStore raceLogStore, long timeoutForReceivingRaceDefinitionInMilliseconds,
boolean simulateWithStartTimeNow, String tracTracUsername, String tracTracPassword)
throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public RacesHandle addTracTracRace(TrackerManager trackerManager, URL paramURL, URI liveURI, URI storedURI,
URI courseDesignUpdateURI, RaceLogStore raceLogStore, long timeoutInMilliseconds, String tracTracUsername,
String tracTracPassword) throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public Regatta addRegatta(TrackerManager trackerManager, URL jsonURL, URI liveURI, URI storedURI,
URI courseDesignUpdateURI, WindStore windStore, long timeoutInMilliseconds, String tracTracUsername,
String tracTracPassword, RaceLogStore raceLogStore) throws MalformedURLException, FileNotFoundException,
URISyntaxException, IOException, ParseException, org.json.simple.parser.ParseException, Exception {
// TODO Auto-generated method stub
return null;
}
};
}
});
return result;
}
@Override
protected ServiceTracker<SwissTimingAdapterFactory, SwissTimingAdapterFactory> createAndOpenSwissTimingAdapterTracker(
BundleContext context) {
@SuppressWarnings("unchecked")
ServiceTracker<SwissTimingAdapterFactory, SwissTimingAdapterFactory> result = mock(ServiceTracker.class);
when(result.getService()).thenReturn(new SwissTimingAdapterFactory() {
@Override
public SwissTimingAdapter getOrCreateSwissTimingAdapter(DomainFactory baseDomainFactory,
RaceSpecificMessageLoader persistence) {
return new SwissTimingAdapter() {
@Override
public List<com.sap.sailing.domain.swisstimingadapter.RaceRecord> getSwissTimingRaceRecords(
String hostname, int port, boolean canSendRequests) throws InterruptedException,
UnknownHostException, IOException, ParseException {
// TODO Auto-generated method stub
return null;
}
@Override
public RacesHandle addSwissTimingRace(TrackerManager trackerManager,
RegattaIdentifier regattaToAddTo, String raceID, String hostname, int port,
boolean canSendRequests, RaceLogStore logStore, long timeoutInMilliseconds)
throws InterruptedException, UnknownHostException, IOException, ParseException,
Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public SwissTimingFactory getSwissTimingFactory() {
// TODO Auto-generated method stub
return null;
}
@Override
public void storeSwissTimingDummyRace(String racMessage, String stlMesssage, String ccgMessage)
throws IllegalArgumentException {
// TODO Auto-generated method stub
}
@Override
public com.sap.sailing.domain.swisstimingadapter.DomainFactory getSwissTimingDomainFactory() {
return com.sap.sailing.domain.swisstimingadapter.DomainFactory.INSTANCE;
}
};
}
});
return result;
}
@Override
protected ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory> createAndOpenSwissTimingReplayServiceTracker(
BundleContext context) {
@SuppressWarnings("unchecked")
ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory> result = mock(ServiceTracker.class);
final SwissTimingReplayServiceFactory swissTimingReplayService = new SwissTimingReplayServiceFactory() {
@Override
public SwissTimingReplayService createSwissTimingReplayService(
com.sap.sailing.domain.swisstimingadapter.DomainFactory domainFactory) {
// TODO Auto-generated method stub
return null;
}
};
when(result.getService()).thenReturn(swissTimingReplayService);
return result;
}
}
private class MockRacingEventServiceForPolarSheetGeneration extends RacingEventServiceImpl {
@@ -1,16 +1,48 @@
package com.sap.sailing.gwt.ui.test;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.UnknownHostException;
import java.text.ParseException;
import java.util.List;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
import com.sap.sailing.domain.base.DomainFactory;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.common.RegattaIdentifier;
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.racelog.RaceLogStore;
import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingAdapter;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingAdapterFactory;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayService;
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayServiceFactory;
import com.sap.sailing.domain.tracking.RacesHandle;
import com.sap.sailing.domain.tracking.TrackerManager;
import com.sap.sailing.domain.tracking.WindStore;
import com.sap.sailing.domain.tractracadapter.RaceRecord;
import com.sap.sailing.domain.tractracadapter.TracTracAdapter;
import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory;
import com.sap.sailing.domain.tractracadapter.TracTracConfiguration;
import com.sap.sailing.gwt.ui.server.SailingServiceImpl;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.impl.RacingEventServiceImpl;
import com.sap.sailing.server.replication.ReplicationService;
import com.sap.sailing.server.replication.impl.ReplicationInstancesManager;
import com.sap.sailing.server.replication.impl.ReplicationServiceImpl;
public class SailingServiceImplMock extends SailingServiceImpl {
private static final long serialVersionUID = 8564037671550730455L;
@@ -24,27 +56,35 @@ public class SailingServiceImplMock extends SailingServiceImpl {
@Override
protected ServiceTracker<RacingEventService, RacingEventService> createAndOpenRacingEventServiceTracker(
BundleContext context) {
return null;
@SuppressWarnings("unchecked")
ServiceTracker<RacingEventService, RacingEventService> result = mock(ServiceTracker.class);
when(result.getService()).thenReturn(new RacingEventServiceImpl());
return result;
}
@Override
protected ServiceTracker<TracTracAdapterFactory, TracTracAdapterFactory> createAndOpenTracTracAdapterTracker(
protected ServiceTracker<ReplicationService, ReplicationService> createAndOpenReplicationServiceTracker(
BundleContext context) {
return null;
@SuppressWarnings("unchecked")
ServiceTracker<ReplicationService, ReplicationService> result = mock(ServiceTracker.class);
try {
final ReplicationServiceImpl replicationService = new ReplicationServiceImpl("test exchange", "localhost", new ReplicationInstancesManager()) {
@Override
protected ServiceTracker<RacingEventService, RacingEventService> getRacingEventServiceTracker() {
@SuppressWarnings("unchecked")
ServiceTracker<RacingEventService, RacingEventService> result = (ServiceTracker<RacingEventService, RacingEventService>) mock(ServiceTracker.class);
doReturn("Humba Humba").when(result).toString();
when(result.getService()).thenReturn(new RacingEventServiceImpl());
return result;
}
};
when(result.getService()).thenReturn(replicationService);
} catch (IOException e) {
throw new RuntimeException();
}
return result;
}
@Override
protected ServiceTracker<SwissTimingAdapterFactory, SwissTimingAdapterFactory> createAndOpenSwissTimingAdapterTracker(
BundleContext context) {
return null;
}
@Override
protected ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory> createAndOpenSwissTimingReplayServiceTracker(
BundleContext context) {
return null;
}
@Override
protected ServiceTracker<ScoreCorrectionProvider, ScoreCorrectionProvider> createAndOpenScoreCorrectionProviderServiceTracker(
BundleContext bundleContext) {
@@ -52,9 +92,140 @@ public class SailingServiceImplMock extends SailingServiceImpl {
}
@Override
protected ServiceTracker<ReplicationService, ReplicationService> createAndOpenReplicationServiceTracker(
protected ServiceTracker<TracTracAdapterFactory, TracTracAdapterFactory> createAndOpenTracTracAdapterTracker(
BundleContext context) {
return null;
@SuppressWarnings("unchecked")
ServiceTracker<TracTracAdapterFactory, TracTracAdapterFactory> result = mock(ServiceTracker.class);
when(result.getService()).thenReturn(new TracTracAdapterFactory() {
@Override
public TracTracAdapter getOrCreateTracTracAdapter(DomainFactory baseDomainFactory) {
return new TracTracAdapter() {
@Override
public Pair<String, List<RaceRecord>> getTracTracRaceRecords(URL jsonURL, boolean loadClientParams)
throws IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException {
// TODO Auto-generated method stub
return null;
}
@Override
public com.sap.sailing.domain.tractracadapter.DomainFactory getTracTracDomainFactory() {
// TODO Auto-generated method stub
return null;
}
@Override
public RaceRecord getSingleTracTracRaceRecord(URL jsonURL, String raceId, boolean loadClientParams)
throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public TracTracConfiguration createTracTracConfiguration(String name, String jsonURL, String liveDataURI,
String storedDataURI, String courseDesignUpdateURI, String tracTracUsername, String tracTracPassword) {
// TODO Auto-generated method stub
return null;
}
@Override
public RacesHandle addTracTracRace(TrackerManager trackerManager, RegattaIdentifier regattaToAddTo, URL paramURL,
URI liveURI, URI storedURI, URI courseDesignUpdateURI, TimePoint trackingStartTime,
TimePoint trackingEndTime, RaceLogStore raceLogStore, long timeoutForReceivingRaceDefinitionInMilliseconds,
boolean simulateWithStartTimeNow, String tracTracUsername, String tracTracPassword)
throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public RacesHandle addTracTracRace(TrackerManager trackerManager, URL paramURL, URI liveURI, URI storedURI,
URI courseDesignUpdateURI, RaceLogStore raceLogStore, long timeoutInMilliseconds, String tracTracUsername,
String tracTracPassword) throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public Regatta addRegatta(TrackerManager trackerManager, URL jsonURL, URI liveURI, URI storedURI,
URI courseDesignUpdateURI, WindStore windStore, long timeoutInMilliseconds, String tracTracUsername,
String tracTracPassword, RaceLogStore raceLogStore) throws MalformedURLException, FileNotFoundException,
URISyntaxException, IOException, ParseException, org.json.simple.parser.ParseException, Exception {
// TODO Auto-generated method stub
return null;
}
};
}
});
return result;
}
@Override
protected ServiceTracker<SwissTimingAdapterFactory, SwissTimingAdapterFactory> createAndOpenSwissTimingAdapterTracker(
BundleContext context) {
@SuppressWarnings("unchecked")
ServiceTracker<SwissTimingAdapterFactory, SwissTimingAdapterFactory> result = mock(ServiceTracker.class);
when(result.getService()).thenReturn(new SwissTimingAdapterFactory() {
@Override
public SwissTimingAdapter getOrCreateSwissTimingAdapter(DomainFactory baseDomainFactory,
RaceSpecificMessageLoader persistence) {
return new SwissTimingAdapter() {
@Override
public List<com.sap.sailing.domain.swisstimingadapter.RaceRecord> getSwissTimingRaceRecords(
String hostname, int port, boolean canSendRequests) throws InterruptedException,
UnknownHostException, IOException, ParseException {
// TODO Auto-generated method stub
return null;
}
@Override
public RacesHandle addSwissTimingRace(TrackerManager trackerManager,
RegattaIdentifier regattaToAddTo, String raceID, String hostname, int port,
boolean canSendRequests, RaceLogStore logStore, long timeoutInMilliseconds)
throws InterruptedException, UnknownHostException, IOException, ParseException,
Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public SwissTimingFactory getSwissTimingFactory() {
// TODO Auto-generated method stub
return null;
}
@Override
public void storeSwissTimingDummyRace(String racMessage, String stlMesssage, String ccgMessage)
throws IllegalArgumentException {
// TODO Auto-generated method stub
}
@Override
public com.sap.sailing.domain.swisstimingadapter.DomainFactory getSwissTimingDomainFactory() {
return com.sap.sailing.domain.swisstimingadapter.DomainFactory.INSTANCE;
}
};
}
});
return result;
}
@Override
protected ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory> createAndOpenSwissTimingReplayServiceTracker(
BundleContext context) {
@SuppressWarnings("unchecked")
ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory> result = mock(ServiceTracker.class);
final SwissTimingReplayServiceFactory swissTimingReplayService = new SwissTimingReplayServiceFactory() {
@Override
public SwissTimingReplayService createSwissTimingReplayService(
com.sap.sailing.domain.swisstimingadapter.DomainFactory domainFactory) {
// TODO Auto-generated method stub
return null;
}
};
when(result.getService()).thenReturn(swissTimingReplayService);
return result;
}
@Override
@@ -1,6 +1,7 @@
package com.sap.sailing.gwt.ui.test;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -42,6 +43,7 @@ public class TestColumnSwapping {
public void prepareColumnSwapping() {
service = new SailingServiceImplMock();
int[] disc = { 5, 8, 9, 0, 7, 5, 43 };
service.removeLeaderboard(LEADERBOARDNAME);
service.createFlexibleLeaderboard(LEADERBOARDNAME, null, disc, ScoringSchemeType.LOW_POINT, null);
service.addColumnToLeaderboard("Race1", LEADERBOARDNAME, true);
service.addColumnToLeaderboard("Race2", LEADERBOARDNAME, true);
@@ -59,9 +61,9 @@ public class TestColumnSwapping {
return UUID.randomUUID().toString();
}
});
leaderboardOriginalDTO.addRace("Race1", /* explicitFactor */ null, 1., DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race3", /* explicitFactor */ null, 1., DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race2", /* explicitFactor */ null, 1., DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race1", /* explicitFactor */ null, 2., DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race3", /* explicitFactor */ null, 2., DEFAULT_FLEET, true, null, null);
leaderboardOriginalDTO.addRace("Race2", /* explicitFactor */ null, 2., DEFAULT_FLEET, true, null, null);
} catch (Exception e) {
e.printStackTrace();
}
@@ -79,6 +81,7 @@ public class TestColumnSwapping {
sailingService = new SailingServiceImplMock();
assertNotNull("Sailingservice != NULL", sailingService);
int td[] = { 5, 8 };
sailingService.removeLeaderboard(TEST_LEADERBOARD_NAME);
sailingService.createFlexibleLeaderboard(TEST_LEADERBOARD_NAME, null, td, ScoringSchemeType.LOW_POINT, null);
for (int i = 0; i < races.length; i++)
sailingService.addColumnToLeaderboard(races[i], TEST_LEADERBOARD_NAME, isMedalRace[i]);
@@ -107,7 +110,7 @@ public class TestColumnSwapping {
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]));
assertEquals("Race[" + i + "] == " + raceNames[i], raceNames[i], lb.getRaceList().get(i).getName());
assertTrue("Race[" + i + "] is " + (medalRace[i] ? "" : "no ") + "medalrace.",
lb.raceIsMedalRace(races[i]) == medalRace[i]);
}
@@ -127,8 +130,9 @@ public class TestColumnSwapping {
lb.addRace("3", /* explicitFactor */ null, 1., 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]));
for (int i = 0; i < lb.getRaceList().size(); i++) {
assertEquals("Race[" + i + "] = " + s[i], s[i], lb.getRaceList().get(i).getName());
}
}
@Test