From 64e4fb34cc0abb595bebf1062fe11ce4fe8ee47f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 19 Sep 2013 09:20:37 +0200 Subject: [PATCH] added failing test case for bug 1524 --- .../.classpath | 8 ++++ .../.gitignore | 1 + .../.project | 17 ++++++++ .../.settings/org.eclipse.jdt.core.prefs | 11 +++++ .../app/test/IdentifierTest.java | 40 +++++++++++++++++++ .../racecommittee/app/AppConstants.java | 1 + .../app/domain/impl/FleetIdentifierImpl.java | 2 +- 7 files changed, 79 insertions(+), 1 deletion(-) create mode 100755 mobile/com.sap.sailing.racecommittee.app.test/.classpath create mode 100755 mobile/com.sap.sailing.racecommittee.app.test/.gitignore create mode 100755 mobile/com.sap.sailing.racecommittee.app.test/.project create mode 100755 mobile/com.sap.sailing.racecommittee.app.test/.settings/org.eclipse.jdt.core.prefs create mode 100755 mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java diff --git a/mobile/com.sap.sailing.racecommittee.app.test/.classpath b/mobile/com.sap.sailing.racecommittee.app.test/.classpath new file mode 100755 index 00000000000..d2b47fd4ea9 --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app.test/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/mobile/com.sap.sailing.racecommittee.app.test/.gitignore b/mobile/com.sap.sailing.racecommittee.app.test/.gitignore new file mode 100755 index 00000000000..5e56e040ec0 --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app.test/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/mobile/com.sap.sailing.racecommittee.app.test/.project b/mobile/com.sap.sailing.racecommittee.app.test/.project new file mode 100755 index 00000000000..009d7e4cc70 --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app.test/.project @@ -0,0 +1,17 @@ + + + com.sap.sailing.racecommittee.app.test + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/mobile/com.sap.sailing.racecommittee.app.test/.settings/org.eclipse.jdt.core.prefs b/mobile/com.sap.sailing.racecommittee.app.test/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..7341ab1683c --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app.test/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java b/mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java new file mode 100755 index 00000000000..609be590dc7 --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java @@ -0,0 +1,40 @@ +package com.sap.sailing.racecommittee.app.test; + +import static org.junit.Assert.assertFalse; + +import java.util.Collections; +import java.util.Set; + +import org.junit.Test; + +import com.sap.sailing.domain.base.impl.BoatClassImpl; +import com.sap.sailing.domain.base.impl.CourseAreaImpl; +import com.sap.sailing.domain.base.impl.FleetImpl; +import com.sap.sailing.domain.base.racegroup.RaceRow; +import com.sap.sailing.domain.base.racegroup.SeriesWithRows; +import com.sap.sailing.domain.base.racegroup.impl.RaceGroupImpl; +import com.sap.sailing.domain.base.racegroup.impl.SeriesWithRowsImpl; +import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier; +import com.sap.sailing.racecommittee.app.domain.impl.FleetIdentifierImpl; +import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceIdentifierImpl; + +public class IdentifierTest { + @Test + public void testManagedRaceIdentifierUniqueness() { + final Set raceRows1 = Collections.emptySet(); + final SeriesWithRows series1 = new SeriesWithRowsImpl("ghi", /* isMedal */ false, /* raceRows */ raceRows1); + final Set raceGroupSeries1 = Collections.singleton(series1); + ManagedRaceIdentifier i1 = new ManagedRaceIdentifierImpl("abc", new FleetIdentifierImpl(new FleetImpl("def"), series1, + new RaceGroupImpl("jkl.mno\\", new BoatClassImpl("505", /* typicallyStartsUpwind */ true), new CourseAreaImpl("Alpha", "Alpha ID"), raceGroupSeries1))); + String i1ID = i1.getId().toString(); + + final Set raceRows2 = Collections.emptySet(); + final SeriesWithRows series2 = new SeriesWithRowsImpl("mno.ghi", /* isMedal */ false, /* raceRows */ raceRows2); + final Set raceGroupSeries2 = Collections.singleton(series2); + ManagedRaceIdentifier i2 = new ManagedRaceIdentifierImpl("abc", new FleetIdentifierImpl(new FleetImpl("def"), series2, + new RaceGroupImpl("jkl\\", new BoatClassImpl("505", /* typicallyStartsUpwind */ true), new CourseAreaImpl("Alpha", "Alpha ID"), raceGroupSeries2))); + String i2ID = i2.getId().toString(); + + assertFalse(i1ID.equals(i2ID)); + } +} diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/AppConstants.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/AppConstants.java index 9ea5a0d6c09..1fa2ddfe51b 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/AppConstants.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/AppConstants.java @@ -15,6 +15,7 @@ public class AppConstants { public final static String RACING_EVENT_TIME = "racingEventTime"; public final static String STARTPROCEDURE_SPECIFIC_EVENT_ID = "startProcedureSpecificEventId"; public final static String EXTRAS_JSON_SERIALIZED_EVENT = "json"; + public final static String EXTRAS_EVENT_SENDER_RESPONSE_HANDLER_CALLBACK = "responseHandlerCallback"; public final static String EXTRAS_URL = "url"; public final static String OPTIONAL_EXTRAS = "optionalExtra"; public final static String FLAG_KEY = "raceFlag"; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java index ca8e4518cec..faa884bc3bc 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java @@ -39,7 +39,7 @@ public class FleetIdentifierImpl implements FleetIdentifier { } protected String escapeIdentifierFragment(String fragment) { - return fragment.replace(".", "\\."); + return fragment./* this is probably the fix for bug 1524: replace("\\", "\\\\"). */ replace(".", "\\."); } }