From 77c134c0e71b524ef236744dd88d9139f96129c7 Mon Sep 17 00:00:00 2001 From: Benjamin Ebling Date: Thu, 10 Nov 2011 12:20:29 +0100 Subject: [PATCH 1/6] Wrote a test for column swapping. --- .../META-INF/MANIFEST.MF | 8 +- java/com.sap.sailing.gwt.ui/.classpath | 8 +- java/com.sap.sailing.gwt.ui/.project | 7 +- .../com.google.gwt.eclipse.core.prefs | 3 +- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 2 +- java/com.sap.sailing.gwt.ui/build.properties | 4 +- .../sailing/gwt/ui/client/AdminConsole.java | 12 +- .../gwt/ui/client/LeaderboardPanel.java | 11 +- .../gwt/ui/client/TestColumnDeleting.java | 217 ++++++++++++++++++ .../gwt/ui/test/TestSailingService.java | 10 + .../sap/sailing/gwt/ui/AdminConsole.gwt.xml | 6 +- 11 files changed, 260 insertions(+), 28 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingService.java diff --git a/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF index ae2fb8ad405..fa0e6232230 100644 --- a/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF @@ -6,9 +6,9 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: com.sap.sailing.gwt.ui, - org.junit4;bundle-version="4.8.1", - javax.servlet;bundle-version="2.5.0", com.sap.sailing.domain, org.json.simple, - com.sap.sailing.server, - org.eclipse.osgi;bundle-version="3.7.1" + com.sap.sailing.server +Import-Package: org.junit;version="4.8.1", + org.osgi.framework, + org.osgi.util.tracker;version="1.5.0" diff --git a/java/com.sap.sailing.gwt.ui/.classpath b/java/com.sap.sailing.gwt.ui/.classpath index d61b2a24382..dd566e6861a 100755 --- a/java/com.sap.sailing.gwt.ui/.classpath +++ b/java/com.sap.sailing.gwt.ui/.classpath @@ -2,14 +2,10 @@ - - - - - + - + diff --git a/java/com.sap.sailing.gwt.ui/.project b/java/com.sap.sailing.gwt.ui/.project index 2af02edddb6..728cf122510 100755 --- a/java/com.sap.sailing.gwt.ui/.project +++ b/java/com.sap.sailing.gwt.ui/.project @@ -31,8 +31,13 @@ - org.eclipse.m2e.core.maven2Builder + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.m2e.core.maven2Builder.launch + diff --git a/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs b/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs index b4ad05b12bb..ea7accb991a 100755 --- a/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs +++ b/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs @@ -1,4 +1,5 @@ -#Thu Sep 29 09:30:43 CEST 2011 +#Wed Nov 09 12:43:38 CET 2011 eclipse.preferences.version=1 +entryPointModules= filesCopiedToWebInfLib=gwt-servlet.jar gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBW11dPjwvZXh0cmEtYXJncz48dm0tYXJncz48IVtDREFUQVstWG14NTEybV1dPjwvdm0tYXJncz48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuQWRtaW5Db25zb2xlPC9lbnRyeS1wb2ludC1tb2R1bGU+PC9nd3QtY29tcGlsZS1zZXR0aW5ncz4\= diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index 661dfa84bfe..3a34b75a325 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -21,7 +21,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/build.properties b/java/com.sap.sailing.gwt.ui/build.properties index 967a7882162..534ad514cdd 100755 --- a/java/com.sap.sailing.gwt.ui/build.properties +++ b/java/com.sap.sailing.gwt.ui/build.properties @@ -3,7 +3,5 @@ source.. = src/main/resources,\ output.. = bin bin.includes = META-INF/,\ .,\ - lib/gwt-visualization.jar,\ - lib/gwt-maps.jar,\ - lib/gwt-servlet.jar,\ war/ +jars.compile.order = . diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AdminConsole.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AdminConsole.java index 70d43415f9e..46bbed0dd9d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AdminConsole.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AdminConsole.java @@ -34,10 +34,10 @@ public class AdminConsole extends AbstractEntryPoint implements EventRefresher { eventDisplayers.add(windPanel); windPanel.setSize("90%", "90%"); tabPanel.add(windPanel, stringConstants.wind(), /* asHTML */ false); - final RaceMapPanel raceMapPanel = new RaceMapPanel(sailingService, this, this, stringConstants); - eventDisplayers.add(raceMapPanel); - raceMapPanel.setSize("90%", "90%"); - tabPanel.add(raceMapPanel, stringConstants.map(), /* asHTML */ false); + //final RaceMapPanel raceMapPanel = new RaceMapPanel(sailingService, this, this, stringConstants); + //eventDisplayers.add(raceMapPanel); + //raceMapPanel.setSize("90%", "90%"); + //tabPanel.add(raceMapPanel, stringConstants.map(), /* asHTML */ false); LeaderboardPanel defaultLeaderboardPanel = new LeaderboardPanel(sailingService, stringConstants.defaultLeaderboard(), this, stringConstants); defaultLeaderboardPanel.setSize("90%", "90%"); tabPanel.add(defaultLeaderboardPanel, stringConstants.defaultLeaderboard(), /* asHTML */ false); @@ -47,14 +47,14 @@ public class AdminConsole extends AbstractEntryPoint implements EventRefresher { eventDisplayers.add(leaderboardConfigPanel); tabPanel.selectTab(0); - tabPanel.addSelectionHandler(new SelectionHandler() { + /*tabPanel.addSelectionHandler(new SelectionHandler() { @Override public void onSelection(SelectionEvent event) { if(raceMapPanel.isVisible()) { raceMapPanel.onResize(); } } - }); + });*/ fillEvents(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java index 70e6b98a13f..23e09ba792e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java @@ -975,12 +975,13 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta if (raceColumn.isExpanded()) { raceColumn.toggleExpansion(); // remove children from table } - removeColumn(columnIndex); - insertColumn( - positionRaceColumn[indexRaceColumn], - createRaceColumn(race, leaderboard.raceIsMedalRace(race), - leaderboard.raceIsTracked(race))); + } + removeColumn(columnIndex); + insertColumn( + positionRaceColumn[indexRaceColumn], + createRaceColumn(race, leaderboard.raceIsMedalRace(race), + leaderboard.raceIsTracked(race))); } } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java new file mode 100644 index 00000000000..34eb9549c50 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java @@ -0,0 +1,217 @@ +package com.sap.sailing.gwt.ui.client; + +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.gwt.ui.client.LeaderboardPanel.RaceColumn; +import com.sap.sailing.gwt.ui.shared.LeaderboardDAO; +import com.sap.sailing.gwt.ui.shared.LeaderboardRowDAO; +import com.sap.sailing.gwt.ui.shared.Pair; +import com.sap.sailing.gwt.ui.shared.RaceRecordDAO; +import com.sap.sailing.gwt.ui.test.LeaderboardPanelMock; +import com.sap.sailing.gwt.ui.test.TestSailingService; +import com.sap.sailing.gwt.ui.test.TestSailingServiceAsync; + +public class TestColumnDeleting extends GWTTestCase { + private LeaderboardPanelMock leaderboardPanel; + private TestSailingServiceAsync service; + private StringConstants sc; + + private final String LEADERBOARD_NAME = "test"; + private final String COLUMN1_NAME = "r1"; + private final String EVENT_NAME = "kielerwoche"; + private final String JSON_URL= "http://germanmaster.traclive.dk/events/event_20110609_KielerWoch/jsonservice.php"; + private final String TRACKED_RACE = "49eryellow1"; + + + private LeaderboardDAO leaderboard; + private RaceRecordDAO rrDao; + private RaceColumn rc; + private int indexOfRaceColumn; + + + + @Override + protected void gwtSetUp() throws Exception { + // TODO Auto-generated method stub + super.gwtSetUp(); + service = GWT.create(TestSailingService.class); + sc = GWT.create(StringConstants.class); + } + + public void testColumnDeleting() { + delayTestFinish(1000000); + + listRacesInEvent(); + + } + + private void linkTrackedRace(){ + service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, EVENT_NAME, TRACKED_RACE, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + + @Override + public void onSuccess(Void result) { + // TODO Auto-generated method stub + removeColumnAndAssert(); + } + }); + } + + private void listRacesInEvent(){ + service.listRacesInEvent(JSON_URL, new AsyncCallback>>() { + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + + @Override + public void onSuccess(Pair> result) { + for (RaceRecordDAO rr : result.getB()){ + if (rr.name.toLowerCase().trim().equals(TRACKED_RACE)){ + rrDao = rr; + } + } + trackRace(); + } + }); + } + + private void trackRace(){ + service.track(rrDao, "", "", false, false, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + + @Override + public void onSuccess(Void result) { + // TODO Auto-generated method stub + createLeaderboard(); + } + }); + } + + private void createLeaderboard(){ + service.createLeaderboard(LEADERBOARD_NAME, new int[] { 1, 2 }, + new AsyncCallback() { + + @Override + public void onSuccess(Void result) { + // TODO Auto-generated method stub + System.out.println("Created Leaderboard."); + 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() { + + @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."); + leaderboardPanel.addColumn(leaderboardPanel.createRaceColumn(COLUMN1_NAME, false, false)); + getLeaderboard(); + } + }); + } + + private void getLeaderboard(){ + service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), null, + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to get leaderboard."); + finishTest(); + } + + @Override + public void onSuccess(LeaderboardDAO result) { + System.out.println("Got leaderboard."); + leaderboard = result; + System.out.println("Legcount: " + leaderboard.getLegCount(COLUMN1_NAME)); + for (int i = 0; i < leaderboardPanel.getLeaderboardTable() + .getColumnCount(); i++) { + Column c = leaderboardPanel.getLeaderboardTable().getColumn(i); + System.out.println(i + ": " + c); + if (c instanceof RaceColumn) { + + rc = (RaceColumn) c; + rc.setEnableLegDrillDown(true); + indexOfRaceColumn = i; + } + } + linkTrackedRace(); + } + }); + } + + private void removeColumnAndAssert(){ + service.removeLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to remoce column."); + finishTest(); + } + + @Override + public void onSuccess(Void result) { + System.out.println("Removed column."); + + leaderboardPanel.removeColumn(indexOfRaceColumn); + assertNotNull(rc); + rc.toggleExpansion(); + 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.AdminConsole"; + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingService.java new file mode 100644 index 00000000000..4b6f6375dd0 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingService.java @@ -0,0 +1,10 @@ +package com.sap.sailing.gwt.ui.test; + +import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; +import com.sap.sailing.gwt.ui.client.SailingService; +import com.sap.sailing.server.RacingEventService; + +@RemoteServiceRelativePath("testsailing") +public interface TestSailingService extends SailingService { + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml index 925d4e3ff69..faf3549accc 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml @@ -1,6 +1,6 @@ - + @@ -29,4 +29,8 @@ + + + + \ No newline at end of file From 3cd2cd655dc0c795b4d7f9258f7ec112e6cc5f77 Mon Sep 17 00:00:00 2001 From: Benjamin Ebling Date: Thu, 10 Nov 2011 12:23:57 +0100 Subject: [PATCH 2/6] Added files for testing. --- .../gwt/ui/test/LeaderboardPanelMock.java | 41 +++++++++++++++++++ .../gwt/ui/test/TestSailingServiceAsync.java | 26 ++++++++++++ .../gwt/ui/test/TestSailingServiceImpl.java | 32 +++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceAsync.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceImpl.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java new file mode 100644 index 00000000000..709c8e7e3d9 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java @@ -0,0 +1,41 @@ +package com.sap.sailing.gwt.ui.test; + +import com.sap.sailing.gwt.ui.client.ErrorReporter; +import com.sap.sailing.gwt.ui.client.LeaderboardPanel; +import com.sap.sailing.gwt.ui.client.SailingServiceAsync; +import com.sap.sailing.gwt.ui.client.SortableColumn; +import com.sap.sailing.gwt.ui.client.StringConstants; +import com.sap.sailing.gwt.ui.shared.LeaderboardRowDAO; + +public class LeaderboardPanelMock extends LeaderboardPanel { + + public LeaderboardPanelMock(SailingServiceAsync sailingService, + String leaderboardName, ErrorReporter errorReporter, + StringConstants stringConstants) { + super(sailingService, leaderboardName, errorReporter, stringConstants); + // TODO Auto-generated constructor stub + } + + @Override + public void addColumn(SortableColumn column) { + // TODO Auto-generated method stub + super.addColumn(column); + } + + @Override + public RaceColumn createRaceColumn(String raceName, + boolean isMedalRace, boolean isTracked) { + // TODO Auto-generated method stub + return super.createRaceColumn(raceName, isMedalRace, isTracked); + } + + @Override + public void removeColumn(int columnIndex) { + // TODO Auto-generated method stub + super.removeColumn(columnIndex); + } + + + + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceAsync.java new file mode 100644 index 00000000000..09d92fadd4c --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceAsync.java @@ -0,0 +1,26 @@ +package com.sap.sailing.gwt.ui.test; + +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.sap.sailing.gwt.ui.client.SailingServiceAsync; +import com.sap.sailing.gwt.ui.shared.CompetitorDAO; +import com.sap.sailing.gwt.ui.shared.EventDAO; +import com.sap.sailing.gwt.ui.shared.GPSFixDAO; +import com.sap.sailing.gwt.ui.shared.LeaderboardDAO; +import com.sap.sailing.gwt.ui.shared.LeaderboardEntryDAO; +import com.sap.sailing.gwt.ui.shared.MarkDAO; +import com.sap.sailing.gwt.ui.shared.Pair; +import com.sap.sailing.gwt.ui.shared.QuickRankDAO; +import com.sap.sailing.gwt.ui.shared.RaceRecordDAO; +import com.sap.sailing.gwt.ui.shared.TracTracConfigurationDAO; +import com.sap.sailing.gwt.ui.shared.WindDAO; +import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDAO; +import com.sap.sailing.server.RacingEventService; + +public interface TestSailingServiceAsync extends SailingServiceAsync { + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceImpl.java new file mode 100644 index 00000000000..cfbccfa9aab --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceImpl.java @@ -0,0 +1,32 @@ +package com.sap.sailing.gwt.ui.test; + +import org.osgi.framework.BundleContext; +import org.osgi.util.tracker.ServiceTracker; + +import com.sap.sailing.gwt.ui.server.SailingServiceImpl; +import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.RacingEventServiceImpl; + +public class TestSailingServiceImpl extends SailingServiceImpl implements TestSailingService { + private static final long serialVersionUID = 3647254510616623048L; + + private RacingEventService service; + + public TestSailingServiceImpl(){ + super(); + service = new RacingEventServiceImpl(); + } + + public RacingEventService getService(){ + return service; + } + + @Override + protected ServiceTracker createAndOpenRacingEventServiceTracker( + BundleContext context) { + // TODO Auto-generated method stub + return null; + } + + +} From ee0734a9200bdfb9b517490fbb2e10929b8becd5 Mon Sep 17 00:00:00 2001 From: Benjamin Ebling Date: Thu, 10 Nov 2011 14:53:52 +0100 Subject: [PATCH 3/6] Improved the column swapping/deleting test. --- .../ui/client/ExpandableSortableColumn.java | 2 +- .../gwt/ui/client/LeaderboardPanel.java | 2 +- .../gwt/ui/client/TestColumnDeleting.java | 68 ++++++++++--------- .../gwt/ui/test/LeaderboardPanelMock.java | 7 ++ 4 files changed, 44 insertions(+), 35 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java index 5b0d1ab6b1f..e552466cd5e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java @@ -184,7 +184,7 @@ public abstract class ExpandableSortableColumn extends SortableColumn column : getAllVisibleChildren()) { column.updateMinMax(getLeaderboardPanel().getLeaderboard()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java index 23e09ba792e..27570ee31c6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java @@ -880,7 +880,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta /** * Also updates the min/max values on the columns */ - private void updateLeaderboard(LeaderboardDAO leaderboard) { + protected void updateLeaderboard(LeaderboardDAO leaderboard) { setLeaderboard(leaderboard); adjustColumnLayout(leaderboard); getData().getList().clear(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java index 34eb9549c50..a8c912e7ebd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java @@ -1,5 +1,6 @@ package com.sap.sailing.gwt.ui.client; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -23,9 +24,9 @@ public class TestColumnDeleting extends GWTTestCase { private final String LEADERBOARD_NAME = "test"; private final String COLUMN1_NAME = "r1"; - private final String EVENT_NAME = "kielerwoche"; + private final String EVENT_NAME = "Kieler Woche (49er)"; private final String JSON_URL= "http://germanmaster.traclive.dk/events/event_20110609_KielerWoch/jsonservice.php"; - private final String TRACKED_RACE = "49eryellow1"; + private final String TRACKED_RACE = "49er Yellow 1"; private LeaderboardDAO leaderboard; @@ -37,7 +38,6 @@ public class TestColumnDeleting extends GWTTestCase { @Override protected void gwtSetUp() throws Exception { - // TODO Auto-generated method stub super.gwtSetUp(); service = GWT.create(TestSailingService.class); sc = GWT.create(StringConstants.class); @@ -50,39 +50,24 @@ public class TestColumnDeleting extends GWTTestCase { } - private void linkTrackedRace(){ - service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, EVENT_NAME, TRACKED_RACE, new AsyncCallback() { - - @Override - public void onFailure(Throwable caught) { - // TODO Auto-generated method stub - - } - - @Override - public void onSuccess(Void result) { - // TODO Auto-generated method stub - removeColumnAndAssert(); - } - }); - } - private void listRacesInEvent(){ service.listRacesInEvent(JSON_URL, new AsyncCallback>>() { @Override public void onFailure(Throwable caught) { - // TODO Auto-generated method stub - + fail("Failed to list races." + caught.getLocalizedMessage()); } @Override public void onSuccess(Pair> result) { + System.out.println("Listed races."); for (RaceRecordDAO rr : result.getB()){ - if (rr.name.toLowerCase().trim().equals(TRACKED_RACE)){ + System.out.println(rr.name + " : " + TRACKED_RACE); + if (rr.name.equals(TRACKED_RACE)){ rrDao = rr; } } + assertNotNull("rrDao != null",rrDao); trackRace(); } }); @@ -93,13 +78,12 @@ public class TestColumnDeleting extends GWTTestCase { @Override public void onFailure(Throwable caught) { - // TODO Auto-generated method stub - + fail("Failed to track race: " + caught.getLocalizedMessage()); } @Override public void onSuccess(Void result) { - // TODO Auto-generated method stub + System.out.println("Tracked race."); createLeaderboard(); } }); @@ -111,7 +95,6 @@ public class TestColumnDeleting extends GWTTestCase { @Override public void onSuccess(Void result) { - // TODO Auto-generated method stub System.out.println("Created Leaderboard."); addColumnToLeaderboard(); } @@ -123,7 +106,7 @@ public class TestColumnDeleting extends GWTTestCase { } }); } - + private void addColumnToLeaderboard() { leaderboardPanel = new LeaderboardPanelMock(service, LEADERBOARD_NAME, null, sc); @@ -141,13 +124,31 @@ public class TestColumnDeleting extends GWTTestCase { public void onSuccess(Void result) { System.out.println("Added column to leaderboard."); leaderboardPanel.addColumn(leaderboardPanel.createRaceColumn(COLUMN1_NAME, false, false)); - getLeaderboard(); + linkTrackedRace(); } }); } + private void linkTrackedRace(){ + service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, EVENT_NAME, TRACKED_RACE, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to link race."); + } + + @Override + public void onSuccess(Void result) { + System.out.println("Linked race to column."); + getLeaderboard(); + } + }); + } + private void getLeaderboard(){ - service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), null, + ArrayList al = new ArrayList(); + al.add(COLUMN1_NAME); + service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), al, new AsyncCallback() { @Override @@ -159,20 +160,21 @@ public class TestColumnDeleting extends GWTTestCase { @Override public void onSuccess(LeaderboardDAO result) { System.out.println("Got leaderboard."); + leaderboard = result; - System.out.println("Legcount: " + leaderboard.getLegCount(COLUMN1_NAME)); + leaderboardPanel.updateLeaderboard(leaderboard); for (int i = 0; i < leaderboardPanel.getLeaderboardTable() .getColumnCount(); i++) { Column c = leaderboardPanel.getLeaderboardTable().getColumn(i); - System.out.println(i + ": " + c); if (c instanceof RaceColumn) { rc = (RaceColumn) c; rc.setEnableLegDrillDown(true); + indexOfRaceColumn = i; } } - linkTrackedRace(); + removeColumnAndAssert(); } }); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java index 709c8e7e3d9..259d0856f55 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java @@ -5,6 +5,7 @@ import com.sap.sailing.gwt.ui.client.LeaderboardPanel; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SortableColumn; import com.sap.sailing.gwt.ui.client.StringConstants; +import com.sap.sailing.gwt.ui.shared.LeaderboardDAO; import com.sap.sailing.gwt.ui.shared.LeaderboardRowDAO; public class LeaderboardPanelMock extends LeaderboardPanel { @@ -34,6 +35,12 @@ public class LeaderboardPanelMock extends LeaderboardPanel { // TODO Auto-generated method stub super.removeColumn(columnIndex); } + + @Override + public void updateLeaderboard(LeaderboardDAO leaderboard) { + // TODO Auto-generated method stub + super.updateLeaderboard(leaderboard); + } From d6831d9e375f99c43f4b1d974133437953e185c5 Mon Sep 17 00:00:00 2001 From: Benjamin Ebling Date: Thu, 10 Nov 2011 16:57:00 +0100 Subject: [PATCH 4/6] Updated the column deleting test. --- .../gwt/ui/client/ExpandableSortableColumn.java | 4 ++-- .../sailing/gwt/ui/client/TestColumnDeleting.java | 15 +++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java index e552466cd5e..cbefb354c9b 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java @@ -182,9 +182,9 @@ public abstract class ExpandableSortableColumn extends SortableColumn column : getAllVisibleChildren()) { column.updateMinMax(getLeaderboardPanel().getLeaderboard()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java index a8c912e7ebd..97df3f0602b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java @@ -148,7 +148,7 @@ public class TestColumnDeleting extends GWTTestCase { private void getLeaderboard(){ ArrayList al = new ArrayList(); al.add(COLUMN1_NAME); - service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), al, + service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), null, new AsyncCallback() { @Override @@ -193,15 +193,22 @@ public class TestColumnDeleting extends GWTTestCase { public void onSuccess(Void result) { System.out.println("Removed column."); - leaderboardPanel.removeColumn(indexOfRaceColumn); + //leaderboardPanel.removeColumn(indexOfRaceColumn); assertNotNull(rc); - rc.toggleExpansion(); + try { + leaderboardPanel.updateLeaderboard(leaderboard); + rc.toggleExpansion(); + } catch (Exception e) { + fail("Toggle column failed." + e.getLocalizedMessage()); + } finishTest(); } }); } - + public void assertColumnDeleting(){ + + } @Override protected void gwtTearDown() throws Exception { From 6f0320adf566d98c2ea1e462bfe56fd5931ded9b Mon Sep 17 00:00:00 2001 From: Benjamin Ebling Date: Fri, 11 Nov 2011 14:28:10 +0100 Subject: [PATCH 5/6] Completed column toggling/deleting test. --- .../ui/client/ExpandableSortableColumn.java | 2 +- .../gwt/ui/client/LeaderboardPanel.java | 12 ++++---- .../gwt/ui/client/TestColumnDeleting.java | 30 ++++++++----------- 3 files changed, 19 insertions(+), 25 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java index cbefb354c9b..46ea3eb345f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java @@ -182,7 +182,7 @@ public abstract class ExpandableSortableColumn extends SortableColumn rc; - private int indexOfRaceColumn; @@ -62,7 +64,6 @@ public class TestColumnDeleting extends GWTTestCase { public void onSuccess(Pair> result) { System.out.println("Listed races."); for (RaceRecordDAO rr : result.getB()){ - System.out.println(rr.name + " : " + TRACKED_RACE); if (rr.name.equals(TRACKED_RACE)){ rrDao = rr; } @@ -148,7 +149,7 @@ public class TestColumnDeleting extends GWTTestCase { private void getLeaderboard(){ ArrayList al = new ArrayList(); al.add(COLUMN1_NAME); - service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), null, + service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), al, new AsyncCallback() { @Override @@ -170,8 +171,6 @@ public class TestColumnDeleting extends GWTTestCase { rc = (RaceColumn) c; rc.setEnableLegDrillDown(true); - - indexOfRaceColumn = i; } } removeColumnAndAssert(); @@ -191,13 +190,11 @@ public class TestColumnDeleting extends GWTTestCase { @Override public void onSuccess(Void result) { - System.out.println("Removed column."); - - //leaderboardPanel.removeColumn(indexOfRaceColumn); + leaderboardPanel.updateLeaderboard(leaderboard); assertNotNull(rc); try { - leaderboardPanel.updateLeaderboard(leaderboard); rc.toggleExpansion(); + leaderboardPanel.updateLeaderboard(leaderboard); } catch (Exception e) { fail("Toggle column failed." + e.getLocalizedMessage()); } @@ -205,16 +202,13 @@ public class TestColumnDeleting extends GWTTestCase { } }); } - - public void assertColumnDeleting(){ - - } + + @Override protected void gwtTearDown() throws Exception { // TODO Auto-generated method stub - //super.gwtTearDown(); - + super.gwtTearDown(); } @Override From 6059df3db1583f9e4042e9feb3815edb64d7e89a Mon Sep 17 00:00:00 2001 From: Benjamin Ebling Date: Mon, 14 Nov 2011 09:33:19 +0100 Subject: [PATCH 6/6] Updated the column toggling/deleting test. --- .../gwt/ui/test/LeaderboardPanelMock.java | 10 +++++++--- .../TestColumnToggling.java} | 16 +++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/{client/TestColumnDeleting.java => test/TestColumnToggling.java} (90%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java index 259d0856f55..57e8ae756b3 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java @@ -1,5 +1,6 @@ package com.sap.sailing.gwt.ui.test; +import com.google.gwt.user.cellview.client.CellTable; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardPanel; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; @@ -41,8 +42,11 @@ public class LeaderboardPanelMock extends LeaderboardPanel { // TODO Auto-generated method stub super.updateLeaderboard(leaderboard); } - - - + @Override + public CellTable getLeaderboardTable() { + // TODO Auto-generated method stub + return super.getLeaderboardTable(); + } + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestColumnToggling.java similarity index 90% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestColumnToggling.java index 6737a87ce91..0473de47c66 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TestColumnDeleting.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestColumnToggling.java @@ -1,4 +1,4 @@ -package com.sap.sailing.gwt.ui.client; +package com.sap.sailing.gwt.ui.test; import java.util.ArrayList; import java.util.Date; @@ -8,16 +8,14 @@ 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.gwt.ui.client.LeaderboardPanel.RaceColumn; +import com.sap.sailing.gwt.ui.client.ExpandableSortableColumn; +import com.sap.sailing.gwt.ui.client.StringConstants; import com.sap.sailing.gwt.ui.shared.LeaderboardDAO; import com.sap.sailing.gwt.ui.shared.LeaderboardRowDAO; import com.sap.sailing.gwt.ui.shared.Pair; import com.sap.sailing.gwt.ui.shared.RaceRecordDAO; -import com.sap.sailing.gwt.ui.test.LeaderboardPanelMock; -import com.sap.sailing.gwt.ui.test.TestSailingService; -import com.sap.sailing.gwt.ui.test.TestSailingServiceAsync; -public class TestColumnDeleting extends GWTTestCase { +public class TestColumnToggling extends GWTTestCase { //These objects should be created by calling GWT.create(Class c); private LeaderboardPanelMock leaderboardPanel; @@ -34,7 +32,7 @@ public class TestColumnDeleting extends GWTTestCase { private LeaderboardDAO leaderboard; private RaceRecordDAO rrDao; - private RaceColumn rc; + private ExpandableSortableColumn rc; @@ -167,9 +165,9 @@ public class TestColumnDeleting extends GWTTestCase { for (int i = 0; i < leaderboardPanel.getLeaderboardTable() .getColumnCount(); i++) { Column c = leaderboardPanel.getLeaderboardTable().getColumn(i); - if (c instanceof RaceColumn) { + if (c instanceof ExpandableSortableColumn) { - rc = (RaceColumn) c; + rc = (ExpandableSortableColumn) c; rc.setEnableLegDrillDown(true); } }