Merge branch 'master' into bug5147

This commit is contained in:
Axel Uhl
2023-01-10 16:43:37 +01:00
734 changed files with 79600 additions and 4308 deletions
@@ -15,7 +15,7 @@ Require-Bundle: com.sap.sailing.domain,
com.sap.sse.operationaltransformation,
com.sap.sse.mongodb,
com.tractrac.clientmodule;bundle-version="2.0.0",
org.hamcrest;bundle-version="1.1.0",
org.hamcrest;bundle-version="2.2.0",
org.junit;bundle-version="4.8.2",
com.sap.sailing.domain.test,
org.mockito.mockito-core;bundle-version="1.10.14",
@@ -3,10 +3,10 @@ package com.sap.sailing.server.impl;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.sameInstance;
import static org.junit.Assert.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.same;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.same;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
@@ -3,7 +3,7 @@ package com.sap.sailing.server.impl;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertTrue;
import java.util.Collection;
@@ -68,6 +68,7 @@ import com.sap.sailing.server.impl.RacingEventServiceImpl;
import com.sap.sailing.server.interfaces.RacingEventService;
import com.sap.sse.common.Color;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util;
import com.sap.sse.common.impl.MillisecondsTimePoint;
public class ApplyScoresFromRaceLogTest extends LeaderboardScoringAndRankingTestBase {
@@ -197,8 +198,8 @@ public class ApplyScoresFromRaceLogTest extends LeaderboardScoringAndRankingTest
final RaceState f1RaceState = new RaceStateImpl(service, f1RaceLog, author,
new RacingProcedureFactoryImpl(author, new EmptyRegattaConfiguration()));
f1RaceState.setFinishPositioningListChanged(now, results);
final List<Competitor> rankedCompetitorsBeforeApplying = leaderboard.getCompetitorsFromBestToWorst(later);
assertEquals(competitors, rankedCompetitorsBeforeApplying); // no effects of preliminary results list yet
final Iterable<Competitor> rankedCompetitorsBeforeApplying = leaderboard.getCompetitorsFromBestToWorst(later);
assertEquals(competitors, Util.asList(rankedCompetitorsBeforeApplying)); // no effects of preliminary results list yet
f1RaceState.setFinishPositioningConfirmed(now, results);
final Function<Competitor, Double> expectedPoints =
(c)->scores.get(c)==null?(mprs.get(c) == null || mprs.get(c) == MaxPointsReason.NONE ?
@@ -207,8 +208,8 @@ public class ApplyScoresFromRaceLogTest extends LeaderboardScoringAndRankingTest
assertEquals(expectedPoints.apply(c), leaderboard.getTotalPoints(c, f1Column, now), 0.00000001);
}
final List<Competitor> expectedNewOrder = new ArrayList<>(competitors);
expectedNewOrder.sort((c1, c2)->new Double(expectedPoints.apply(c1)).compareTo(new Double(expectedPoints.apply(c1))));
final List<Competitor> rankedCompetitorsAfterApplying = leaderboard.getCompetitorsFromBestToWorst(later);
expectedNewOrder.sort((c1, c2)->Double.valueOf(expectedPoints.apply(c1)).compareTo(Double.valueOf(expectedPoints.apply(c1))));
final Iterable<Competitor> rankedCompetitorsAfterApplying = leaderboard.getCompetitorsFromBestToWorst(later);
double lastScore = 0;
for (final Competitor c : rankedCompetitorsAfterApplying) {
assertEquals(expectedPoints.apply(c), leaderboard.getTotalPoints(c, f1Column, later));
@@ -244,8 +245,8 @@ public class ApplyScoresFromRaceLogTest extends LeaderboardScoringAndRankingTest
final RaceState f1RaceState = new RaceStateImpl(service, f1RaceLog, author,
new RacingProcedureFactoryImpl(author, new EmptyRegattaConfiguration()));
f1RaceState.setFinishPositioningListChanged(now, results);
final List<Competitor> rankedCompetitorsBeforeApplying = leaderboard.getCompetitorsFromBestToWorst(later);
assertEquals(competitors, rankedCompetitorsBeforeApplying); // no effects of preliminary results list yet
final Iterable<Competitor> rankedCompetitorsBeforeApplying = leaderboard.getCompetitorsFromBestToWorst(later);
assertEquals(competitors, Util.asList(rankedCompetitorsBeforeApplying)); // no effects of preliminary results list yet
f1RaceState.setFinishPositioningConfirmed(now, results);
assertScoreCorrections(leaderboard, f1Column, competitors.get(0), MaxPointsReason.DNF, 0, /* score is corrected */ false, later);
@@ -286,8 +287,8 @@ public class ApplyScoresFromRaceLogTest extends LeaderboardScoringAndRankingTest
final RaceState f1RaceState = new RaceStateImpl(service, f1RaceLog, author,
new RacingProcedureFactoryImpl(author, new EmptyRegattaConfiguration()));
f1RaceState.setFinishPositioningListChanged(now, results);
final List<Competitor> rankedCompetitorsBeforeApplying = leaderboard.getCompetitorsFromBestToWorst(later);
assertEquals(competitors, rankedCompetitorsBeforeApplying); // no effects of preliminary results list yet
final Iterable<Competitor> rankedCompetitorsBeforeApplying = leaderboard.getCompetitorsFromBestToWorst(later);
assertEquals(competitors, Util.asList(rankedCompetitorsBeforeApplying)); // no effects of preliminary results list yet
f1RaceState.setFinishPositioningConfirmed(now, results);
// validate that it arrived in leaderboard
assertScoreCorrections(leaderboard, f1Column, competitors.get(0), MaxPointsReason.OCS, numberOfCompetitors+1, /* score is corrected */ false, later);
@@ -25,7 +25,7 @@ import java.util.concurrent.TimeoutException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Matchers;
import org.mockito.ArgumentMatchers;
import org.osgi.framework.BundleContext;
import com.sap.sailing.domain.abstractlog.race.RaceLog;
@@ -101,7 +101,7 @@ public class AutomaticRetrackUponCompetitorSetChangeTest {
@Before
public void setUp() throws Exception {
final BundleContext contextMock = mock(BundleContext.class);
when(contextMock.createFilter(Matchers.anyObject())).thenReturn(null);
when(contextMock.createFilter(ArgumentMatchers.any())).thenReturn(null);
mongoDBService = MongoDBService.INSTANCE;
mongoDBService.getDB().drop();
mongoObjectFactory = PersistenceFactory.INSTANCE.getMongoObjectFactory(mongoDBService);
@@ -39,7 +39,7 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Matchers;
import org.mockito.ArgumentMatchers;
import org.mockito.Mockito;
import com.mongodb.MongoException;
@@ -215,10 +215,10 @@ public class MasterDataImportTest {
Mockito.doReturn(true).when(securityService)
.hasCurrentUserServerPermission(ServerActions.CAN_EXPORT_MASTERDATA);
Mockito.doReturn(true).when(securityService).hasCurrentUserOneOfExplicitPermissions(
Mockito.any(WithQualifiedObjectIdentifier.class), Matchers.<PublicReadableActions> anyVararg());
Mockito.any(WithQualifiedObjectIdentifier.class), ArgumentMatchers.<PublicReadableActions> any());
Mockito.when(securityService.setOwnershipCheckPermissionForObjectCreationAndRevertOnError(Mockito.any(),
Mockito.any(), Mockito.any(), Mockito.any(Callable.class)))
.thenAnswer(i -> i.getArgumentAt(3, Callable.class).call());
.thenAnswer(i -> i.getArgument(3, Callable.class).call());
Mockito.doReturn(true).when(fakeSubject).isAuthenticated();
DomainFactory sourceDomainFactory = new DomainFactoryImpl(DomainFactory.TEST_RACE_LOG_RESOLVER);
DomainObjectFactory dbFactory = PersistenceFactory.INSTANCE.getDomainObjectFactory(MongoDBService.INSTANCE,
@@ -103,12 +103,12 @@ public class RaceTrackerStartStopTest {
/* millisecondsOverWhichToAverageWind */ 0l,
/* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null, /*useMarkPassingCalculator*/ false, mock(RaceLogAndTrackedRaceResolver.class),
Optional.empty(), null, /* markPassingRaceFingerprintRegistry */ null);
Long trackerID1 = new Long(1);
Long trackerID2 = new Long(2);
Long trackerID3 = new Long(3);
raceTracker1 = new RaceTrackerMock(new Long(1), regatta, raceDef1, true);
raceTracker2 = new RaceTrackerMock(new Long(2), regatta, raceDef2, true);
raceTracker3 = new RaceTrackerMock(new Long(3), regatta, raceDef3, true);
Long trackerID1 = Long.valueOf(1);
Long trackerID2 = Long.valueOf(2);
Long trackerID3 = Long.valueOf(3);
raceTracker1 = new RaceTrackerMock(Long.valueOf(1), regatta, raceDef1, true);
raceTracker2 = new RaceTrackerMock(Long.valueOf(2), regatta, raceDef2, true);
raceTracker3 = new RaceTrackerMock(Long.valueOf(3), regatta, raceDef3, true);
raceTrackerSet.add(raceTracker1);
raceTrackerSet.add(raceTracker2);
raceTrackerSet.add(raceTracker3);
@@ -8,10 +8,10 @@ import com.sap.sailing.domain.common.sharding.ShardingType;
public class ShardingLeaderBoardEncodingTest {
@Test
public void testEncoding() {
Assert.assertEquals("/leaderboard/pureascistring", ShardingType.LEADERBOARDNAME.encodeIfNeeded("pureascistring"));
Assert.assertEquals("/leaderboard/unpure_asci_string", ShardingType.LEADERBOARDNAME.encodeIfNeeded("unpure asci string"));
Assert.assertEquals("/leaderboard/c_dille", ShardingType.LEADERBOARDNAME.encodeIfNeeded("cédille"));
Assert.assertEquals("/leaderboard/Hello_World", ShardingType.LEADERBOARDNAME.encodeIfNeeded("Hello+World"));
Assert.assertEquals("/leaderboard/Hello_World_", ShardingType.LEADERBOARDNAME.encodeIfNeeded("Hello(World)"));
Assert.assertEquals("/leaderboard/pureascistring", ShardingType.LEADERBOARDNAME.encodeShardingInfo("pureascistring"));
Assert.assertEquals("/leaderboard/unpure_asci_string", ShardingType.LEADERBOARDNAME.encodeShardingInfo("unpure asci string"));
Assert.assertEquals("/leaderboard/c_dille", ShardingType.LEADERBOARDNAME.encodeShardingInfo("cédille"));
Assert.assertEquals("/leaderboard/Hello_World", ShardingType.LEADERBOARDNAME.encodeShardingInfo("Hello+World"));
Assert.assertEquals("/leaderboard/Hello_World_", ShardingType.LEADERBOARDNAME.encodeShardingInfo("Hello(World)"));
}
}