mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-15 06:49:56 +00:00
Merge branch 'ubilabs--rcapp--new-testing'
This commit is contained in:
commit
8ff5aea866
11 files changed
+146
-111
No files matched your search
+1
-1
@@ -6,7 +6,7 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:1.0.0'
|
||||
classpath 'com.android.tools.build:gradle:1.1.1'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -619,10 +619,10 @@ if [[ "$@" == "build" ]] || [[ "$@" == "all" ]]; then
|
||||
echo "ANDROID_HOME=$ANDROID_HOME"
|
||||
PATH=$PATH:$ANDROID_HOME/tools
|
||||
PATH=$PATH:$ANDROID_HOME/platform-tools
|
||||
ANDROID="$ANDROID_HOME/tools/android"
|
||||
if [ \! -x "$ANDROID" ]; then
|
||||
ANDROID="$ANDROID_HOME/tools/android.bat"
|
||||
fi
|
||||
ANDROID="$ANDROID_HOME/tools/android"
|
||||
if [ \! -x "$ANDROID" ]; then
|
||||
ANDROID="$ANDROID_HOME/tools/android.bat"
|
||||
fi
|
||||
|
||||
RC_APP_VERSION=`grep "android:versionCode=" mobile/com.sap.$PROJECT_TYPE.racecommittee.app/AndroidManifest.xml | cut -d "\"" -f 2`
|
||||
echo "RC_APP_VERSION=$RC_APP_VERSION"
|
||||
@@ -654,8 +654,12 @@ if [[ "$@" == "build" ]] || [[ "$@" == "all" ]]; then
|
||||
if [[ ${PIPESTATUS[0]} != 0 ]]; then
|
||||
exit 100
|
||||
fi
|
||||
# testing deactivated due to errors in hudson
|
||||
if [ $testing -eq 1 ]; then
|
||||
echo "Starting JUnit tests..."
|
||||
./gradlew test | tee -a $START_DIR/build.log
|
||||
if [[ ${PIPESTATUS[0]} != 0 ]]; then
|
||||
exit 103
|
||||
fi
|
||||
adb emu kill
|
||||
echo "Downloading image (sys-img-${ANDROID_ABI}-android-${TEST_API})..." | tee -a $START_DIR/build.log
|
||||
echo yes | "$ANDROID" update sdk $ANDROID_OPTIONS --filter sys-img-${ANDROID_ABI}-android-${TEST_API} --no-ui --force --all > /dev/null
|
||||
|
||||
-74
@@ -1,74 +0,0 @@
|
||||
package com.sap.sailing.domain.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.common.Util.Triple;
|
||||
|
||||
/**
|
||||
* This test verifies the algorithm used to escape and unescape SimpleRaceIdentifier components as used in
|
||||
* <code>FleetIfentifierImpl</code>.
|
||||
*
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public class SimpleRaceIdentifierEscapingTest {
|
||||
@Test
|
||||
public void testUnescapingSimpleRaceIdentifier() {
|
||||
test("Leaderboard with trailing backslash and dot\\.", "raceColumn", "fleet");
|
||||
test("Leaderboard\\.with\\.two dots", "raceColumn", "fleet");
|
||||
test("Leaderboard with double backslash\\\\", "raceColumn", "fleet");
|
||||
test("Leaderboard with double backslash and dot\\\\.", "raceColumn", "fleet");
|
||||
test("\\Leaderboard with leading backslash", "raceColumn", "fleet");
|
||||
test("\\.Leaderboard with leading backslash and dot", "raceColumn", "fleet");
|
||||
test("\\\\.Leaderboard with leading double backslash and dot", "raceColumn", "fleet");
|
||||
test("\\\\.Leaderboard with leading double backslash and two dots", "raceColumn", "fleet");
|
||||
}
|
||||
|
||||
private void test(String leaderboardName, String raceColumnName, String fleetName) {
|
||||
final String marshalled = build(leaderboardName, raceColumnName, fleetName);
|
||||
final Triple<String, String, String> parsed = parse(marshalled);
|
||||
assertEquals(leaderboardName, parsed.getA());
|
||||
assertEquals(raceColumnName, parsed.getB());
|
||||
assertEquals(fleetName, parsed.getC());
|
||||
}
|
||||
|
||||
private Triple<String, String, String> parse(String s) {
|
||||
int arrayIndex = 0;
|
||||
StringBuilder[] split = new StringBuilder[3];
|
||||
for (int i=0; i<split.length; i++) {
|
||||
split[i] = new StringBuilder();
|
||||
}
|
||||
boolean escaped = false;
|
||||
for (int i=0; i<s.length(); i++) {
|
||||
if (escaped) {
|
||||
split[arrayIndex].append(s.charAt(i));
|
||||
escaped = false;
|
||||
} else if (s.charAt(i) == '\\') {
|
||||
escaped = true; // next character is escaped
|
||||
} else if (s.charAt(i) == '.') {
|
||||
// an unescaped dot
|
||||
arrayIndex++;
|
||||
} else {
|
||||
// unescaped non-escape, non-dot character
|
||||
split[arrayIndex].append(s.charAt(i));
|
||||
}
|
||||
}
|
||||
String leaderboardName = split[0].toString();
|
||||
String raceColumnName = split[1].toString();
|
||||
String fleetName = split[2].toString();
|
||||
return new Triple<>(leaderboardName, raceColumnName, fleetName);
|
||||
}
|
||||
|
||||
private String build(String leaderboardName, String raceColumnName, String fleetName) {
|
||||
return String.format("%s.%s.%s",
|
||||
escape(leaderboardName),
|
||||
escape(raceColumnName),
|
||||
escape(fleetName));
|
||||
}
|
||||
|
||||
private String escape(String s) {
|
||||
return s.replace("\\", "\\\\").replace(".", "\\.");
|
||||
}
|
||||
}
|
||||
@@ -5,12 +5,9 @@
|
||||
<booleanAttribute key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES" value="true"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT_AUTO" value="true"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.gwt.regattaoverview.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.regattaoverview.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.PolarSheets"/>
|
||||
@@ -18,8 +15,12 @@
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.home.Mobile"/>
|
||||
<listEntry value="com.sap.sailing.gwt.home.Desktop"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.VideoPopup"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.LOG_LEVEL" value="INFO"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.SUPERDEVMODE_ENABLED" value="true"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/gwt/Home.html"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
@@ -72,7 +73,7 @@
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-superDevMode -incremental -war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto -startupUrl /gwt/Home.html com.sap.sailing.gwt.Home -startupUrl /gwt/AdminConsole.html com.sap.sailing.gwt.ui.AdminConsole -startupUrl /gwt/LeaderboardEditing.html com.sap.sailing.gwt.ui.LeaderboardEditing -startupUrl /gwt/Leaderboard.html com.sap.sailing.gwt.ui.Leaderboard -startupUrl /gwt/Spectator.html com.sap.sailing.gwt.ui.Spectator -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/PolarSheets.html com.sap.sailing.gwt.ui.PolarSheets -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.regattaoverview.RegattaOverview -startupUrl /gwt/DataMining.html com.sap.sailing.gwt.ui.DataMining -startupUrl /gwt/Simulator.html com.sap.sailing.gwt.ui.Simulator -startupUrl /gwt/VideoPopup.html com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.ui.YoutubePopup com.sap.sailing.gwt.ui.Simulator com.sap.sailing.gwt.ui.Leaderboard com.sap.sailing.gwt.ui.PolarSheets com.sap.sailing.gwt.regattaoverview.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.AdminConsole com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.Home com.sap.sailing.gwt.ui.RaceBoard com.sap.sailing.gwt.regattaoverview.RegattaOverview"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-superDevMode -incremental -war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto -startupUrl /gwt/Home.html com.sap.sailing.gwt.home.Mobile -startupUrl /gwt/HomeDesktop.html com.sap.sailing.gwt.home.Desktop -startupUrl /gwt/AdminConsole.html com.sap.sailing.gwt.ui.AdminConsole -startupUrl /gwt/LeaderboardEditing.html com.sap.sailing.gwt.ui.LeaderboardEditing -startupUrl /gwt/Leaderboard.html com.sap.sailing.gwt.ui.Leaderboard -startupUrl /gwt/Spectator.html com.sap.sailing.gwt.ui.Spectator -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/PolarSheets.html com.sap.sailing.gwt.ui.PolarSheets -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.regattaoverview.RegattaOverview -startupUrl /gwt/DataMining.html com.sap.sailing.gwt.ui.DataMining -startupUrl /gwt/Simulator.html com.sap.sailing.gwt.ui.Simulator -startupUrl /gwt/VideoPopup.html com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.home.Desktop com.sap.sailing.gwt.home.Mobile com.sap.sailing.gwt.ui.AdminConsole com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.ui.YoutubePopup com.sap.sailing.gwt.ui.Simulator com.sap.sailing.gwt.ui.Leaderboard com.sap.sailing.gwt.ui.PolarSheets com.sap.sailing.gwt.regattaoverview.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sailing.gwt.ui"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms1024m -Xmx3072m"/>
|
||||
</launchConfiguration>
|
||||
@@ -1,11 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="gen"/>
|
||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||
<classpathentry exported="true" kind="lib" path="libs/drag-sort-listview-0.6.1-SNAPSHOT.jar"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/org.json.simple"/>
|
||||
<classpathentry kind="output" path="bin/classes"/>
|
||||
</classpath>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="tests-jvm/src"/>
|
||||
<classpathentry kind="src" path="gen"/>
|
||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||
<classpathentry exported="true" kind="lib" path="libs/drag-sort-listview-0.6.1-SNAPSHOT.jar"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/org.json.simple"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
|
||||
<classpathentry kind="output" path="bin/classes"/>
|
||||
</classpath>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.sailing.racecommittee.app/tests-jvm/src/com/sap/sailing/racecommittee/app/domain/impl/SimpleRaceIdentifierEscapingTest.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" javaProject="com.sap.sailing.racecommittee.app" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="com.sap.sailing.racecommittee.app"/> </runtimeClasspathEntry> "/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.sap.sailing.racecommittee.app.domain.impl.SimpleRaceIdentifierEscapingTest"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sailing.racecommittee.app"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
|
||||
</launchConfiguration>
|
||||
@@ -29,9 +29,13 @@ android {
|
||||
}
|
||||
|
||||
androidTest {
|
||||
java.srcDirs = ["tests/src"]
|
||||
res.srcDirs = ["tests/res"]
|
||||
assets.srcDirs = ["tests/assets"]
|
||||
java.srcDirs = ["tests-ui/src"]
|
||||
res.srcDirs = ["tests-ui/res"]
|
||||
assets.srcDirs = ["tests-ui/assets"]
|
||||
}
|
||||
|
||||
test {
|
||||
java.srcDirs = ["tests-jvm/src"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,14 +87,19 @@ dependencies {
|
||||
/* all local jar-libs */
|
||||
compile fileTree(dir: "libs", include: ["*.jar"])
|
||||
|
||||
/* JVM tests */
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile "org.mockito:mockito-core:1.9.5"
|
||||
|
||||
/* UI testing with espresso */
|
||||
androidTestCompile "com.android.support:support-annotations:22.1.1"
|
||||
androidTestCompile "com.android.support.test:runner:0.2"
|
||||
androidTestCompile "com.android.support.test:rules:0.2"
|
||||
androidTestCompile "com.android.support.test.espresso:espresso-core:2.1"
|
||||
androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.1') {
|
||||
exclude group: 'com.android.support', module: 'appcompat'
|
||||
exclude group: 'com.android.support', module: 'support-v4'
|
||||
exclude module: 'recyclerview-v7'
|
||||
androidTestCompile ("com.android.support.test.espresso:espresso-contrib:2.1") {
|
||||
exclude group: "com.android.support", module: "appcompat"
|
||||
exclude group: "com.android.support", module: "support-v4"
|
||||
exclude module: "recyclerview-v7"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-9
@@ -1,10 +1,5 @@
|
||||
package com.sap.sailing.racecommittee.app.utils.autoupdate;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
@@ -12,14 +7,18 @@ import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.net.Uri;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.util.FileHandlerUtils;
|
||||
import com.sap.sailing.racecommittee.app.AppPreferences;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.ui.activities.SettingsActivity;
|
||||
import com.sap.sailing.racecommittee.app.ui.activities.PreferenceActivity;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.preference.GeneralPreferenceFragment;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
public class AutoUpdater {
|
||||
|
||||
private static final String TAG = AutoUpdater.class.getName();
|
||||
@@ -70,8 +69,8 @@ public class AutoUpdater {
|
||||
OnClickListener okListener = new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Intent intent = new Intent(context, SettingsActivity.class);
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, GeneralPreferenceFragment.class.getName());
|
||||
Intent intent = new Intent(context, PreferenceActivity.class);
|
||||
intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, GeneralPreferenceFragment.class.getName());
|
||||
context.startActivity(intent);
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.impl;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.SeriesBase;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.racegroup.RaceGroup;
|
||||
import com.sap.sailing.domain.base.racegroup.impl.RaceGroupImpl;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier;
|
||||
import com.sap.sse.common.Util.Triple;
|
||||
|
||||
/**
|
||||
* This test verifies the algorithm used to escape and unescape SimpleRaceIdentifier components as used in
|
||||
* <code>FleetIfentifierImpl</code>.
|
||||
*
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public class SimpleRaceIdentifierEscapingTest {
|
||||
@Test
|
||||
public void testUnescapingSimpleRaceIdentifier() {
|
||||
test("Leaderboard with trailing backslash and dot\\.", "empty", "fleet", "raceColumn");
|
||||
test("Leaderboard\\.with\\.two dots", "empty", "fleet", "raceColumn");
|
||||
test("Leaderboard with double backslash\\\\", "empty", "fleet", "raceColumn");
|
||||
test("Leaderboard with double backslash and dot\\\\.", "empty", "fleet", "raceColumn");
|
||||
test("\\Leaderboard with leading backslash", "empty", "fleet", "raceColumn");
|
||||
test("\\.Leaderboard with leading backslash and dot", "empty", "fleet", "raceColumn");
|
||||
test("\\\\.Leaderboard with leading double backslash and dot", "empty", "fleet", "raceColumn");
|
||||
test("\\\\.Leaderboard with leading double backslash and two dots", "empty", "fleet", "raceColumn");
|
||||
}
|
||||
|
||||
private void test(String leaderboardName, String empty, String fleetName, String raceColumnName) {
|
||||
final String marshalled = build(leaderboardName, empty, fleetName, raceColumnName);
|
||||
final Triple<String, String, String> parsed = FleetIdentifierImpl.unescape(marshalled);
|
||||
assertEquals(leaderboardName, parsed.getA());
|
||||
assertEquals(raceColumnName, parsed.getB());
|
||||
assertEquals(fleetName, parsed.getC());
|
||||
}
|
||||
|
||||
private String build(final String leaderboardName, final String seriesName, final String fleetName, final String raceColumnName) {
|
||||
final Fleet fleet = new FleetImpl(fleetName);
|
||||
final SeriesBase series = new SeriesBase() {
|
||||
private static final long serialVersionUID = 1139740910228343375L;
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return seriesName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setName(String newName) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMedal() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<? extends Fleet> getFleets() {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
RaceGroup raceGroup = new RaceGroupImpl(leaderboardName, /* displayName */ null, /* boatClass */ null, /* courseArea */ null, /* series */ null, /* regattaConfiguration */ null);
|
||||
ManagedRaceIdentifier identifier = new ManagedRaceIdentifierImpl(raceColumnName, fleet, series, raceGroup);
|
||||
return identifier.getId();
|
||||
}
|
||||
}
|
||||
File renamed without changes.
Reference in new issue
Block a user