Initial test implementation for simulator overlay in RaceBoard

This commit is contained in:
Steffen Schaefer committed 2017-03-28 15:12:21 +02:00
1 parent 64a86e8e1e
commit e2317cd181
1 file changed
+114
@@ -0,0 +1,114 @@
package com.sap.sailing.selenium.test.raceboard;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.xml.bind.DatatypeConverter;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.selenium.pages.adminconsole.AdminConsolePage;
import com.sap.sailing.selenium.pages.adminconsole.event.EventConfigurationPanelPO;
import com.sap.sailing.selenium.pages.adminconsole.leaderboard.LeaderboardConfigurationPanelPO;
import com.sap.sailing.selenium.pages.adminconsole.leaderboard.LeaderboardDetailsPanelPO;
import com.sap.sailing.selenium.pages.adminconsole.leaderboard.LeaderboardDetailsPanelPO.RaceDescriptor;
import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaDetailsCompositePO;
import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaEditDialogPO;
import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaListCompositePO.RegattaDescriptor;
import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaStructureManagementPanelPO;
import com.sap.sailing.selenium.pages.adminconsole.regatta.SeriesEditDialogPO;
import com.sap.sailing.selenium.pages.adminconsole.tracking.TrackedRacesListPO;
import com.sap.sailing.selenium.pages.adminconsole.tracking.TrackedRacesListPO.Status;
import com.sap.sailing.selenium.pages.adminconsole.tracking.TrackedRacesListPO.TrackedRaceDescriptor;
import com.sap.sailing.selenium.pages.adminconsole.tractrac.TracTracEventManagementPanelPO;
import com.sap.sailing.selenium.pages.raceboard.MapSettingsPO;
import com.sap.sailing.selenium.pages.raceboard.RaceBoardPage;
import com.sap.sailing.selenium.test.AbstractSeleniumTest;
public class SimulatorOverlayTest extends AbstractSeleniumTest {
private static final String JSON_URL = "http://event.tractrac.com/events/event_20150616_KielerWoch/jsonservice.php"; //$NON-NLS-1$
private static final String EVENT = "Kieler Woche 2015"; //$NON-NLS-1$
private static final String BOAT_CLASS_49ER = "49er"; //$NON-NLS-1$
private static final String REGATTA_49ER = "KW 2015 Olympic - 49er"; //$NON-NLS-1$
private static final String REGATTA_49ER_WITH_SUFFIX = REGATTA_49ER + " ("+BOAT_CLASS_49ER+")"; //$NON-NLS-1$
private static final String RACE_N_49ER = "R%d (49er)"; //$NON-NLS-1$
private static final String MEDAL_RACE_49ER = "R12-M Medal (49er)"; //$NON-NLS-1$
private static final String EVENT_DESC = "Kieler Woche 2015"; //$NON-NLS-1$
private static final String VENUE = "Kieler Förde"; //$NON-NLS-1$
private static final Date EVENT_START_TIME = DatatypeConverter.parseDateTime("2015-06-20T08:00:00-00:00")
.getTime();
private static final Date EVENT_END_TIME = DatatypeConverter.parseDateTime("2015-06-28T20:00:00-00:00")
.getTime();
private static final String DEFAULT_FLEET = "Default";
private static final String SERIES_DEFAULT = "Default";
private static final String SERIES_QUALIFICATION = "Qualification";
private static final String SERIES_MEDALS = "Medals";
@Override
@Before
public void setUp() {
clearState(getContextRoot());
super.setUp();
}
@Test
public void testSimulatorOverlayIsAvailableFor49erAtKW2015() throws InterruptedException, UnsupportedEncodingException {
final RegattaDescriptor regattaDescriptor = new RegattaDescriptor(REGATTA_49ER, BOAT_CLASS_49ER);
final AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot());
final EventConfigurationPanelPO events = adminConsole.goToEvents();
events.createEventWithDefaultLeaderboardGroupRegattaAndDefaultLeaderboard(EVENT, EVENT_DESC,
VENUE, EVENT_START_TIME, EVENT_END_TIME, true, REGATTA_49ER_WITH_SUFFIX, BOAT_CLASS_49ER,
EVENT_START_TIME, EVENT_END_TIME);
final RegattaStructureManagementPanelPO regattaStructurePanel = adminConsole.goToRegattaStructure();
final RegattaDetailsCompositePO regattaDetails = regattaStructurePanel.getRegattaDetails(regattaDescriptor);
regattaDetails.deleteSeries(SERIES_DEFAULT);
RegattaEditDialogPO editRegatta = regattaStructurePanel.getRegattaList().editRegatta(regattaDescriptor);
editRegatta.addSeries(SERIES_QUALIFICATION);
editRegatta.addSeries(SERIES_MEDALS);
editRegatta.pressOk();
SeriesEditDialogPO editSeriesQualification = regattaDetails.editSeries(SERIES_QUALIFICATION);
editSeriesQualification.addRaces(1, 11, "Q");
editSeriesQualification.pressOk();
SeriesEditDialogPO editSeriesMedals = regattaDetails.editSeries(SERIES_MEDALS);
editSeriesMedals.setMedalSeries(true);
editSeriesMedals.addSingleRace("M");
editSeriesMedals.pressOk();
final TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
tracTracEvents.listTrackableRaces(JSON_URL);
tracTracEvents.setReggataForTracking(regattaDescriptor);
tracTracEvents.setTrackSettings(true, false, false);
tracTracEvents.setFilterForTrackableRaces("(49er)");
// races are filtered so that all shown entries belong to the correct regatta
tracTracEvents.startTrackingForAllRaces();
TrackedRacesListPO trackedRacesList = tracTracEvents.getTrackedRacesList();
List<TrackedRaceDescriptor> racesToWaitLoadingFor = new ArrayList<>();
for(int i = 1; i<=11; i++) {
racesToWaitLoadingFor.add(new TrackedRaceDescriptor(REGATTA_49ER_WITH_SUFFIX, BOAT_CLASS_49ER, String.format(RACE_N_49ER, i)));
}
racesToWaitLoadingFor.add(new TrackedRaceDescriptor(REGATTA_49ER_WITH_SUFFIX, BOAT_CLASS_49ER, MEDAL_RACE_49ER));
trackedRacesList.waitForTrackedRaces(racesToWaitLoadingFor, Status.FINISHED, 600);
LeaderboardConfigurationPanelPO leaderboard = adminConsole.goToLeaderboardConfiguration();
LeaderboardDetailsPanelPO details = leaderboard.getLeaderboardDetails(REGATTA_49ER_WITH_SUFFIX);
for(int i = 1; i<=11; i++) {
details.linkRace(new RaceDescriptor("Q" + i, DEFAULT_FLEET, false, false, 0), new TrackedRaceDescriptor(REGATTA_49ER_WITH_SUFFIX, BOAT_CLASS_49ER, String.format(RACE_N_49ER, i)));
}
details.linkRace(new RaceDescriptor("M", DEFAULT_FLEET, true, false, 0), new TrackedRaceDescriptor(REGATTA_49ER_WITH_SUFFIX, BOAT_CLASS_49ER, MEDAL_RACE_49ER));
RaceBoardPage raceboard = RaceBoardPage.goToRaceboardUrl(getWebDriver(), getContextRoot(), REGATTA_49ER_WITH_SUFFIX,
REGATTA_49ER_WITH_SUFFIX, String.format(RACE_N_49ER, 1));
MapSettingsPO mapSettings = raceboard.openMapSettings();
Assert.assertTrue(mapSettings.isSimulatorOverlayAvailable());
}
}