mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-04 10:09:42 +00:00
bug6060: moved measurement suppor to new bundle com.sap.sse.testutils; use in branding tests to measure client-side script size
This commit is contained in:
1 parent
3afefaefa0
commit
a6301dc0ed
29 files changed
+261
-19
No files matched your search
@@ -45,7 +45,8 @@ Require-Bundle: com.sap.sailing.domain,
|
||||
com.sap.sse.operationaltransformation
|
||||
Export-Package: com.sap.sailing.domain.test,
|
||||
com.sap.sailing.domain.test.mock
|
||||
Import-Package: org.apache.commons.math;version="2.1.0",
|
||||
Import-Package: com.sap.sse.testutils,
|
||||
org.apache.commons.math;version="2.1.0",
|
||||
org.apache.commons.math.analysis.polynomials;version="2.1.0",
|
||||
org.osgi.util.tracker
|
||||
Automatic-Module-Name: com.sap.sailing.domain.test
|
||||
@@ -11,12 +11,12 @@ import java.util.concurrent.locks.Lock;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.sap.sailing.domain.test.measurements.Measurement;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementCase;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementXMLFile;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.concurrent.LockUtil;
|
||||
import com.sap.sse.concurrent.NamedReentrantReadWriteLock;
|
||||
import com.sap.sse.testutils.Measurement;
|
||||
import com.sap.sse.testutils.MeasurementCase;
|
||||
import com.sap.sse.testutils.MeasurementXMLFile;
|
||||
|
||||
public class LockTraceTest {
|
||||
private static class LockingThread extends Thread {
|
||||
|
||||
@@ -21,10 +21,10 @@ import com.sap.sailing.domain.common.impl.BoundsImpl;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.quadtree.QuadTree;
|
||||
import com.sap.sailing.domain.common.quadtree.impl.Node;
|
||||
import com.sap.sailing.domain.test.measurements.Measurement;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementCase;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementXMLFile;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.testutils.Measurement;
|
||||
import com.sap.sse.testutils.MeasurementCase;
|
||||
import com.sap.sse.testutils.MeasurementXMLFile;
|
||||
|
||||
public class QuadTreeTest {
|
||||
private class GLatLngQuadTree extends QuadTree<Position> {
|
||||
|
||||
+3
-3
@@ -33,15 +33,15 @@ import com.sap.sailing.domain.markpassingcalculation.MarkPassingCalculator;
|
||||
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateChooserImpl;
|
||||
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateFinderImpl;
|
||||
import com.sap.sailing.domain.test.OnlineTracTracBasedTest;
|
||||
import com.sap.sailing.domain.test.measurements.Measurement;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementCase;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementXMLFile;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tractracadapter.ReceiverType;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.DegreeBearingImpl;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.testutils.Measurement;
|
||||
import com.sap.sse.testutils.MeasurementCase;
|
||||
import com.sap.sse.testutils.MeasurementXMLFile;
|
||||
|
||||
public abstract class AbstractMarkPassingTest extends OnlineTracTracBasedTest {
|
||||
private static final Logger logger = Logger.getLogger(AbstractMarkPassingTest.class.getName());
|
||||
|
||||
+3
-3
@@ -22,13 +22,13 @@ import com.sap.sailing.domain.markpassingcalculation.CandidateFinder;
|
||||
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateChooserImpl;
|
||||
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateFinderImpl;
|
||||
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateImpl;
|
||||
import com.sap.sailing.domain.test.measurements.Measurement;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementCase;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementXMLFile;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.DegreeBearingImpl;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.testutils.Measurement;
|
||||
import com.sap.sse.testutils.MeasurementCase;
|
||||
import com.sap.sse.testutils.MeasurementXMLFile;
|
||||
|
||||
public class MarkPassingCalculatorPerformanceTest extends AbstractMockedRaceMarkPassingTest {
|
||||
|
||||
|
||||
+3
-3
@@ -25,9 +25,6 @@ import com.sap.sailing.domain.markpassingcalculation.MarkPassingCalculator;
|
||||
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateChooserImpl;
|
||||
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateChooserImpl.Stats;
|
||||
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateChooserImpl.Stats.CompetitorStats;
|
||||
import com.sap.sailing.domain.test.measurements.Measurement;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementCase;
|
||||
import com.sap.sailing.domain.test.measurements.MeasurementXMLFile;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl;
|
||||
@@ -35,6 +32,9 @@ import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.testutils.Measurement;
|
||||
import com.sap.sse.testutils.MeasurementCase;
|
||||
import com.sap.sse.testutils.MeasurementXMLFile;
|
||||
|
||||
public class MarkPassingCalculatorWithTrackersOnStartBoatTest extends AbstractExportedPositionsBasedTest {
|
||||
private DynamicTrackedRaceImpl trackedRace;
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src">
|
||||
<attributes>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.sse.branding.test</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
@@ -0,0 +1,7 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
@@ -0,0 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
pluginProject.extensions=false
|
||||
resolve.requirebundle=false
|
||||
@@ -0,0 +1,16 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Test
|
||||
Bundle-SymbolicName: com.sap.sse.branding.test
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Fragment-Host: com.sap.sse.branding
|
||||
Require-Bundle: junit-jupiter-api,
|
||||
org.mockito.mockito-core;bundle-version="4.8.1",
|
||||
net.bytebuddy.byte-buddy;bundle-version="1.14.12",
|
||||
net.bytebuddy.byte-buddy-agent;bundle-version="1.14.12",
|
||||
org.objenesis;bundle-version="3.3.0"
|
||||
Automatic-Module-Name: com.sap.sse.branding.test
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Import-Package: com.sap.sse.branding.sap,
|
||||
com.sap.sse.testutils
|
||||
@@ -0,0 +1,4 @@
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>root</artifactId>
|
||||
<groupId>com.sap.sailing</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>com.sap.sse.branding.test</artifactId>
|
||||
<packaging>eclipse-test-plugin</packaging>
|
||||
</project>
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
package com.sap.sse.branding.impl;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Dictionary;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentMatchers;
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.osgi.framework.Filter;
|
||||
import org.osgi.framework.InvalidSyntaxException;
|
||||
import org.osgi.framework.ServiceReference;
|
||||
import org.osgi.util.tracker.ServiceTracker;
|
||||
|
||||
import com.sap.sse.branding.BrandingConfigurationService;
|
||||
import com.sap.sse.branding.sap.SAPBrandingConfiguration;
|
||||
import com.sap.sse.branding.shared.BrandingConfiguration;
|
||||
import com.sap.sse.testutils.Measurement;
|
||||
import com.sap.sse.testutils.MeasurementCase;
|
||||
import com.sap.sse.testutils.MeasurementXMLFile;
|
||||
|
||||
public class TestAndMeasureSizeOfSAPBranding {
|
||||
private BrandingConfiguration brandingConfiguration;
|
||||
private BrandingConfigurationService brandingConfigurationService;
|
||||
private static MeasurementXMLFile measurementFile;
|
||||
private static MeasurementCase measurementCase;
|
||||
|
||||
@BeforeAll
|
||||
public static void beforeAll() {
|
||||
measurementFile = new MeasurementXMLFile(TestAndMeasureSizeOfSAPBranding.class);
|
||||
measurementCase = measurementFile.addCase(TestAndMeasureSizeOfSAPBranding.class.getSimpleName());
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void afterAll() throws IOException {
|
||||
measurementFile.write();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@BeforeEach
|
||||
public void setUp() throws InvalidSyntaxException {
|
||||
final BundleContext dummyBundleContext = mock(BundleContext.class);
|
||||
final Filter dummyFilter = mock(Filter.class);
|
||||
when(dummyFilter.match((Dictionary<String, ?>) ArgumentMatchers.any())).thenReturn(true);
|
||||
when(dummyBundleContext.createFilter(ArgumentMatchers.anyString())).thenReturn(dummyFilter);
|
||||
brandingConfiguration = new SAPBrandingConfiguration();
|
||||
final ServiceTracker<BrandingConfiguration, BrandingConfiguration> tracker = mock(ServiceTracker.class);
|
||||
when(tracker.getService()).thenReturn(brandingConfiguration);
|
||||
when(tracker.getService(ArgumentMatchers.any(ServiceReference.class))).thenReturn(brandingConfiguration);
|
||||
final ServiceReference<BrandingConfiguration>[] serviceReferences = new ServiceReference[] { mock(ServiceReference.class) };
|
||||
when(tracker.getServiceReferences()).thenReturn(serviceReferences);
|
||||
brandingConfigurationService = new BrandingConfigurationServiceImpl(dummyBundleContext, tracker);
|
||||
brandingConfigurationService.setActiveBrandingConfigurationById(brandingConfiguration.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrandingServiceAvailability() {
|
||||
assertEquals(brandingConfiguration.getId(), brandingConfigurationService.getActiveBrandingConfiguration().getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void measureBrandingClientScriptSize() {
|
||||
final Map<String, Object> brandingProperties = brandingConfigurationService.getBrandingConfigurationPropertiesForJspContext(Optional.empty());
|
||||
final String script = (String) brandingProperties.get(BrandingConfigurationService.BrandingConfigurationProperty.SCRIPT_FOR_CLIENT_CONFIGURATION_CONTEXT_TO_DOCUMENT_JSP_PROPERTY_NAME.getPropertyName());
|
||||
measurementCase.addMeasurement(new Measurement("Branding client script size in bytes", script.length()));
|
||||
}
|
||||
}
|
||||
+7
@@ -50,6 +50,13 @@ public class BrandingConfigurationServiceImpl implements BrandingConfigurationSe
|
||||
brandingConfigurationTracker = ServiceTrackerFactory.createAndOpen(bundleContext, BrandingConfiguration.class, this);
|
||||
brandingConfigurationsByIdAndLocale = new ConcurrentHashMap<>();
|
||||
}
|
||||
|
||||
BrandingConfigurationServiceImpl(BundleContext bundleContext, ServiceTracker<BrandingConfiguration, BrandingConfiguration> brandingConfigurationTracker) {
|
||||
// for testing only
|
||||
this.bundleContext = bundleContext;
|
||||
this.brandingConfigurationTracker = brandingConfigurationTracker;
|
||||
this.brandingConfigurationsByIdAndLocale = new ConcurrentHashMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBrandingActive() {
|
||||
|
||||
@@ -178,6 +178,7 @@ public class ClientConfiguration implements BrandingConfiguration {
|
||||
public String getSailingAnalyticsReadMoreText(Optional<String> locale) {
|
||||
return sailingAnalyticsReadMoreText;
|
||||
}
|
||||
|
||||
public String getSailingAnalyticsSapSailing(Optional<String> locale) {
|
||||
return sailingAnalyticsSapSailing;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.sse.testutils</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
@@ -0,0 +1,7 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
@@ -0,0 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
pluginProject.extensions=false
|
||||
resolve.requirebundle=false
|
||||
@@ -0,0 +1,10 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Testutils
|
||||
Bundle-SymbolicName: com.sap.sse.testutils
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Export-Package: com.sap.sse.testutils
|
||||
Bundle-Vendor: SAP
|
||||
Automatic-Module-Name: com.sap.sse.testutils
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Import-Package: com.sap.sse.common
|
||||
@@ -0,0 +1,4 @@
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>root</artifactId>
|
||||
<groupId>com.sap.sailing</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>com.sap.sse.testutils</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
</project>
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.domain.test.measurements;
|
||||
package com.sap.sse.testutils;
|
||||
|
||||
/**
|
||||
* Create an instance of this class and {@link MeasurementCase#addMeasurement(Measurement) add it} to a
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.domain.test.measurements;
|
||||
package com.sap.sse.testutils;
|
||||
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.domain.test.measurements;
|
||||
package com.sap.sse.testutils;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
@@ -90,6 +90,7 @@
|
||||
<module>org.hamcrest.core</module>
|
||||
<module>com.sap.sse</module>
|
||||
<module>com.sap.sse.test</module>
|
||||
<module>com.sap.sse.testutils</module>
|
||||
<module>com.sap.sse.aicore</module>
|
||||
<module>com.sap.sse.aicore.test</module>
|
||||
<module>com.sap.sse.landscape.common</module>
|
||||
@@ -215,6 +216,7 @@
|
||||
<module>com.sap.sailing.feature.runtime</module>
|
||||
<module>com.sap.sailing.gwt.ui</module>
|
||||
<module>com.sap.sse.branding</module>
|
||||
<module>com.sap.sse.branding.test</module>
|
||||
<module>com.sap.sse.branding.sap</module>
|
||||
<module>com.sap.sailing.domain.test</module>
|
||||
<module>com.sap.sse.replication.testsupport</module>
|
||||
|
||||
Reference in new issue
Block a user