From 9bf664ba9a153a404f03c39d5ba0f99eb32c4419 Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Thu, 28 Jul 2022 15:10:47 +0200 Subject: Convert container-core to junit5 --- container-core/pom.xml | 18 +- .../com/yahoo/component/ComponentSpecTestCase.java | 14 +- .../dependencies/ordering/ChainBuilderTest.java | 38 +- .../ordering/OrderedReadyNodesTest.java | 16 +- .../chain/model/ChainsModelBuilderTest.java | 14 +- .../provider/test/ComponentRegistryTestCase.java | 19 +- .../yahoo/component/test/ComponentIdTestCase.java | 31 +- .../core/config/ApplicationBundleLoaderTest.java | 18 +- .../core/config/PlatformBundleLoaderTest.java | 16 +- .../yahoo/container/di/ConfigRetrieverTest.java | 33 +- .../java/com/yahoo/container/di/ContainerTest.java | 38 +- .../com/yahoo/container/di/ContainerTestBase.java | 17 +- .../com/yahoo/container/di/DirConfigSource.java | 20 +- .../di/componentgraph/core/ComponentGraphTest.java | 130 +++--- .../core/FallbackToGuiceInjectorTest.java | 17 +- .../componentgraph/core/ReuseComponentsTest.java | 46 +- .../di/componentgraph/cycle/CycleFinderTest.java | 16 +- .../di/componentgraph/cycle/GraphTest.java | 14 +- .../handler/AccessLogRequestHandlerTest.java | 10 +- .../yahoo/container/handler/LogHandlerTest.java | 6 +- .../com/yahoo/container/handler/LogReaderTest.java | 36 +- .../handler/VipStatusHandlerTestCase.java | 14 +- .../yahoo/container/handler/VipStatusTestCase.java | 22 +- .../handler/metrics/ErrorResponseTest.java | 8 +- .../handler/metrics/MetricsV2HandlerTest.java | 36 +- .../handler/metrics/PrometheusV1HandlerTest.java | 36 +- .../container/handler/test/MockServiceTest.java | 25 +- .../threadpool/ContainerThreadPoolImplTest.java | 51 ++- .../container/jdisc/ExtendedResponseTestCase.java | 24 +- .../yahoo/container/jdisc/HttpRequestTestCase.java | 35 +- .../container/jdisc/HttpResponseTestCase.java | 26 +- .../jdisc/LoggingRequestHandlerTestCase.java | 10 +- .../com/yahoo/container/jdisc/LoggingTestCase.java | 17 +- .../container/jdisc/RequestBuilderTestCase.java | 18 +- .../jdisc/ThreadedHttpRequestHandlerTest.java | 6 +- .../jdisc/ThreadedRequestHandlerTestCase.java | 35 +- .../jdisc/state/CoredumpGathererTest.java | 14 +- .../jdisc/state/HostLifeGathererTest.java | 6 +- .../container/jdisc/state/MetricSnapshotTest.java | 12 +- .../jdisc/state/MetricsPacketsHandlerTest.java | 36 +- .../container/jdisc/state/StateHandlerTest.java | 144 +++--- .../jdisc/state/StateHandlerTestBase.java | 8 +- .../logging/CircularArrayAccessLogKeeperTest.java | 10 +- .../yahoo/container/logging/JSONLogTestCase.java | 280 ++++++------ .../container/logging/LogFileHandlerTestCase.java | 114 +++-- .../logging/test/LogFormatterTestCase.java | 16 +- .../java/com/yahoo/jdisc/http/CookieTestCase.java | 80 ++-- .../com/yahoo/jdisc/http/HttpHeadersTestCase.java | 6 +- .../com/yahoo/jdisc/http/HttpRequestTestCase.java | 37 +- .../com/yahoo/jdisc/http/HttpResponseTestCase.java | 24 +- .../jdisc/http/filter/DiscFilterRequestTest.java | 489 ++++++++++----------- .../jdisc/http/filter/DiscFilterResponseTest.java | 39 +- .../http/filter/EmptyRequestFilterTestCase.java | 6 +- .../http/filter/EmptyResponseFilterTestCase.java | 6 +- .../jdisc/http/filter/JDiscCookieWrapperTest.java | 19 +- .../jdisc/http/filter/RequestViewImplTest.java | 8 +- .../filter/SecurityRequestFilterChainTest.java | 35 +- .../filter/SecurityResponseFilterChainTest.java | 20 +- .../jdisc/http/filter/util/FilterUtilsTest.java | 8 +- .../http/server/jetty/AccessLogRequestLogTest.java | 18 +- .../http/server/jetty/ConnectionThrottlerTest.java | 10 +- .../http/server/jetty/ConnectorFactoryTest.java | 16 +- .../jetty/ErrorResponseContentCreatorTest.java | 28 +- .../http/server/jetty/ExceptionWrapperTest.java | 8 +- .../jdisc/http/server/jetty/FilterTestCase.java | 56 +-- .../http/server/jetty/HttpRequestFactoryTest.java | 20 +- .../jetty/HttpResponseStatisticsCollectorTest.java | 18 +- .../server/jetty/HttpServerConformanceTest.java | 12 +- .../jdisc/http/server/jetty/HttpServerTest.java | 225 +++++----- .../http/server/jetty/JDiscHttpServletTest.java | 20 +- .../jdisc/http/server/jetty/SimpleHttpClient.java | 9 +- .../jetty/SslHandshakeFailedListenerTest.java | 6 +- .../http/ssl/impl/TlsContextBasedProviderTest.java | 6 +- .../java/com/yahoo/metrics/simple/BucketTest.java | 72 +-- .../java/com/yahoo/metrics/simple/CounterTest.java | 23 +- .../yahoo/metrics/simple/DimensionsCacheTest.java | 26 +- .../java/com/yahoo/metrics/simple/GaugeTest.java | 18 +- .../java/com/yahoo/metrics/simple/MetricsTest.java | 19 +- .../java/com/yahoo/metrics/simple/PointTest.java | 8 +- .../simple/jdisc/SnapshotConverterTest.java | 22 +- .../osgi/provider/model/ComponentModelTest.java | 19 +- .../com/yahoo/processing/ResponseTestCase.java | 30 +- .../execution/test/AsyncExecutionTestCase.java | 38 +- .../execution/test/ExecutionContextTestCase.java | 77 ++-- .../execution/test/FutureDataTestCase.java | 143 +++--- .../execution/test/StreamingTestCase.java | 48 +- .../handler/ProcessingHandlerTestCase.java | 295 ++++++------- .../processors/MockUserDatabaseClientTest.java | 17 +- .../AsynchronousSectionedRendererTest.java | 140 +++--- .../processing/request/CompoundNameTestCase.java | 68 ++- .../request/test/ErrorMessageTestCase.java | 74 ++-- .../request/test/PropertyMapTestCase.java | 32 +- .../processing/request/test/RequestTestCase.java | 86 ++-- .../processing/test/DocumentationTestCase.java | 9 +- .../yahoo/processing/test/ProcessingTestCase.java | 50 +-- .../src/test/java/com/yahoo/restapi/PathTest.java | 26 +- 96 files changed, 2067 insertions(+), 2072 deletions(-) (limited to 'container-core') diff --git a/container-core/pom.xml b/container-core/pom.xml index e1443702e95..ed4b05495e3 100644 --- a/container-core/pom.xml +++ b/container-core/pom.xml @@ -269,7 +269,7 @@ com.github.tomakehurst - wiremock-standalone + wiremock-jre8-standalone test @@ -277,11 +277,12 @@ testutil ${project.version} test - - - junit - junit - test + + + junit + junit + + org.assertj @@ -303,11 +304,6 @@ junit-jupiter test - - org.junit.vintage - junit-vintage-engine - test - org.mockito mockito-core diff --git a/container-core/src/test/java/com/yahoo/component/ComponentSpecTestCase.java b/container-core/src/test/java/com/yahoo/component/ComponentSpecTestCase.java index 07e1d806bfb..7d8491e4826 100644 --- a/container-core/src/test/java/com/yahoo/component/ComponentSpecTestCase.java +++ b/container-core/src/test/java/com/yahoo/component/ComponentSpecTestCase.java @@ -1,11 +1,9 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.component; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @author Arne Bergene Fossaa @@ -13,7 +11,7 @@ import static org.junit.Assert.assertTrue; public class ComponentSpecTestCase { @Test - public void testMatches() { + void testMatches() { ComponentId a = new ComponentId("test:1"); ComponentId b = new ComponentId("test:1.1.1"); ComponentId c = new ComponentId("test:2"); @@ -52,14 +50,14 @@ public class ComponentSpecTestCase { } @Test - public void testMatchesWithNamespace() { + void testMatchesWithNamespace() { ComponentId namespace = new ComponentId("namespace:2"); ComponentId a = new ComponentId("test", new Version(1), namespace); ComponentId b = new ComponentId("test:1@namespace:2"); ComponentId c = new ComponentId("test:1@namespace"); assertEquals(a, b); - assertFalse(a.equals(c)); + assertNotEquals(a, c); ComponentSpecification spec = new ComponentSpecification("test", null, namespace); assertTrue(spec.matches(a)); @@ -68,7 +66,7 @@ public class ComponentSpecTestCase { } @Test - public void testStringValue() { + void testStringValue() { assertStringValueEqualsInputSpec("a:1.0.0.alpha@namespace"); assertStringValueEqualsInputSpec("a:1.0.0.alpha"); assertStringValueEqualsInputSpec("a:1.0"); diff --git a/container-core/src/test/java/com/yahoo/component/chain/dependencies/ordering/ChainBuilderTest.java b/container-core/src/test/java/com/yahoo/component/chain/dependencies/ordering/ChainBuilderTest.java index a83de433968..6e107bf9934 100644 --- a/container-core/src/test/java/com/yahoo/component/chain/dependencies/ordering/ChainBuilderTest.java +++ b/container-core/src/test/java/com/yahoo/component/chain/dependencies/ordering/ChainBuilderTest.java @@ -8,7 +8,7 @@ import com.yahoo.component.chain.Phase; import com.yahoo.component.chain.dependencies.After; import com.yahoo.component.chain.dependencies.Before; import com.yahoo.component.chain.dependencies.Provides; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Arrays; @@ -18,8 +18,8 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Tony Vaagenes @@ -56,7 +56,7 @@ public class ChainBuilderTest { } @Test - public void testRegular() throws Exception { + void testRegular() throws Exception { ChainBuilder chainBuilder = createDependencyHandler(); addAtoG(chainBuilder); @@ -64,13 +64,13 @@ public class ChainBuilderTest { Chain res = chainBuilder.orderNodes(); Iterator i = res.components().iterator(); - for (char j=0; j< 'G' - 'A'; ++j) { - assertEquals(String.valueOf((char)('A' + j)), name(i.next())); + for (char j = 0; j < 'G' - 'A'; ++j) { + assertEquals(String.valueOf((char) ('A' + j)), name(i.next())); } } @Test - public void testCycle() throws Exception { + void testCycle() throws Exception { ChainBuilder chainBuilder = createDependencyHandler(); @@ -88,7 +88,7 @@ public class ChainBuilderTest { @Test - public void testPhaseAndSearcher() { + void testPhaseAndSearcher() { ChainBuilder depHandler = newChainBuilder(); depHandler.addPhase(new Phase("phase1", set("phase2"), Collections.emptySet())); depHandler.addPhase(new Phase("phase2", set("phase3"), set("phase1"))); @@ -103,7 +103,7 @@ public class ChainBuilderTest { } @Test - public void testInputOrderPreservedWhenProvidesOverlap() { + void testInputOrderPreservedWhenProvidesOverlap() { ChainBuilder chainBuilder = newChainBuilder(); A a1 = new A(); @@ -136,38 +136,38 @@ public class ChainBuilderTest { } @Test - public void testAfterAll1() throws Exception { + void testAfterAll1() throws Exception { ChainBuilder chainBuilder = createDependencyHandler(); ChainedComponent afterAll1 = new AfterAll(); chainBuilder.addComponent(afterAll1); addAtoG(chainBuilder); - List resolution= chainBuilder.orderNodes().components(); - assertEquals(afterAll1,resolution.get(resolution.size()-1)); + List resolution = chainBuilder.orderNodes().components(); + assertEquals(afterAll1, resolution.get(resolution.size() - 1)); } @Test - public void testAfterAll2() throws Exception { + void testAfterAll2() throws Exception { ChainBuilder chainBuilder = createDependencyHandler(); addAtoG(chainBuilder); ChainedComponent afterAll1 = new AfterAll(); chainBuilder.addComponent(afterAll1); List resolution = chainBuilder.orderNodes().components(); - assertEquals(afterAll1,resolution.get(resolution.size()-1)); + assertEquals(afterAll1, resolution.get(resolution.size() - 1)); } @Test - public void testAfterImplicitProvides() + void testAfterImplicitProvides() throws InstantiationException, IllegalAccessException { ChainBuilder chainBuilder = createDependencyHandler(); - ChainedComponent afterProvidesNothing=new AfterProvidesNothing(); - ChainedComponent providesNothing=new ProvidesNothing(); + ChainedComponent afterProvidesNothing = new AfterProvidesNothing(); + ChainedComponent providesNothing = new ProvidesNothing(); chainBuilder.addComponent(afterProvidesNothing); chainBuilder.addComponent(providesNothing); List resolution = chainBuilder.orderNodes().components(); - assertEquals(providesNothing,resolution.get(0)); - assertEquals(afterProvidesNothing,resolution.get(1)); + assertEquals(providesNothing, resolution.get(0)); + assertEquals(afterProvidesNothing, resolution.get(1)); } private ChainBuilder createDependencyHandler() { diff --git a/container-core/src/test/java/com/yahoo/component/chain/dependencies/ordering/OrderedReadyNodesTest.java b/container-core/src/test/java/com/yahoo/component/chain/dependencies/ordering/OrderedReadyNodesTest.java index c33fb71a07c..a5704b51bbe 100644 --- a/container-core/src/test/java/com/yahoo/component/chain/dependencies/ordering/OrderedReadyNodesTest.java +++ b/container-core/src/test/java/com/yahoo/component/chain/dependencies/ordering/OrderedReadyNodesTest.java @@ -1,19 +1,17 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.component.chain.dependencies.ordering; -import static org.junit.Assert.assertEquals; - import java.util.Arrays; import com.yahoo.component.chain.ChainedComponent; -import com.yahoo.component.chain.dependencies.Dependencies; -import org.junit.Before; -import org.junit.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import com.yahoo.component.chain.dependencies.Dependencies; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.component.ComponentId; - /** * Test for OrderedReadyNodes. * @@ -41,13 +39,13 @@ public class OrderedReadyNodesTest { private OrderedReadyNodes readyNodes; - @Before + @BeforeEach public void setup() { readyNodes = new OrderedReadyNodes(); } @Test - public void require_NameProviders_before_SearcherNodes() { + void require_NameProviders_before_SearcherNodes() { NameProvider nameProvider = createDummyNameProvider(100); ComponentNode componentNode = new ComponentNode<>(createFakeComponentA("a"), 1); @@ -72,7 +70,7 @@ public class OrderedReadyNodesTest { } @Test - public void require_SearcherNodes_ordered_by_insertion_order() { + void require_SearcherNodes_ordered_by_insertion_order() { int priority = 0; ComponentNode a = new ComponentNode<>(createFakeComponentB("1"), priority++); ComponentNode b = new ComponentNode<>(createFakeComponentA("2"), priority++); diff --git a/container-core/src/test/java/com/yahoo/component/chain/model/ChainsModelBuilderTest.java b/container-core/src/test/java/com/yahoo/component/chain/model/ChainsModelBuilderTest.java index 54b57789ba8..0871b36b0b3 100644 --- a/container-core/src/test/java/com/yahoo/component/chain/model/ChainsModelBuilderTest.java +++ b/container-core/src/test/java/com/yahoo/component/chain/model/ChainsModelBuilderTest.java @@ -4,15 +4,15 @@ package com.yahoo.component.chain.model; import com.yahoo.component.ComponentId; import com.yahoo.component.ComponentSpecification; import com.yahoo.container.core.ChainsConfig; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Map; import java.util.Set; import static com.yahoo.container.core.ChainsConfig.Components; import static com.yahoo.container.core.ChainsConfig.Chains; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author gjoranv @@ -20,27 +20,27 @@ import static org.junit.Assert.assertTrue; public class ChainsModelBuilderTest { @Test - public void components_are_added_to_componentModels() throws Exception { + void components_are_added_to_componentModels() throws Exception { ChainsModel model = chainsModel(); assertEquals(2, model.allComponents().size()); assertTrue(model.componentModels().containsKey(new ComponentId("componentA"))); } @Test - public void components_are_added_to_chainSpecification() throws Exception { + void components_are_added_to_chainSpecification() throws Exception { ChainsModel model = chainsModel(); ChainSpecification chainSpec = model.chainSpecifications().get(new ComponentId("chain1")).model(); assertTrue(getComponentsByName(chainSpec.componentReferences).containsKey("componentA")); } @Test - public void inherited_chains_are_added_to_chainSpecification() throws Exception { + void inherited_chains_are_added_to_chainSpecification() throws Exception { ChainsModel model = chainsModel(); ChainSpecification inheritsChain1 = model.chainSpecifications().get(new ComponentId("inheritsChain1")).model(); assertEquals(2, model.allChainsFlattened().size()); assertTrue(getComponentsByName(inheritsChain1.inheritance.chainSpecifications).containsKey("chain1")); assertTrue(getComponentsByName(inheritsChain1.inheritance.excludedComponents).containsKey("componentA")); - } + } private ChainsModel chainsModel() { ChainsConfig.Builder builder = new ChainsConfig.Builder() diff --git a/container-core/src/test/java/com/yahoo/component/provider/test/ComponentRegistryTestCase.java b/container-core/src/test/java/com/yahoo/component/provider/test/ComponentRegistryTestCase.java index 5f8fec564bc..eb7439df0ff 100644 --- a/container-core/src/test/java/com/yahoo/component/provider/test/ComponentRegistryTestCase.java +++ b/container-core/src/test/java/com/yahoo/component/provider/test/ComponentRegistryTestCase.java @@ -1,12 +1,11 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.component.provider.test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import org.junit.Before; -import org.junit.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.component.AbstractComponent; import com.yahoo.component.ComponentId; import com.yahoo.component.ComponentSpecification; @@ -48,7 +47,7 @@ public class ComponentRegistryTestCase { return new TestComponent(idInNamespace(namespace)); } - @Before + @BeforeEach public void before() { registry = new ComponentRegistry<>(); @@ -58,19 +57,19 @@ public class ComponentRegistryTestCase { } @Test - public void testAllPresent() { + void testAllPresent() { assertEquals(3, registry.getComponentCount()); } @Test - public void testIdNamespaceLookup() { + void testIdNamespaceLookup() { assertEquals(component1, registry.getComponent(idInNamespace(namespace1))); assertEquals(component2, registry.getComponent(idInNamespace(namespace2))); assertEquals(component21, registry.getComponent(idInNamespace(namespace21))); } @Test - public void testSpecNamespaceLookup() { + void testSpecNamespaceLookup() { assertEquals(component1, registry.getComponent(specInNamespace(namespace1))); // Version for namespace must match the specification exactly, so do not return version '1' when an @@ -80,7 +79,7 @@ public class ComponentRegistryTestCase { } @Test - public void testInnerComponentNotMixedWithTopLevelComponent() { + void testInnerComponentNotMixedWithTopLevelComponent() { assertNull(registry.getComponent(componentName)); TestComponent topLevel = new TestComponent(new ComponentId(componentName)); diff --git a/container-core/src/test/java/com/yahoo/component/test/ComponentIdTestCase.java b/container-core/src/test/java/com/yahoo/component/test/ComponentIdTestCase.java index 8d86010ea5a..4561c18bc3d 100644 --- a/container-core/src/test/java/com/yahoo/component/test/ComponentIdTestCase.java +++ b/container-core/src/test/java/com/yahoo/component/test/ComponentIdTestCase.java @@ -2,9 +2,9 @@ package com.yahoo.component.test; import com.yahoo.component.ComponentId; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author bratseth @@ -12,27 +12,26 @@ import static org.junit.Assert.assertEquals; public class ComponentIdTestCase { @Test - public void testFileNameConversion() { - assertFileNameEquals("a","a"); - assertFileNameEquals("a-1","a-1"); - assertFileNameEquals("a-1","a-1.0.0"); - assertFileNameEquals("a-1.0.0.qualifier","a-1.0.0.qualifier"); - assertFileNameEquals("a.b-1.0.0.qualifier","a.b-1.0.0.qualifier"); - assertFileNameEquals("a@space","a@space"); - assertFileNameEquals("a-1@space","a-1@space"); - assertFileNameEquals("a-1@space","a-1.0.0@space"); - assertFileNameEquals("a-1.0.0.qualifier@space","a-1.0.0.qualifier@space"); - assertFileNameEquals("a.b-1.0.0.qualifier@space","a.b-1.0.0.qualifier@space"); + void testFileNameConversion() { + assertFileNameEquals("a", "a"); + assertFileNameEquals("a-1", "a-1"); + assertFileNameEquals("a-1", "a-1.0.0"); + assertFileNameEquals("a-1.0.0.qualifier", "a-1.0.0.qualifier"); + assertFileNameEquals("a.b-1.0.0.qualifier", "a.b-1.0.0.qualifier"); + assertFileNameEquals("a@space", "a@space"); + assertFileNameEquals("a-1@space", "a-1@space"); + assertFileNameEquals("a-1@space", "a-1.0.0@space"); + assertFileNameEquals("a-1.0.0.qualifier@space", "a-1.0.0.qualifier@space"); + assertFileNameEquals("a.b-1.0.0.qualifier@space", "a.b-1.0.0.qualifier@space"); } /** Takes two id file names as input */ private void assertFileNameEquals(String expected,String initial) { - assertEquals("'" + initial + "' became id '" + ComponentId.fromFileName(initial) + "' which should become '" + expected + "'", - expected,ComponentId.fromFileName(initial).toFileName()); + assertEquals(expected,ComponentId.fromFileName(initial).toFileName(),"'" + initial + "' became id '" + ComponentId.fromFileName(initial) + "' which should become '" + expected + "'"); } @Test - public void testCompareWithNameSpace() { + void testCompareWithNameSpace() { ComponentId withNS = ComponentId.fromString("foo@ns"); ComponentId withoutNS = ComponentId.fromString("foo"); // Should be less than withNs diff --git a/container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java b/container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java index 4f6fea76828..cf8cc6053cd 100644 --- a/container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java +++ b/container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java @@ -5,16 +5,16 @@ import com.yahoo.config.FileReference; import com.yahoo.filedistribution.fileacquirer.FileAcquirer; import com.yahoo.filedistribution.fileacquirer.MockFileAcquirer; import com.yahoo.osgi.Osgi; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.osgi.framework.Bundle; import java.util.List; import java.util.Map; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author gjoranv @@ -29,7 +29,7 @@ public class ApplicationBundleLoaderTest { private ApplicationBundleLoader bundleLoader; private TestOsgi osgi; - @Before + @BeforeEach public void setup() { osgi = new TestOsgi(testBundles()); var bundleInstaller = new TestBundleInstaller(MockFileAcquirer.returnFile(null)); @@ -38,12 +38,12 @@ public class ApplicationBundleLoaderTest { } @Test - public void bundles_are_installed_and_started() { + void bundles_are_installed_and_started() { bundleLoader.useBundles(List.of(BUNDLE_1_REF)); assertEquals(1, osgi.getInstalledBundles().size()); // The bundle is installed and started - TestBundle installedBundle = (TestBundle)osgi.getInstalledBundles().get(0); + TestBundle installedBundle = (TestBundle) osgi.getInstalledBundles().get(0); assertEquals(BUNDLE_1.getSymbolicName(), installedBundle.getSymbolicName()); assertTrue(installedBundle.started); @@ -53,7 +53,7 @@ public class ApplicationBundleLoaderTest { } @Test - public void new_bundle_can_be_installed_in_reconfig() { + void new_bundle_can_be_installed_in_reconfig() { bundleLoader.useBundles(List.of(BUNDLE_1_REF)); Set obsoleteBundles = bundleLoader.useBundles(List.of(BUNDLE_1_REF, BUNDLE_2_REF)); @@ -78,7 +78,7 @@ public class ApplicationBundleLoaderTest { } @Test - public void unused_bundle_is_marked_obsolete_after_reconfig() { + void unused_bundle_is_marked_obsolete_after_reconfig() { bundleLoader.useBundles(List.of(BUNDLE_1_REF)); Set obsoleteBundles = bundleLoader.useBundles(List.of(BUNDLE_2_REF)); diff --git a/container-core/src/test/java/com/yahoo/container/core/config/PlatformBundleLoaderTest.java b/container-core/src/test/java/com/yahoo/container/core/config/PlatformBundleLoaderTest.java index 3cd9779f878..21d99915c5c 100644 --- a/container-core/src/test/java/com/yahoo/container/core/config/PlatformBundleLoaderTest.java +++ b/container-core/src/test/java/com/yahoo/container/core/config/PlatformBundleLoaderTest.java @@ -2,15 +2,15 @@ package com.yahoo.container.core.config; import com.yahoo.osgi.Osgi; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.osgi.framework.Bundle; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author gjoranv @@ -25,25 +25,25 @@ public class PlatformBundleLoaderTest { private PlatformBundleLoader bundleLoader; private TestOsgi osgi; - @Before + @BeforeEach public void setup() { osgi = new TestOsgi(testBundles()); bundleLoader = new PlatformBundleLoader(osgi, new TestBundleInstaller()); } @Test - public void bundles_are_installed_and_started() { + void bundles_are_installed_and_started() { bundleLoader.useBundles(List.of(BUNDLE_1_REF)); assertEquals(1, osgi.getInstalledBundles().size()); // The bundle is installed and started - TestBundle installedBundle = (TestBundle)osgi.getInstalledBundles().get(0); + TestBundle installedBundle = (TestBundle) osgi.getInstalledBundles().get(0); assertEquals(BUNDLE_1.getSymbolicName(), installedBundle.getSymbolicName()); assertTrue(installedBundle.started); } @Test - public void bundles_cannot_be_added_by_later_calls() { + void bundles_cannot_be_added_by_later_calls() { bundleLoader.useBundles(List.of(BUNDLE_1_REF)); bundleLoader.useBundles(List.of(BUNDLE_2_REF)); // Should be a NOP diff --git a/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java b/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java index 695efbf7c17..942555e391d 100644 --- a/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java +++ b/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java @@ -9,18 +9,20 @@ import com.yahoo.container.di.ConfigRetriever.BootstrapConfigs; import com.yahoo.container.di.ConfigRetriever.ComponentsConfigs; import com.yahoo.container.di.ConfigRetriever.ConfigSnapshot; import com.yahoo.vespa.config.ConfigKey; -import org.junit.After; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import java.io.File; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; /** * @@ -32,18 +34,21 @@ public class ConfigRetrieverTest { private DirConfigSource dirConfigSource = null; - @Before + @TempDir + File tmpDir; + + @BeforeEach public void setup() { - dirConfigSource = new DirConfigSource("ConfigRetrieverTest-"); + dirConfigSource = new DirConfigSource(tmpDir, "ConfigRetrieverTest-"); } - @After + @AfterEach public void cleanup() { dirConfigSource.cleanup(); } @Test - public void require_that_bootstrap_configs_come_first() { + void require_that_bootstrap_configs_come_first() { writeConfigs(); ConfigRetriever retriever = createConfigRetriever(); ConfigSnapshot bootstrapConfigs = retriever.getConfigs(Collections.emptySet(), 0, true); @@ -53,7 +58,7 @@ public class ConfigRetrieverTest { @Test @SuppressWarnings("unused") - public void require_that_components_comes_after_bootstrap() { + void require_that_components_comes_after_bootstrap() { writeConfigs(); ConfigRetriever retriever = createConfigRetriever(); ConfigSnapshot bootstrapConfigs = retriever.getConfigs(Collections.emptySet(), 0, true); @@ -68,7 +73,7 @@ public class ConfigRetrieverTest { } } - @Ignore + @Disabled @SuppressWarnings("unused") public void require_exception_upon_modified_components_keys_without_bootstrap() { @@ -89,7 +94,7 @@ public class ConfigRetrieverTest { } @Test - public void require_that_empty_components_keys_after_bootstrap_returns_components_configs() { + void require_that_empty_components_keys_after_bootstrap_returns_components_configs() { writeConfigs(); ConfigRetriever retriever = createConfigRetriever(); assertTrue(retriever.getConfigs(Collections.emptySet(), 0, true) instanceof BootstrapConfigs); diff --git a/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java b/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java index 30dc4f313e4..04091c25ad6 100644 --- a/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java +++ b/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java @@ -9,8 +9,8 @@ import com.yahoo.container.di.componentgraph.Provider; import com.yahoo.container.di.componentgraph.core.ComponentGraph; import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.SimpleComponent; import com.yahoo.container.di.componentgraph.core.ComponentNode.ComponentConstructorException; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.osgi.framework.Bundle; import java.util.Collection; @@ -20,13 +20,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; /** * @author Tony Vaagenes @@ -36,7 +30,7 @@ import static org.junit.Assert.fail; public class ContainerTest extends ContainerTestBase { @Test - public void components_can_be_created_from_config() { + void components_can_be_created_from_config() { writeBootstrapConfigs(); dirConfigSource.writeConfig("test", "stringVal \"myString\""); @@ -49,7 +43,7 @@ public class ContainerTest extends ContainerTestBase { } @Test - public void components_are_reconfigured_after_config_update_without_bootstrap_configs() { + void components_are_reconfigured_after_config_update_without_bootstrap_configs() { writeBootstrapConfigs(); dirConfigSource.writeConfig("test", "stringVal \"original\""); @@ -71,7 +65,7 @@ public class ContainerTest extends ContainerTestBase { } @Test - public void graph_is_updated_after_bootstrap_update() { + void graph_is_updated_after_bootstrap_update() { dirConfigSource.writeConfig("test", "stringVal \"original\""); writeBootstrapConfigs("id1"); @@ -99,7 +93,7 @@ public class ContainerTest extends ContainerTestBase { } @Test - public void component_is_deconstructed_when_not_reused() { + void component_is_deconstructed_when_not_reused() { writeBootstrapConfigs("id1", DestructableComponent.class); Container container = newContainer(dirConfigSource); @@ -113,9 +107,9 @@ public class ContainerTest extends ContainerTestBase { assertTrue(componentToDestruct.deconstructed); } - @Ignore // because logAndDie is impossible(?) to verify programmatically + @Disabled // because logAndDie is impossible(?) to verify programmatically @Test - public void manually_verify_what_happens_when_first_graph_contains_component_that_throws_exception_in_ctor() { + void manually_verify_what_happens_when_first_graph_contains_component_that_throws_exception_in_ctor() { writeBootstrapConfigs("thrower", ComponentThrowingExceptionInConstructor.class); Container container = newContainer(dirConfigSource); try { @@ -127,7 +121,7 @@ public class ContainerTest extends ContainerTestBase { } @Test - public void previous_graph_is_retained_when_new_graph_contains_component_that_throws_exception_in_ctor() { + void previous_graph_is_retained_when_new_graph_contains_component_that_throws_exception_in_ctor() { ComponentEntry simpleComponentEntry = new ComponentEntry("simpleComponent", SimpleComponent.class); writeBootstrapConfigs(simpleComponentEntry); @@ -161,7 +155,7 @@ public class ContainerTest extends ContainerTestBase { } @Test - public void previous_graph_is_retained_when_new_graph_throws_exception_for_missing_config() { + void previous_graph_is_retained_when_new_graph_throws_exception_for_missing_config() { ComponentEntry simpleComponentEntry = new ComponentEntry("simpleComponent", SimpleComponent.class); writeBootstrapConfigs(simpleComponentEntry); @@ -185,7 +179,7 @@ public class ContainerTest extends ContainerTestBase { } @Test - public void getNewComponentGraph_hangs_waiting_for_valid_config_after_invalid_config() throws Exception { + void getNewComponentGraph_hangs_waiting_for_valid_config_after_invalid_config() throws Exception { dirConfigSource.writeConfig("test", "stringVal \"original\""); writeBootstrapConfigs("myId", ComponentTakingConfig.class); @@ -196,7 +190,7 @@ public class ContainerTest extends ContainerTestBase { container.reloadConfig(2); assertThrows(IllegalArgumentException.class, - () -> getNewComponentGraph(container, currentGraph)); + () -> getNewComponentGraph(container, currentGraph)); ExecutorService exec = Executors.newFixedThreadPool(1); Future newGraph = exec.submit(() -> getNewComponentGraph(container, currentGraph)); @@ -215,7 +209,7 @@ public class ContainerTest extends ContainerTestBase { } @Test - public void providers_are_destructed() { + void providers_are_destructed() { writeBootstrapConfigs("id1", DestructableProvider.class); ComponentDeconstructor deconstructor = (generation, components, bundles) -> { @@ -226,7 +220,7 @@ public class ContainerTest extends ContainerTestBase { ((Provider) component).deconstruct(); } }); - if (! bundles.isEmpty()) throw new IllegalArgumentException("This test should not use bundles"); + if (!bundles.isEmpty()) throw new IllegalArgumentException("This test should not use bundles"); }; Container container = newContainer(dirConfigSource, deconstructor); @@ -242,7 +236,7 @@ public class ContainerTest extends ContainerTestBase { } @Test - public void providers_are_invoked_only_when_needed() { + void providers_are_invoked_only_when_needed() { writeBootstrapConfigs("id1", FailOnGetProvider.class); Container container = newContainer(dirConfigSource); diff --git a/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java b/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java index e7f12d3f228..4383bd08f71 100644 --- a/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java +++ b/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java @@ -7,10 +7,12 @@ import com.yahoo.config.FileReference; import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.container.di.ContainerTest.ComponentTakingConfig; import com.yahoo.container.di.componentgraph.core.ComponentGraph; -import org.junit.After; -import org.junit.Before; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.io.TempDir; import org.osgi.framework.Bundle; +import java.io.File; import java.util.Collection; import java.util.Set; @@ -26,17 +28,20 @@ public class ContainerTestBase { private ComponentGraph componentGraph; protected DirConfigSource dirConfigSource = null; - @Before + @TempDir + File tmpDir; + + @BeforeEach public void setup() { - dirConfigSource = new DirConfigSource("ContainerTest-"); + dirConfigSource = new DirConfigSource(tmpDir, "ContainerTest-"); } - @After + @AfterEach public void cleanup() { dirConfigSource.cleanup(); } - @Before + @BeforeEach public void createGraph() { componentGraph = new ComponentGraph(0); } diff --git a/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java b/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java index 43b2c8ad8e6..db7e93f7c6e 100644 --- a/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java +++ b/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java @@ -3,7 +3,6 @@ package com.yahoo.container.di; import com.yahoo.config.subscription.ConfigSource; import com.yahoo.config.subscription.ConfigSourceSet; -import org.junit.rules.TemporaryFolder; import java.io.File; import java.io.FileOutputStream; @@ -18,15 +17,16 @@ import java.util.Random; */ public class DirConfigSource { - private final TemporaryFolder tempFolder = createTemporaryFolder(); + private final File tempFolder; public final ConfigSource configSource; - public DirConfigSource(String testSourcePrefix) { + public DirConfigSource(File tmpDir, String testSourcePrefix) { + this.tempFolder = tmpDir; this.configSource = new ConfigSourceSet(testSourcePrefix + new Random().nextLong()); } public void writeConfig(String name, String contents) { - File file = new File(tempFolder.getRoot(), name + ".cfg"); + File file = new File(tempFolder, name + ".cfg"); if (!file.exists()) { try { file.createNewFile(); @@ -39,7 +39,7 @@ public class DirConfigSource { } public String configId() { - return "dir:" + tempFolder.getRoot().getPath(); + return "dir:" + tempFolder.getPath(); } public ConfigSource configSource() { @@ -58,14 +58,4 @@ public class DirConfigSource { } } - private static TemporaryFolder createTemporaryFolder() { - TemporaryFolder folder = new TemporaryFolder(); - try { - folder.create(); - } catch (IOException e) { - throw new RuntimeException(e); - } - return folder; - } - } diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java index 5abb96527bd..c21c1b35782 100644 --- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java +++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java @@ -18,7 +18,7 @@ import com.yahoo.config.test.Test2Config; import com.yahoo.config.test.TestConfig; import com.yahoo.container.di.componentgraph.Provider; import com.yahoo.vespa.config.ConfigKey; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.lang.annotation.Annotation; import java.util.Collections; @@ -30,13 +30,7 @@ import java.util.concurrent.Executors; import java.util.function.Supplier; import static com.yahoo.container.di.componentgraph.core.ComponentGraph.isBindingAnnotation; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; /** * @author gjoranv @@ -65,7 +59,7 @@ public class ComponentGraphTest { } @Test - public void component_taking_config_can_be_instantiated() { + void component_taking_config_can_be_instantiated() { ComponentGraph componentGraph = new ComponentGraph(); String configId = "raw:stringVal \"test-value\""; Node componentNode = mockComponentNode(ComponentTakingConfig.class, configId); @@ -80,7 +74,7 @@ public class ComponentGraphTest { } @Test - public void all_created_components_are_returned_in_reverse_topological_order() { + void all_created_components_are_returned_in_reverse_topological_order() { for (int i = 0; i < 10; i++) { Node innerComponent = mockComponentNode(SimpleComponent.class); Node middleComponent = mockComponentNode(ComponentTakingComponent.class); @@ -97,12 +91,12 @@ public class ComponentGraphTest { outerComponent.constructInstance(); assertEquals(List.of(outerComponent.constructedInstance().get(), middleComponent.constructedInstance().get(), innerComponent.constructedInstance().get()), - componentGraph.allConstructedComponentsAndProviders()); + componentGraph.allConstructedComponentsAndProviders()); } } @Test - public void component_can_be_explicitly_injected_into_another_component() { + void component_can_be_explicitly_injected_into_another_component() { Node injectedComponent = mockComponentNode(SimpleComponent.class); Node targetComponent = mockComponentNode(ComponentTakingComponent.class); targetComponent.inject(injectedComponent); @@ -121,7 +115,7 @@ public class ComponentGraphTest { } @Test - public void explicitly_injected_components_may_be_unused() { + void explicitly_injected_components_may_be_unused() { Node notUsingInjected = mockComponentNode(SimpleComponent.class); Node injectedComponent = mockComponentNode(SimpleComponent2.class); notUsingInjected.inject(injectedComponent); @@ -136,7 +130,7 @@ public class ComponentGraphTest { } @Test - public void interface_implementation_can_be_injected() { + void interface_implementation_can_be_injected() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(ComponentImpl.class)); componentGraph.add(mockComponentNode(ComponentTakingInterface.class)); @@ -147,7 +141,7 @@ public class ComponentGraphTest { } @Test - public void private_class_with_public_ctor_can_be_instantiated() { + void private_class_with_public_ctor_can_be_instantiated() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(PrivateClassComponent.class)); componentGraph.complete(); @@ -157,7 +151,7 @@ public class ComponentGraphTest { } @Test - public void all_components_of_a_type_can_be_injected() { + void all_components_of_a_type_can_be_injected() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(SimpleComponent.class)); componentGraph.add(mockComponentNode(SimpleComponent.class)); @@ -170,7 +164,7 @@ public class ComponentGraphTest { } @Test - public void empty_component_registry_can_be_injected() { + void empty_component_registry_can_be_injected() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(ComponentTakingAllSimpleComponents.class)); componentGraph.complete(); @@ -180,7 +174,7 @@ public class ComponentGraphTest { } @Test - public void component_registry_with_wildcard_upper_bound_can_be_injected() { + void component_registry_with_wildcard_upper_bound_can_be_injected() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(SimpleComponent.class)); componentGraph.add(mockComponentNode(SimpleDerivedComponent.class)); @@ -192,22 +186,24 @@ public class ComponentGraphTest { assertEquals(2, instance.simpleComponents.allComponents().size()); } - @Test(expected = RuntimeException.class) - public void require_exception_when_injecting_registry_with_unknown_type_variable() { - @SuppressWarnings("rawtypes") - Class clazz = ComponentTakingAllComponentsWithTypeVariable.class; + @Test + void require_exception_when_injecting_registry_with_unknown_type_variable() { + assertThrows(RuntimeException.class, () -> { + @SuppressWarnings("rawtypes") + Class clazz = ComponentTakingAllComponentsWithTypeVariable.class; - ComponentGraph componentGraph = new ComponentGraph(); - componentGraph.add(mockComponentNode(SimpleComponent.class)); - componentGraph.add(mockComponentNode(SimpleDerivedComponent.class)); - componentGraph.add(mockComponentNode(clazz)); - componentGraph.complete(); + ComponentGraph componentGraph = new ComponentGraph(); + componentGraph.add(mockComponentNode(SimpleComponent.class)); + componentGraph.add(mockComponentNode(SimpleDerivedComponent.class)); + componentGraph.add(mockComponentNode(clazz)); + componentGraph.complete(); - componentGraph.getInstance(clazz); + componentGraph.getInstance(clazz); + }); } @Test - public void components_are_shared() { + void components_are_shared() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(SimpleComponent.class)); componentGraph.complete(); @@ -218,7 +214,7 @@ public class ComponentGraphTest { } @Test - public void singleton_components_can_be_injected() { + void singleton_components_can_be_injected() { ComponentGraph componentGraph = new ComponentGraph(); String configId = "raw:stringVal \"test-value\""; @@ -233,17 +229,19 @@ public class ComponentGraphTest { assertEquals("test-value", injected.config.stringVal()); } - @Test(expected = RuntimeException.class) - public void require_error_when_multiple_components_match_a_singleton_dependency() { - ComponentGraph componentGraph = new ComponentGraph(); - componentGraph.add(mockComponentNode(SimpleDerivedComponent.class)); - componentGraph.add(mockComponentNode(SimpleComponent.class)); - componentGraph.add(mockComponentNode(ComponentTakingComponent.class)); - componentGraph.complete(); + @Test + void require_error_when_multiple_components_match_a_singleton_dependency() { + assertThrows(RuntimeException.class, () -> { + ComponentGraph componentGraph = new ComponentGraph(); + componentGraph.add(mockComponentNode(SimpleDerivedComponent.class)); + componentGraph.add(mockComponentNode(SimpleComponent.class)); + componentGraph.add(mockComponentNode(ComponentTakingComponent.class)); + componentGraph.complete(); + }); } @Test - public void named_component_can_be_injected() { + void named_component_can_be_injected() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(SimpleComponent.class)); componentGraph.add(mockComponentNode(SimpleComponent.class, Names.named("named-test"))); @@ -252,7 +250,7 @@ public class ComponentGraphTest { } @Test - public void config_keys_can_be_retrieved() { + void config_keys_can_be_retrieved() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(ComponentTakingConfig.class, "raw:stringVal \"component1\"")); componentGraph.add(mockComponentNode(ComponentTakingConfig.class, "raw:stringVal \"component2\"")); @@ -269,7 +267,7 @@ public class ComponentGraphTest { } @Test - public void providers_can_be_instantiated() { + void providers_can_be_instantiated() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(ExecutorProvider.class)); componentGraph.complete(); @@ -278,7 +276,7 @@ public class ComponentGraphTest { } @Test - public void providers_can_be_inherited() { + void providers_can_be_inherited() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(DerivedExecutorProvider.class)); componentGraph.complete(); @@ -287,7 +285,7 @@ public class ComponentGraphTest { } @Test - public void providers_can_deliver_a_new_instance_for_each_component() { + void providers_can_deliver_a_new_instance_for_each_component() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(NewIntProvider.class)); componentGraph.complete(); @@ -299,7 +297,7 @@ public class ComponentGraphTest { } @Test - public void providers_can_be_injected_explicitly() { + void providers_can_be_injected_explicitly() { ComponentGraph componentGraph = new ComponentGraph(); Node componentTakingExecutor = mockComponentNode(ComponentTakingExecutor.class); @@ -316,7 +314,7 @@ public class ComponentGraphTest { } @Test - public void global_providers_can_be_injected() { + void global_providers_can_be_injected() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(ComponentTakingExecutor.class)); @@ -327,18 +325,20 @@ public class ComponentGraphTest { assertNotNull(componentGraph.getInstance(ComponentTakingExecutor.class)); } - @Test(expected = RuntimeException.class) - public void throw_if_multiple_global_providers_exist() { - ComponentGraph componentGraph = new ComponentGraph(); + @Test + void throw_if_multiple_global_providers_exist() { + assertThrows(RuntimeException.class, () -> { + ComponentGraph componentGraph = new ComponentGraph(); - componentGraph.add(mockComponentNode(ExecutorProvider.class)); - componentGraph.add(mockComponentNode(ExecutorProvider.class)); - componentGraph.add(mockComponentNode(ComponentTakingExecutor.class)); - componentGraph.complete(); + componentGraph.add(mockComponentNode(ExecutorProvider.class)); + componentGraph.add(mockComponentNode(ExecutorProvider.class)); + componentGraph.add(mockComponentNode(ComponentTakingExecutor.class)); + componentGraph.complete(); + }); } @Test - public void provider_is_not_used_when_component_of_provided_class_exists() { + void provider_is_not_used_when_component_of_provided_class_exists() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(SimpleComponent.class)); @@ -352,13 +352,13 @@ public class ComponentGraphTest { //TODO: move @Test - public void check_if_annotation_is_a_binding_annotation() { + void check_if_annotation_is_a_binding_annotation() { assertTrue(isBindingAnnotation(Names.named("name"))); assertFalse(isBindingAnnotation(Named.class.getAnnotations()[0])); } @Test - public void cycles_gives_exception() { + void cycles_gives_exception() { ComponentGraph componentGraph = new ComponentGraph(); Node node1 = mockComponentNode(ComponentCausingCycle.class); @@ -379,18 +379,20 @@ public class ComponentGraphTest { } } - @Test(expected = IllegalArgumentException.class) - public void abstract_classes_are_rejected() { - new ComponentNode(ComponentId.fromString("Test"), "", AbstractClass.class); + @Test + void abstract_classes_are_rejected() { + assertThrows(IllegalArgumentException.class, () -> { + new ComponentNode(ComponentId.fromString("Test"), "", AbstractClass.class); + }); } @Test - public void inject_constructor_is_preferred() { + void inject_constructor_is_preferred() { assertThatComponentCanBeCreated(ComponentWithInjectConstructor.class); } @Test - public void constructor_with_most_parameters_is_preferred() { + void constructor_with_most_parameters_is_preferred() { assertThatComponentCanBeCreated(ComponentWithMultipleConstructors.class); } @@ -407,7 +409,7 @@ public class ComponentGraphTest { } @Test - public void require_fallback_to_child_injector() { + void require_fallback_to_child_injector() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(ComponentTakingExecutor.class)); @@ -417,7 +419,7 @@ public class ComponentGraphTest { } @Test - public void child_injector_can_inject_multiple_instances_for_same_key() { + void child_injector_can_inject_multiple_instances_for_same_key() { Pair> graph = buildGraphWithChildInjector(Executors::newSingleThreadExecutor); int graphSize = graph.getFirst(); Executor executorA = graph.getSecond().getFirst(); @@ -428,7 +430,7 @@ public class ComponentGraphTest { } @Test - public void components_injected_via_child_injector_can_be_shared() { + void components_injected_via_child_injector_can_be_shared() { Executor commonExecutor = Executors.newSingleThreadExecutor(); Pair> graph = buildGraphWithChildInjector(() -> commonExecutor); int graphSize = graph.getFirst(); @@ -462,7 +464,7 @@ public class ComponentGraphTest { } @Test - public void providers_can_be_reused() { + void providers_can_be_reused() { ComponentGraph oldGraph = createReusingGraph(); Executor executor = oldGraph.getInstance(Executor.class); @@ -483,7 +485,7 @@ public class ComponentGraphTest { } @Test - public void component_id_can_be_injected() { + void component_id_can_be_injected() { String componentId = "myId:1.2@namespace"; ComponentGraph componentGraph = new ComponentGraph(); diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java index 1e3d67ed463..878c245a708 100644 --- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java +++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java @@ -11,18 +11,15 @@ import com.yahoo.component.AbstractComponent; import com.yahoo.component.ComponentId; import com.yahoo.config.ConfigInstance; import com.yahoo.vespa.config.ConfigKey; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.HashMap; import java.util.Map; import java.util.concurrent.Executor; import java.util.concurrent.Executors; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; /** * @author Tony Vaagenes @@ -36,7 +33,7 @@ public class FallbackToGuiceInjectorTest { private final Map, ConfigInstance> configs = new HashMap<>(); - @Before + @BeforeEach public void createGraph() { injector = Guice.createInjector(); componentGraph = new ComponentGraph(0); @@ -70,7 +67,7 @@ public class FallbackToGuiceInjectorTest { } @Test - public void guice_injector_is_used_when_no_global_component_exists() { + void guice_injector_is_used_when_no_global_component_exists() { setInjector( Guice.createInjector(new AbstractModule() { @Override @@ -89,7 +86,7 @@ public class FallbackToGuiceInjectorTest { } @Test - public void guice_injector_creates_a_new_instance_with_default_ctor_when_no_explicit_binding_exists() { + void guice_injector_creates_a_new_instance_with_default_ctor_when_no_explicit_binding_exists() { setInjector(emptyGuiceInjector()); register(ComponentTakingDefaultString.class); complete(); @@ -99,7 +96,7 @@ public class FallbackToGuiceInjectorTest { } @Test - public void guice_injector_fails_when_no_explicit_binding_exists_and_class_has_no_default_ctor() { + void guice_injector_fails_when_no_explicit_binding_exists_and_class_has_no_default_ctor() { setInjector(emptyGuiceInjector()); register(ComponentThatCannotBeConstructed.class); try { diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java index 2215fcdf4dd..edd06e37e64 100644 --- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java +++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java @@ -14,16 +14,14 @@ import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.ExecutorPro import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.SimpleComponent; import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.SimpleComponent2; import com.yahoo.vespa.config.ConfigKey; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Collections; import java.util.concurrent.Executor; import java.util.function.Function; import java.util.function.Supplier; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; +import static org.junit.jupiter.api.Assertions.*; /** * @author gjoranv @@ -32,7 +30,7 @@ import static org.junit.Assert.assertSame; */ public class ReuseComponentsTest { @Test - public void require_that_component_is_reused_when_componentNode_is_unmodified() { + void require_that_component_is_reused_when_componentNode_is_unmodified() { reuseAndTest(SimpleComponent.class, SimpleComponent.class); reuseAndTest(ExecutorProvider.class, Executor.class); } @@ -48,23 +46,25 @@ public class ReuseComponentsTest { assertSame(instance2, instance); } - @Test(expected = IllegalStateException.class) - public void require_that_component_is_not_reused_when_class_is_changed() { - ComponentGraph graph = buildGraphAndSetNoConfigs(SimpleComponent.class); - SimpleComponent instance = getComponent(graph, SimpleComponent.class); - - ComponentGraph newGraph = buildGraphAndSetNoConfigs(SimpleComponent2.class); - newGraph.reuseNodes(graph); - SimpleComponent2 instance2 = getComponent(newGraph, SimpleComponent2.class); - - assertEquals(instance2.getId(),instance.getId()); - @SuppressWarnings("unused") - SimpleComponent throwsException = getComponent(newGraph, SimpleComponent.class); + @Test + void require_that_component_is_not_reused_when_class_is_changed() { + assertThrows(IllegalStateException.class, () -> { + ComponentGraph graph = buildGraphAndSetNoConfigs(SimpleComponent.class); + SimpleComponent instance = getComponent(graph, SimpleComponent.class); + + ComponentGraph newGraph = buildGraphAndSetNoConfigs(SimpleComponent2.class); + newGraph.reuseNodes(graph); + SimpleComponent2 instance2 = getComponent(newGraph, SimpleComponent2.class); + + assertEquals(instance2.getId(), instance.getId()); + @SuppressWarnings("unused") + SimpleComponent throwsException = getComponent(newGraph, SimpleComponent.class); + }); } @SuppressWarnings("deprecation") @Test - public void require_that_component_is_not_reused_when_config_is_changed() { + void require_that_component_is_not_reused_when_config_is_changed() { Class componentClass = ComponentTakingConfig.class; ComponentGraph graph = buildGraph(componentClass); @@ -83,7 +83,7 @@ public class ReuseComponentsTest { @SuppressWarnings("deprecation") @Test - public void require_that_component_is_not_reused_when_injected_component_is_changed() { + void require_that_component_is_not_reused_when_injected_component_is_changed() { Function buildGraph = config -> { ComponentGraph graph = new ComponentGraph(); @@ -115,7 +115,7 @@ public class ReuseComponentsTest { } @Test - public void require_that_component_is_not_reused_when_injected_component_registry_has_one_component_removed() { + void require_that_component_is_not_reused_when_injected_component_registry_has_one_component_removed() { Function buildGraph = useBothInjectedComponents -> { ComponentGraph graph = new ComponentGraph(); graph.add(mockComponentNode(ComponentTakingAllSimpleComponents.class, "root_component")); @@ -148,7 +148,7 @@ public class ReuseComponentsTest { @SuppressWarnings("deprecation") @Test - public void require_that_injected_component_is_reused_even_when_dependent_component_is_changed() { + void require_that_injected_component_is_reused_even_when_dependent_component_is_changed() { Function buildGraph = config -> { ComponentGraph graph = new ComponentGraph(); @@ -183,7 +183,7 @@ public class ReuseComponentsTest { } @Test - public void require_that_node_depending_on_guice_node_is_reused() { + void require_that_node_depending_on_guice_node_is_reused() { Supplier makeGraph = () -> { ComponentGraph graph = new ComponentGraph(); graph.add(mockComponentNode(ComponentTakingExecutor.class, "dummyId")); @@ -202,7 +202,7 @@ public class ReuseComponentsTest { } @Test - public void require_that_node_equals_only_checks_first_level_components_to_inject() { + void require_that_node_equals_only_checks_first_level_components_to_inject() { Function createNodeWithInjectedNodeWithInjectedNode = indirectlyInjectedComponentId -> { ComponentNode targetComponent = mockComponentNode(SimpleComponent.class, "target"); ComponentNode directlyInjectedComponent = mockComponentNode(SimpleComponent.class, "directlyInjected"); diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java index 65fbdc578aa..b7ce61c2f1a 100644 --- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java +++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java @@ -2,7 +2,7 @@ package com.yahoo.container.di.componentgraph.cycle; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.List; @@ -10,7 +10,7 @@ import static com.yahoo.container.di.componentgraph.cycle.CycleFinderTest.Vertic import static com.yahoo.container.di.componentgraph.cycle.CycleFinderTest.Vertices.B; import static com.yahoo.container.di.componentgraph.cycle.CycleFinderTest.Vertices.C; import static com.yahoo.container.di.componentgraph.cycle.CycleFinderTest.Vertices.D; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author gjoranv @@ -20,7 +20,7 @@ public class CycleFinderTest { enum Vertices {A, B, C, D} @Test - public void graph_without_cycles_returns_no_cycle() { + void graph_without_cycles_returns_no_cycle() { var graph = new Graph(); graph.edge(A, B); graph.edge(B, C); @@ -32,7 +32,7 @@ public class CycleFinderTest { } @Test - public void graph_with_cycle_returns_cycle() { + void graph_with_cycle_returns_cycle() { var graph = new Graph(); graph.edge(A, B); graph.edge(B, C); @@ -43,7 +43,7 @@ public class CycleFinderTest { } @Test - public void graph_with_self_referencing_vertex_returns_cycle() { + void graph_with_self_referencing_vertex_returns_cycle() { var graph = new Graph(); graph.edge(A, A); @@ -52,7 +52,7 @@ public class CycleFinderTest { } @Test - public void leading_nodes_are_stripped_from_cycle() { + void leading_nodes_are_stripped_from_cycle() { var graph = new Graph(); graph.edge(A, B); graph.edge(B, C); @@ -63,7 +63,7 @@ public class CycleFinderTest { } @Test - public void findCycle_is_idempotent_with_cycle() { + void findCycle_is_idempotent_with_cycle() { var graph = new Graph(); graph.edge(A, A); @@ -73,7 +73,7 @@ public class CycleFinderTest { } @Test - public void findCycle_is_idempotent_without_cycle() { + void findCycle_is_idempotent_without_cycle() { var graph = new Graph(); graph.edge(A, B); diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java index 526e683ad46..d945b4f0544 100644 --- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java +++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java @@ -2,16 +2,14 @@ package com.yahoo.container.di.componentgraph.cycle; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.List; import static com.yahoo.container.di.componentgraph.cycle.GraphTest.Vertices.A; import static com.yahoo.container.di.componentgraph.cycle.GraphTest.Vertices.B; import static com.yahoo.container.di.componentgraph.cycle.GraphTest.Vertices.C; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; /** * @author gjoranv @@ -21,7 +19,7 @@ public class GraphTest { enum Vertices {A, B, C} @Test - public void vertices_and_edges_are_added_and_can_be_retrieved() { + void vertices_and_edges_are_added_and_can_be_retrieved() { var graph = new Graph(); graph.edge(A, B); graph.edge(B, C); @@ -34,7 +32,7 @@ public class GraphTest { } @Test - public void null_vertices_are_not_allowed() { + void null_vertices_are_not_allowed() { var graph = new Graph(); try { @@ -46,7 +44,7 @@ public class GraphTest { } @Test - public void duplicate_edges_are_ignored() { + void duplicate_edges_are_ignored() { var graph = new Graph(); graph.edge(A, B); graph.edge(A, B); @@ -55,7 +53,7 @@ public class GraphTest { } @Test - public void self_edges_are_allowed() { + void self_edges_are_allowed() { var graph = new Graph(); graph.edge(A, A); diff --git a/container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java b/container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java index 2eba4144b45..728118c38cc 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java @@ -3,13 +3,13 @@ package com.yahoo.container.handler; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.logging.CircularArrayAccessLogKeeper; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.concurrent.Executor; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; public class AccessLogRequestHandlerTest { @@ -20,7 +20,7 @@ public class AccessLogRequestHandlerTest { private final ByteArrayOutputStream out = new ByteArrayOutputStream(); @Test - public void testOneLogLine() throws IOException { + void testOneLogLine() throws IOException { keeper.addUri("foo"); HttpResponse response = handler.handle(null); response.render(out); @@ -28,14 +28,14 @@ public class AccessLogRequestHandlerTest { } @Test - public void testEmpty() throws IOException { + void testEmpty() throws IOException { HttpResponse response = handler.handle(null); response.render(out); assertEquals("{\"entries\":[]}", out.toString()); } @Test - public void testManyLogLines() throws IOException { + void testManyLogLines() throws IOException { keeper.addUri("foo"); keeper.addUri("foo"); HttpResponse response = handler.handle(null); diff --git a/container-core/src/test/java/com/yahoo/container/handler/LogHandlerTest.java b/container-core/src/test/java/com/yahoo/container/handler/LogHandlerTest.java index 4c7cb5475dd..3d9a2360e77 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/LogHandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/LogHandlerTest.java @@ -6,7 +6,7 @@ import com.yahoo.container.jdisc.ContentChannelOutputStream; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.jdisc.handler.ReadableContentChannel; import com.yahoo.yolean.Exceptions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.io.OutputStream; @@ -15,13 +15,13 @@ import java.util.Optional; import java.util.concurrent.Executor; import static java.nio.charset.StandardCharsets.UTF_8; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; public class LogHandlerTest { @Test - public void handleCorrectlyParsesQueryParameters() throws IOException { + void handleCorrectlyParsesQueryParameters() throws IOException { MockLogReader mockLogReader = new MockLogReader(); LogHandler logHandler = new LogHandler(mock(Executor.class), mockLogReader); diff --git a/container-core/src/test/java/com/yahoo/container/handler/LogReaderTest.java b/container-core/src/test/java/com/yahoo/container/handler/LogReaderTest.java index e1bd0da457e..f49c127cb01 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/LogReaderTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/LogReaderTest.java @@ -2,15 +2,14 @@ package com.yahoo.container.handler; import com.yahoo.compress.ZstdCompressor; -import org.junit.Before; -import org.junit.Test; -import org.junit.Rule; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import java.io.ByteArrayOutputStream; +import java.io.File; import java.io.IOException; import java.io.OutputStream; -import java.nio.file.FileSystem; import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; @@ -20,12 +19,12 @@ import java.util.regex.Pattern; import java.util.zip.GZIPOutputStream; import static java.nio.charset.StandardCharsets.UTF_8; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class LogReaderTest { - @Rule - public TemporaryFolder folder = new TemporaryFolder(); + @TempDir + public File folder; private Path logDirectory; private static final String logv11 = "3600.2\tnode1.com\t5480\tcontainer\tstdout\tinfo\tfourth\n"; @@ -35,9 +34,9 @@ public class LogReaderTest { private static final String log110 = "3600.1\tnode1.com\t5480\tcontainer\tstderr\twarning\tthird\n"; private static final String log200 = "86400.1\tnode2.com\t5480\tcontainer\tstderr\twarning\tjava.lang.NullPointerException\\n\\tat org.apache.felix.framework.BundleRevisionImpl.calculateContentPath(BundleRevisionImpl.java:438)\\n\\tat org.apache.felix.framework.BundleRevisionImpl.initializeContentPath(BundleRevisionImpl.java:371)\n"; - @Before + @BeforeEach public void setup() throws IOException { - logDirectory = folder.newFolder("opt/vespa/logs").toPath(); + logDirectory = newFolder(folder, "opt/vespa/logs").toPath(); // Log archive paths and file names indicate what hour they contain logs for, with the start of that hour. // Multiple entries may exist for each hour. Files.createDirectories(logDirectory.resolve("1970/01/01")); @@ -55,7 +54,7 @@ public class LogReaderTest { } @Test - public void testThatLogsOutsideRangeAreExcluded() { + void testThatLogsOutsideRangeAreExcluded() { ByteArrayOutputStream baos = new ByteArrayOutputStream(); LogReader logReader = new LogReader(logDirectory, Pattern.compile(".*")); logReader.writeLogs(baos, Instant.ofEpochMilli(150), Instant.ofEpochMilli(3601050), Optional.empty()); @@ -64,7 +63,7 @@ public class LogReaderTest { } @Test - public void testThatLogsNotMatchingRegexAreExcluded() { + void testThatLogsNotMatchingRegexAreExcluded() { ByteArrayOutputStream baos = new ByteArrayOutputStream(); LogReader logReader = new LogReader(logDirectory, Pattern.compile(".*-1.*")); logReader.writeLogs(baos, Instant.EPOCH, Instant.EPOCH.plus(Duration.ofDays(2)), Optional.empty()); @@ -73,7 +72,7 @@ public class LogReaderTest { } @Test - public void testZippedStreaming() { + void testZippedStreaming() { ByteArrayOutputStream zippedBaos = new ByteArrayOutputStream(); LogReader logReader = new LogReader(logDirectory, Pattern.compile(".*")); logReader.writeLogs(zippedBaos, Instant.EPOCH, Instant.EPOCH.plus(Duration.ofDays(2)), Optional.empty()); @@ -82,7 +81,7 @@ public class LogReaderTest { } @Test - public void logsForSingeNodeIsRetrieved() { + void logsForSingeNodeIsRetrieved() { ByteArrayOutputStream baos = new ByteArrayOutputStream(); LogReader logReader = new LogReader(logDirectory, Pattern.compile(".*")); logReader.writeLogs(baos, Instant.EPOCH, Instant.EPOCH.plus(Duration.ofDays(2)), Optional.of("node2.com")); @@ -103,4 +102,13 @@ public class LogReaderTest { return new ZstdCompressor().compress(data, 0, data.length); } + private static File newFolder(File root, String... subDirs) throws IOException { + String subFolder = String.join("/", subDirs); + File result = new File(root, subFolder); + if (!result.mkdirs()) { + throw new IOException("Couldn't create folders " + root); + } + return result; + } + } diff --git a/container-core/src/test/java/com/yahoo/container/handler/VipStatusHandlerTestCase.java b/container-core/src/test/java/com/yahoo/container/handler/VipStatusHandlerTestCase.java index e78810db897..18eca0bc8bd 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/VipStatusHandlerTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/handler/VipStatusHandlerTestCase.java @@ -15,7 +15,7 @@ import com.yahoo.jdisc.handler.ResponseHandler; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.service.CurrentContainer; import com.yahoo.text.Utf8; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import java.io.File; @@ -27,8 +27,8 @@ import java.net.URISyntaxException; import java.nio.ByteBuffer; import java.util.concurrent.Executors; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; /** * Check semantics of VIP status handler. Do note this handler does not need to @@ -52,7 +52,7 @@ public class VipStatusHandlerTestCase { Metric metric = Mockito.mock(Metric.class); @Test - public void testHandleRequest() { + void testHandleRequest() { VipStatusConfig config = new VipStatusConfig(new VipStatusConfig.Builder().accessdisk(false)); VipStatusHandler handler = new VipStatusHandler(Executors.newCachedThreadPool(), config, metric); MockResponseHandler responseHandler = new MockResponseHandler(); @@ -78,7 +78,7 @@ public class VipStatusHandlerTestCase { } @Test - public void testFileNotFound() { + void testFileNotFound() { VipStatusConfig config = new VipStatusConfig(new VipStatusConfig.Builder().accessdisk(true) .statusfile("/VipStatusHandlerTestCaseFileThatReallyReallyShouldNotExist")); VipStatusHandler handler = new VipStatusHandler(Executors.newCachedThreadPool(), config, metric); @@ -95,7 +95,7 @@ public class VipStatusHandlerTestCase { } @Test - public void testFileFound() throws IOException { + void testFileFound() throws IOException { File statusFile = File.createTempFile("VipStatusHandlerTestCase", null); try { FileWriter writer = new FileWriter(statusFile); @@ -121,7 +121,7 @@ public class VipStatusHandlerTestCase { } @Test - public void testExplicitlyRotationControl() { + void testExplicitlyRotationControl() { VipStatus vipStatus = new VipStatus(); VipStatusConfig config = new VipStatusConfig(new VipStatusConfig.Builder().accessdisk(false)); VipStatusHandler handler = new VipStatusHandler(Executors.newCachedThreadPool(), config, metric, vipStatus); diff --git a/container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java b/container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java index 168dd2cac7b..eed3c047b0a 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/handler/VipStatusTestCase.java @@ -5,13 +5,11 @@ import com.yahoo.container.QrSearchersConfig; import com.yahoo.container.core.VipStatusConfig; import com.yahoo.container.jdisc.state.StateMonitor; import com.yahoo.jdisc.Metric; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @author bratseth @@ -19,14 +17,14 @@ import static org.junit.Assert.assertTrue; public class VipStatusTestCase { @Test - public void testInitializingOrDownRequireAllUp() { + void testInitializingOrDownRequireAllUp() { String[] clusters = {"cluster1", "cluster2", "cluster3"}; verifyStatus(clusters, StateMonitor.Status.initializing); verifyStatus(clusters, StateMonitor.Status.down); } @Test - public void testUpRequireAllDown() { + void testUpRequireAllDown() { String[] clusters = {"cluster1", "cluster2", "cluster3"}; VipStatus v = createVipStatus(clusters, StateMonitor.Status.initializing, true, new ClustersStatus(), new MetricMock()); @@ -54,21 +52,21 @@ public class VipStatusTestCase { } @Test - public void testNoClustersConfiguringInitiallyInRotationFalse() { + void testNoClustersConfiguringInitiallyInRotationFalse() { String[] clusters = {}; VipStatus v = createVipStatus(clusters, StateMonitor.Status.initializing, false, new ClustersStatus(), new MetricMock()); assertFalse(v.isInRotation()); } @Test - public void testNoClustersConfiguringInitiallyInRotationTrue() { + void testNoClustersConfiguringInitiallyInRotationTrue() { String[] clusters = {}; VipStatus v = createVipStatus(clusters, StateMonitor.Status.initializing, true, new ClustersStatus(), new MetricMock()); assertTrue(v.isInRotation()); } @Test - public void testInRotationMetricFollowsRotationState() { + void testInRotationMetricFollowsRotationState() { MetricMock metric = new MetricMock(); String[] clusters = {"cluster1", "cluster2", "cluster3"}; @@ -81,17 +79,17 @@ public class VipStatusTestCase { } @Test - public void testClusterRemovalRemovedIsDown() { + void testClusterRemovalRemovedIsDown() { assertClusterRemoval(true, false); } @Test - public void testClusterRemovalRemovedIsUp() { + void testClusterRemovalRemovedIsUp() { assertClusterRemoval(false, false); } @Test - public void testClusterRemovalAnotherIsDown() { + void testClusterRemovalAnotherIsDown() { assertClusterRemoval(false, true); } diff --git a/container-core/src/test/java/com/yahoo/container/handler/metrics/ErrorResponseTest.java b/container-core/src/test/java/com/yahoo/container/handler/metrics/ErrorResponseTest.java index c6e3986e870..4743075a9a6 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/metrics/ErrorResponseTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/metrics/ErrorResponseTest.java @@ -1,9 +1,9 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.handler.metrics; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author gjoranv @@ -11,13 +11,13 @@ import static org.junit.Assert.assertEquals; public class ErrorResponseTest { @Test - public void error_message_is_wrapped_in_json_object() { + void error_message_is_wrapped_in_json_object() { var json = ErrorResponse.asErrorJson("bad"); assertEquals("{\"error\":\"bad\"}", json); } @Test - public void quotes_are_escaped() { + void quotes_are_escaped() { var json = ErrorResponse.asErrorJson("Message \" with \" embedded quotes."); assertEquals("{\"error\":\"Message \\\" with \\\" embedded quotes.\"}", json); } diff --git a/container-core/src/test/java/com/yahoo/container/handler/metrics/MetricsV2HandlerTest.java b/container-core/src/test/java/com/yahoo/container/handler/metrics/MetricsV2HandlerTest.java index 350aad8198b..ad5b1a49670 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/metrics/MetricsV2HandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/metrics/MetricsV2HandlerTest.java @@ -4,12 +4,12 @@ package com.yahoo.container.handler.metrics; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; -import com.github.tomakehurst.wiremock.junit.WireMockRule; +import com.github.tomakehurst.wiremock.junit5.WireMockExtension; import com.yahoo.container.jdisc.RequestHandlerTestDriver; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import java.io.BufferedReader; import java.io.IOException; @@ -26,9 +26,7 @@ import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options import static com.yahoo.container.handler.metrics.MetricsV2Handler.V2_PATH; import static com.yahoo.container.handler.metrics.MetricsV2Handler.VALUES_PATH; import static com.yahoo.container.handler.metrics.MetricsV2Handler.consumerQuery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; /** * @author gjoranv @@ -53,15 +51,15 @@ public class MetricsV2HandlerTest { private static RequestHandlerTestDriver testDriver; - @Rule - public WireMockRule wireMockRule = new WireMockRule(options().dynamicPort()); + @RegisterExtension + public WireMockExtension wireMockRule = WireMockExtension.newInstance().options(options().dynamicPort()).build(); - @Before + @BeforeEach public void setup() { setupWireMock(); var handler = new MetricsV2Handler(Executors.newSingleThreadExecutor(), new MetricsProxyApiConfig.Builder() - .metricsPort(wireMockRule.port()) + .metricsPort(wireMockRule.getPort()) .metricsApiPath(MOCK_METRICS_PATH) .prometheusApiPath("Not/In/Use") .build()); @@ -80,7 +78,7 @@ public class MetricsV2HandlerTest { } @Test - public void v2_response_contains_values_uri() throws Exception { + void v2_response_contains_values_uri() throws Exception { String response = testDriver.sendRequest(V2_URI).readAll(); JsonNode root = jsonMapper.readTree(response); assertTrue(root.has("resources")); @@ -92,29 +90,29 @@ public class MetricsV2HandlerTest { assertEquals(VALUES_URI, valuesUri.get("url").textValue()); } - @Ignore + @Disabled @Test - public void visually_inspect_values_response() { + void visually_inspect_values_response() { JsonNode responseJson = getResponseAsJson(null); System.out.println(responseJson); } @Test - public void invalid_path_yields_error_response() throws Exception { + void invalid_path_yields_error_response() throws Exception { String response = testDriver.sendRequest(V2_URI + "/invalid").readAll(); JsonNode root = jsonMapper.readTree(response); assertTrue(root.has("error")); - assertTrue(root.get("error" ).textValue().startsWith("No content")); + assertTrue(root.get("error").textValue().startsWith("No content")); } @Test - public void values_response_is_equal_to_test_file() { + void values_response_is_equal_to_test_file() { String response = testDriver.sendRequest(VALUES_URI).readAll(); assertEquals(RESPONSE, response); } @Test - public void consumer_is_propagated_to_metrics_proxy_api() { + void consumer_is_propagated_to_metrics_proxy_api() { JsonNode responseJson = getResponseAsJson(CUSTOM_CONSUMER); JsonNode firstNodeMetricsValues = diff --git a/container-core/src/test/java/com/yahoo/container/handler/metrics/PrometheusV1HandlerTest.java b/container-core/src/test/java/com/yahoo/container/handler/metrics/PrometheusV1HandlerTest.java index 98920b895e0..5989ba4a202 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/metrics/PrometheusV1HandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/metrics/PrometheusV1HandlerTest.java @@ -4,12 +4,12 @@ package com.yahoo.container.handler.metrics; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; -import com.github.tomakehurst.wiremock.junit.WireMockRule; +import com.github.tomakehurst.wiremock.junit5.WireMockExtension; import com.yahoo.container.jdisc.RequestHandlerTestDriver; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import java.util.concurrent.Executors; @@ -20,8 +20,8 @@ import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options; import static com.yahoo.container.handler.metrics.MetricsV2Handler.consumerQuery; import static com.yahoo.container.handler.metrics.MetricsV2HandlerTest.getFileContents; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author gjoranv @@ -46,16 +46,16 @@ public class PrometheusV1HandlerTest { private static RequestHandlerTestDriver testDriver; - @Rule - public WireMockRule wireMockRule = new WireMockRule(options().dynamicPort()); + @RegisterExtension + public WireMockExtension wireMockRule = WireMockExtension.newInstance().options(options().dynamicPort()).build(); - @Before + @BeforeEach public void setup() { setupWireMock(); var handler = new PrometheusV1Handler(Executors.newSingleThreadExecutor(), new MetricsProxyApiConfig.Builder() .prometheusApiPath(MOCK_METRICS_PATH) - .metricsPort(wireMockRule.port()) + .metricsPort(wireMockRule.getPort()) .metricsApiPath("/Not/In/Use") .build()); testDriver = new RequestHandlerTestDriver(handler); @@ -74,7 +74,7 @@ public class PrometheusV1HandlerTest { } @Test - public void v1_response_contains_values_uri() throws Exception { + void v1_response_contains_values_uri() throws Exception { String response = testDriver.sendRequest(V1_URI).readAll(); JsonNode root = jsonMapper.readTree(response); assertTrue(root.has("resources")); @@ -86,29 +86,29 @@ public class PrometheusV1HandlerTest { assertEquals(VALUES_URI, valuesUri.get("url").asText()); } - @Ignore + @Disabled @Test - public void visually_inspect_values_response() { + void visually_inspect_values_response() { String response = testDriver.sendRequest(VALUES_URI).readAll(); System.out.println(response); } @Test - public void invalid_path_yields_error_response() throws Exception { + void invalid_path_yields_error_response() throws Exception { String response = testDriver.sendRequest(V1_URI + "/invalid").readAll(); JsonNode root = jsonMapper.readTree(response); assertTrue(root.has("error")); - assertTrue(root.get("error" ).textValue().startsWith("No content")); + assertTrue(root.get("error").textValue().startsWith("No content")); } @Test - public void values_response_is_equal_to_test_file() { + void values_response_is_equal_to_test_file() { String response = testDriver.sendRequest(VALUES_URI).readAll(); assertEquals(RESPONSE, response); } @Test - public void consumer_is_propagated_to_metrics_proxy_api() { + void consumer_is_propagated_to_metrics_proxy_api() { String response = testDriver.sendRequest(VALUES_URI + consumerQuery(CUSTOM_CONSUMER)).readAll(); assertTrue(response.contains(REPLACED_CPU_METRIC)); diff --git a/container-core/src/test/java/com/yahoo/container/handler/test/MockServiceTest.java b/container-core/src/test/java/com/yahoo/container/handler/test/MockServiceTest.java index 2efa717800d..eefcc43fcb7 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/test/MockServiceTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/test/MockServiceTest.java @@ -4,7 +4,7 @@ package com.yahoo.container.handler.test; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.filedistribution.fileacquirer.MockFileAcquirer; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.ByteArrayOutputStream; import java.io.File; @@ -12,7 +12,8 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.concurrent.Executor; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; /** * @author Ulf Lilleengen @@ -22,7 +23,7 @@ public class MockServiceTest { private final File testFile = new File("src/test/java/com/yahoo/container/handler/test/test.txt"); @Test - public void testHandlerTextFormat() throws InterruptedException, IOException { + void testHandlerTextFormat() throws InterruptedException, IOException { HttpResponse response = runHandler(com.yahoo.jdisc.http.HttpRequest.Method.GET, "/foo/bar"); assertResponse(response, 200, "Hello\nThere!"); @@ -34,20 +35,24 @@ public class MockServiceTest { } @Test - public void testNoHandlerFound() throws InterruptedException, IOException { + void testNoHandlerFound() throws InterruptedException, IOException { HttpResponse response = runHandler(com.yahoo.jdisc.http.HttpRequest.Method.DELETE, "/foo/bar"); assertEquals(404, response.getStatus()); assertResponseContents(response, "DELETE:/foo/bar was not found"); } - @Test(expected = IllegalArgumentException.class) - public void testUnknownFileType() throws InterruptedException, IOException { - runHandlerWithFile(com.yahoo.jdisc.http.HttpRequest.Method.GET, "", new File("nonexistant")); + @Test + void testUnknownFileType() throws InterruptedException, IOException { + assertThrows(IllegalArgumentException.class, () -> { + runHandlerWithFile(com.yahoo.jdisc.http.HttpRequest.Method.GET, "", new File("nonexistant")); + }); } - @Test(expected = FileNotFoundException.class) - public void testExceptionResponse() throws InterruptedException, IOException { - runHandlerWithFile(com.yahoo.jdisc.http.HttpRequest.Method.GET, "", new File("nonexistant.txt")); + @Test + void testExceptionResponse() throws InterruptedException, IOException { + assertThrows(FileNotFoundException.class, () -> { + runHandlerWithFile(com.yahoo.jdisc.http.HttpRequest.Method.GET, "", new File("nonexistant.txt")); + }); } private void assertResponse(HttpResponse response, int expectedCode, String expectedMessage) throws IOException { diff --git a/container-core/src/test/java/com/yahoo/container/handler/threadpool/ContainerThreadPoolImplTest.java b/container-core/src/test/java/com/yahoo/container/handler/threadpool/ContainerThreadPoolImplTest.java index c3f91000296..4639022d767 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/threadpool/ContainerThreadPoolImplTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/threadpool/ContainerThreadPoolImplTest.java @@ -6,15 +6,15 @@ import com.yahoo.concurrent.Receiver; import com.yahoo.container.protect.ProcessTerminator; import com.yahoo.container.test.MetricMock; import com.yahoo.jdisc.Metric; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import java.util.concurrent.Executor; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.ThreadPoolExecutor; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; /** * @author Steinar Knutsen @@ -25,14 +25,14 @@ public class ContainerThreadPoolImplTest { private static final int CPUS = 16; @Test - public final void testThreadPool() throws InterruptedException { + final void testThreadPool() throws InterruptedException { Metric metrics = new MetricMock(); ContainerThreadpoolConfig config = new ContainerThreadpoolConfig(new ContainerThreadpoolConfig.Builder().maxThreads(1)); ContainerThreadPool threadPool = new ContainerThreadpoolImpl(config, metrics); Executor exec = threadPool.executor(); Tuple2 reply; FlipIt command = new FlipIt(); - for (boolean done = false; !done;) { + for (boolean done = false; !done; ) { try { exec.execute(command); done = true; @@ -74,7 +74,7 @@ public class ContainerThreadPoolImplTest { } @Test - public void testThatThreadPoolSizeFollowsConfig() { + void testThatThreadPoolSizeFollowsConfig() { MetricMock metrics = new MetricMock(); ThreadPoolExecutor executor = createPool(metrics, 3, 1200); assertEquals(3, executor.getMaximumPoolSize()); @@ -86,11 +86,12 @@ public class ContainerThreadPoolImplTest { assertEquals(1200L, metrics.innvocations().get("jdisc.thread_pool.work_queue.capacity").val); assertEquals(0L, metrics.innvocations().get("jdisc.thread_pool.work_queue.size").val); } + @Test - public void testThatThreadPoolSizeAutoDetected() { + void testThatThreadPoolSizeAutoDetected() { MetricMock metrics = new MetricMock(); ThreadPoolExecutor executor = createPool(metrics, 0, 0); - assertEquals(CPUS*4, executor.getMaximumPoolSize()); + assertEquals(CPUS * 4, executor.getMaximumPoolSize()); assertEquals(0, executor.getQueue().remainingCapacity()); assertEquals(7, metrics.innvocations().size()); assertEquals(64L, metrics.innvocations().get("serverThreadPoolSize").val); @@ -99,17 +100,19 @@ public class ContainerThreadPoolImplTest { assertEquals(64L, metrics.innvocations().get("jdisc.thread_pool.work_queue.capacity").val); assertEquals(0L, metrics.innvocations().get("jdisc.thread_pool.work_queue.size").val); } + @Test - public void testThatQueueSizeAutoDetected() { + void testThatQueueSizeAutoDetected() { ThreadPoolExecutor executor = createPool(24, -50); assertEquals(24, executor.getMaximumPoolSize()); - assertEquals(24*50, executor.getQueue().remainingCapacity()); + assertEquals(24 * 50, executor.getQueue().remainingCapacity()); } + @Test - public void testThatThreadPoolSizeAndQueueSizeAutoDetected() { + void testThatThreadPoolSizeAndQueueSizeAutoDetected() { ThreadPoolExecutor executor = createPool(0, -100); - assertEquals(CPUS*4, executor.getMaximumPoolSize()); - assertEquals(CPUS*4*100, executor.getQueue().remainingCapacity()); + assertEquals(CPUS * 4, executor.getMaximumPoolSize()); + assertEquals(CPUS * 4 * 100, executor.getQueue().remainingCapacity()); } private class FlipIt implements Runnable { @@ -121,9 +124,10 @@ public class ContainerThreadPoolImplTest { } } + // Ignored because it depends on the system time and so is unstable on factory @Test - @Ignore // Ignored because it depends on the system time and so is unstable on factory - public void testThreadPoolTerminationOnBreakdown() throws InterruptedException { + @Disabled + void testThreadPoolTerminationOnBreakdown() throws InterruptedException { ContainerThreadpoolConfig config = new ContainerThreadpoolConfig( new ContainerThreadpoolConfig.Builder() .maxThreads(2) @@ -138,10 +142,16 @@ public class ContainerThreadPoolImplTest { assertEquals(0, terminator.dieRequests); assertRejected(threadPool, new Hang(500)); // no more threads assertEquals(0, terminator.dieRequests); // ... but not for long enough yet - try { Thread.sleep(1500); } catch (InterruptedException e) {} + try { + Thread.sleep(1500); + } catch (InterruptedException e) { + } threadPool.executor().execute(new Hang(1)); assertEquals(0, terminator.dieRequests); - try { Thread.sleep(50); } catch (InterruptedException e) {} // Make sure both threads are available + try { + Thread.sleep(50); + } catch (InterruptedException e) { + } // Make sure both threads are available // Dying when hanging both thread pool threads for longer than max thread execution time threadPool.executor().execute(new Hang(2000)); @@ -149,7 +159,10 @@ public class ContainerThreadPoolImplTest { assertEquals(0, terminator.dieRequests); assertRejected(threadPool, new Hang(2000)); // no more threads assertEquals(0, terminator.dieRequests); // ... but not for long enough yet - try { Thread.sleep(1500); } catch (InterruptedException e) {} + try { + Thread.sleep(1500); + } catch (InterruptedException e) { + } assertRejected(threadPool, new Hang(2000)); // no more threads assertEquals(1, terminator.dieRequests); // ... for longer than maxThreadExecutionTime } diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/ExtendedResponseTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/ExtendedResponseTestCase.java index 400697af2a8..1b0521177e0 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/ExtendedResponseTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/ExtendedResponseTestCase.java @@ -1,16 +1,16 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.jdisc; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.jdisc.Response; import com.yahoo.jdisc.handler.CompletionHandler; import com.yahoo.jdisc.handler.ContentChannel; @@ -48,18 +48,18 @@ public class ExtendedResponseTestCase { } - @Before + @BeforeEach public void setUp() throws Exception { r = new TestResponse(Response.Status.OK); } - @After + @AfterEach public void tearDown() throws Exception { r = null; } @Test - public final void testRenderOutputStreamContentChannelCompletionHandler() throws IOException { + final void testRenderOutputStreamContentChannelCompletionHandler() throws IOException { ByteArrayOutputStream b = new ByteArrayOutputStream(); r.render(b, null, null); assertEquals(COM_YAHOO_CONTAINER_JDISC_EXTENDED_RESPONSE_TEST_CASE, Utf8.toString(b.toByteArray())); @@ -67,22 +67,22 @@ public class ExtendedResponseTestCase { @Test - public final void testGetParsedQuery() { + final void testGetParsedQuery() { assertNull(r.getParsedQuery()); } @Test - public final void testGetTiming() { + final void testGetTiming() { assertNull(r.getTiming()); } @Test - public final void testGetCoverage() { + final void testGetCoverage() { assertNull(r.getCoverage()); } @Test - public final void testGetHitCounts() { + final void testGetHitCounts() { assertNull(r.getHitCounts()); } diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java index 7fcca89b0d3..ca3c24113ff 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.jdisc; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -10,10 +10,9 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Collections; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.jdisc.http.HttpRequest.Method; import com.yahoo.text.Utf8; @@ -28,74 +27,74 @@ public class HttpRequestTestCase { HttpRequest r; InputStream requestData; - @Before + @BeforeEach public void setUp() throws Exception { requestData = new ByteArrayInputStream(Utf8.toBytes(X_RAY_YANKEE_ZULU)); r = HttpRequest.createTestRequest(HTTP_MAILHOST_25_ALPHA_BRAVO_CHARLIE_DELTA, Method.GET, requestData, Collections.singletonMap("foxtrot", "golf")); } - @After + @AfterEach public void tearDown() throws Exception { r = null; } @Test - public final void testGetMethod() { + final void testGetMethod() { assertSame(Method.GET, r.getMethod()); } @Test - public final void testGetUri() throws URISyntaxException { + final void testGetUri() throws URISyntaxException { assertEquals(new URI(HTTP_MAILHOST_25_ALPHA_BRAVO_CHARLIE_DELTA), r.getUri()); } @Test - public final void testGetJDiscRequest() throws URISyntaxException { + final void testGetJDiscRequest() throws URISyntaxException { assertEquals(new URI(HTTP_MAILHOST_25_ALPHA_BRAVO_CHARLIE_DELTA), r.getJDiscRequest().getUri()); } @Test - public final void testGetProperty() { + final void testGetProperty() { assertEquals("charlie", r.getProperty("bravo")); assertEquals("golf", r.getProperty("foxtrot")); assertNull(r.getProperty("zulu")); } @Test - public final void testPropertyMap() { + final void testPropertyMap() { assertEquals(4, r.propertyMap().size()); } @Test - public final void testGetBooleanProperty() { + final void testGetBooleanProperty() { assertTrue(r.getBooleanProperty("trueboolean")); assertFalse(r.getBooleanProperty("falseboolean")); assertFalse(r.getBooleanProperty("bravo")); } @Test - public final void testHasProperty() { + final void testHasProperty() { assertFalse(r.hasProperty("alpha")); assertTrue(r.hasProperty("bravo")); } @Test - public final void testGetHeader() { + final void testGetHeader() { assertNull(r.getHeader("SyntheticHeaderFor-com.yahoo.container.jdisc.HttpRequestTestCase")); } @Test - public final void testGetHost() { + final void testGetHost() { assertEquals("mailhost", r.getHost()); } @Test - public final void testGetPort() { + final void testGetPort() { assertEquals(25, r.getPort()); } @Test - public final void testGetData() throws IOException { + final void testGetData() throws IOException { byte[] b = new byte[X_RAY_YANKEE_ZULU.length()]; r.getData().read(b); assertEquals(X_RAY_YANKEE_ZULU, Utf8.toString(b)); diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/HttpResponseTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/HttpResponseTestCase.java index 8dfa9a83988..963c98c2469 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/HttpResponseTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/HttpResponseTestCase.java @@ -1,16 +1,16 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.jdisc; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.jdisc.Response; import com.yahoo.text.Utf8; @@ -37,45 +37,45 @@ public class HttpResponseTestCase { HttpResponse r; - @Before + @BeforeEach public void setUp() throws Exception { r = new TestResponse(Response.Status.OK); } - @After + @AfterEach public void tearDown() throws Exception { r = null; } @Test - public final void testRender() throws IOException { + final void testRender() throws IOException { ByteArrayOutputStream o = new ByteArrayOutputStream(1024); r.render(o); assertEquals(COM_YAHOO_CONTAINER_JDISC_HTTP_RESPONSE_TEST_CASE_TEST_RESPONSE, Utf8.toString(o.toByteArray())); } @Test - public final void testGetStatus() { + final void testGetStatus() { assertEquals(Response.Status.OK, r.getStatus()); } @Test - public final void testHeaders() { + final void testHeaders() { assertNotNull(r.headers()); } @Test - public final void testGetJdiscResponse() { + final void testGetJdiscResponse() { assertNotNull(r.getJdiscResponse()); } @Test - public final void testGetContentType() { + final void testGetContentType() { assertEquals(HttpResponse.DEFAULT_MIME_TYPE, r.getContentType()); } @Test - public final void testGetCharacterEncoding() { + final void testGetCharacterEncoding() { assertEquals(HttpResponse.DEFAULT_CHARACTER_ENCODING, r.getCharacterEncoding()); } diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java index ae0f679771e..94158b277c4 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java @@ -13,8 +13,8 @@ import com.yahoo.jdisc.handler.ContentChannel; import com.yahoo.jdisc.handler.RequestHandler; import com.yahoo.jdisc.handler.ResponseHandler; import com.yahoo.jdisc.service.CurrentContainer; -import org.junit.After; -import org.junit.Before; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import java.io.IOException; import java.io.OutputStream; @@ -26,7 +26,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.fail; /** * Test contracts in LoggingRequestHandler. @@ -110,13 +110,13 @@ public class LoggingRequestHandlerTestCase { } - @Before + @BeforeEach public void setUp() throws Exception { executor = Executors.newCachedThreadPool(); handler = new AccessLogTestHandler(executor); } - @After + @AfterEach public void tearDown() throws Exception { handler = null; executor.shutdown(); diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/LoggingTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/LoggingTestCase.java index ee76b3c5321..e423d44dfa4 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/LoggingTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/LoggingTestCase.java @@ -3,10 +3,9 @@ package com.yahoo.container.jdisc; import com.yahoo.jdisc.handler.CompletionHandler; import com.yahoo.jdisc.handler.ContentChannel; -import java.util.logging.Level; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.nio.ByteBuffer; @@ -17,8 +16,8 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; /** * Check error logging from ContentChannelOutputStream is sane. @@ -72,7 +71,7 @@ public class LoggingTestCase { ContentChannelOutputStream stream; - @Before + @BeforeEach public void setUp() throws Exception { stream = new ContentChannelOutputStream(new FailingContentChannel()); logger = Logger.getLogger(ContentChannelOutputStream.class.getName()); @@ -83,7 +82,7 @@ public class LoggingTestCase { logger.addHandler(logChecker); } - @After + @AfterEach public void tearDown() throws Exception { logger.removeHandler(logChecker); logger.setUseParentHandlers(initUseParentHandlers); @@ -96,7 +95,7 @@ public class LoggingTestCase { } @Test - public final void testFailed() throws IOException { + final void testFailed() throws IOException { stream.send(createData()); stream.send(createData()); stream.send(createData()); diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/RequestBuilderTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/RequestBuilderTestCase.java index 9967ead052d..2a3adaff16e 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/RequestBuilderTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/RequestBuilderTestCase.java @@ -1,12 +1,12 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.jdisc; -import static org.junit.Assert.*; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.jdisc.http.HttpRequest.Method; /** @@ -17,26 +17,26 @@ import com.yahoo.jdisc.http.HttpRequest.Method; public class RequestBuilderTestCase { HttpRequest.Builder b; - @Before + @BeforeEach public void setUp() throws Exception { HttpRequest r = HttpRequest.createTestRequest("http://ssh:22/alpha?bravo=charlie", Method.GET); b = new HttpRequest.Builder(r); } - @After + @AfterEach public void tearDown() throws Exception { b = null; } @Test - public final void testBasic() { + final void testBasic() { HttpRequest r = b.put("delta", "echo").createDirectRequest(); assertEquals("charlie", r.getProperty("bravo")); assertEquals("echo", r.getProperty("delta")); } @Test - public void testRemove() { + void testRemove() { HttpRequest orig = b.put("delta", "echo").createDirectRequest(); HttpRequest child = new HttpRequest.Builder(orig).removeProperty("delta").createDirectRequest(); diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandlerTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandlerTest.java index 2592b587539..86b7f545762 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandlerTest.java @@ -3,7 +3,7 @@ package com.yahoo.container.jdisc; import com.yahoo.container.test.MetricMock; import com.yahoo.jdisc.Metric; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.concurrent.Executors; @@ -15,7 +15,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class ThreadedHttpRequestHandlerTest { @Test - public void unhandled_exceptions_metric_is_incremented_if_subclassed_handler_throws_exception() { + void unhandled_exceptions_metric_is_incremented_if_subclassed_handler_throws_exception() { MetricMock metricMock = new MetricMock(); ThreadedHttpRequestHandlerThrowingException handler = new ThreadedHttpRequestHandlerThrowingException(metricMock); RequestHandlerTestDriver driver = new RequestHandlerTestDriver(handler); @@ -24,7 +24,7 @@ public class ThreadedHttpRequestHandlerTest { String expectedMetricName = "jdisc.http.handler.unhandled_exceptions"; assertThat(metricMock.innvocations()) .containsKey(expectedMetricName); - assertThat(((MetricMock.SimpleMetricContext)metricMock.innvocations().get(expectedMetricName).ctx).dimensions) + assertThat(((MetricMock.SimpleMetricContext) metricMock.innvocations().get(expectedMetricName).ctx).dimensions) .containsEntry("exception", "DummyException"); } diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/ThreadedRequestHandlerTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/ThreadedRequestHandlerTestCase.java index a9b16799aea..0fbe533fd99 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/ThreadedRequestHandlerTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/ThreadedRequestHandlerTestCase.java @@ -7,7 +7,7 @@ import com.yahoo.jdisc.application.ContainerBuilder; import com.yahoo.jdisc.handler.*; import com.yahoo.jdisc.test.TestDriver; import com.yahoo.yolean.Exceptions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URI; @@ -23,7 +23,7 @@ import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; /** * @author Simon Thoresen Hult @@ -31,7 +31,7 @@ import static org.junit.Assert.*; public class ThreadedRequestHandlerTestCase { @Test - public void requireThatNullExecutorThrowsException() { + void requireThatNullExecutorThrowsException() { try { new ThreadedRequestHandler(null) { @@ -47,7 +47,7 @@ public class ThreadedRequestHandlerTestCase { } @Test - public void requireThatHandlerSetsRequestTimeout() throws InterruptedException { + void requireThatHandlerSetsRequestTimeout() throws InterruptedException { Executor executor = Executors.newSingleThreadExecutor(); TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(); ContainerBuilder builder = driver.newContainerBuilder(); @@ -69,7 +69,7 @@ public class ThreadedRequestHandlerTestCase { } @Test - public void requireThatOverriddenRequestTimeoutIsUsed() throws InterruptedException { + void requireThatOverriddenRequestTimeoutIsUsed() throws InterruptedException { Executor executor = Executors.newSingleThreadExecutor(); TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(); ContainerBuilder builder = driver.newContainerBuilder(); @@ -82,7 +82,7 @@ public class ThreadedRequestHandlerTestCase { requestHandler.entryLatch.countDown(); assertTrue(requestHandler.exitLatch.await(60, TimeUnit.SECONDS)); - assertEquals(1, (long)requestHandler.request.getTimeout(TimeUnit.SECONDS)); + assertEquals(1, (long) requestHandler.request.getTimeout(TimeUnit.SECONDS)); assertTrue(responseHandler.latch.await(60, TimeUnit.SECONDS)); assertNull(responseHandler.content.read()); @@ -90,7 +90,7 @@ public class ThreadedRequestHandlerTestCase { } @Test - public void requireThatRequestAndResponseReachHandlers() throws InterruptedException { + void requireThatRequestAndResponseReachHandlers() throws InterruptedException { Executor executor = Executors.newSingleThreadExecutor(); TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(); ContainerBuilder builder = driver.newContainerBuilder(); @@ -119,7 +119,7 @@ public class ThreadedRequestHandlerTestCase { } @Test - public void requireThatRejectedExecutionIsHandledGracefully() throws Exception { + void requireThatRejectedExecutionIsHandledGracefully() throws Exception { // Instrumentation. final Executor executor = new Executor() { @Override @@ -150,14 +150,14 @@ public class ThreadedRequestHandlerTestCase { } // Verification. - assertEquals("Response handler should be invoked synchronously in this case.", 0, responseHandler.latch.getCount()); + assertEquals(0, responseHandler.latch.getCount(), "Response handler should be invoked synchronously in this case."); assertEquals(Response.Status.SERVICE_UNAVAILABLE, responseHandler.response.getStatus()); assertNull(responseHandler.content.read()); assertTrue(driver.close()); } @Test - public void requireThatRequestContentIsClosedIfHandlerIgnoresIt() throws InterruptedException { + void requireThatRequestContentIsClosedIfHandlerIgnoresIt() throws InterruptedException { Executor executor = Executors.newSingleThreadExecutor(); TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(); ContainerBuilder builder = driver.newContainerBuilder(); @@ -186,7 +186,7 @@ public class ThreadedRequestHandlerTestCase { } @Test - public void requireThatResponseIsDispatchedIfHandlerIgnoresIt() throws InterruptedException { + void requireThatResponseIsDispatchedIfHandlerIgnoresIt() throws InterruptedException { Executor executor = Executors.newSingleThreadExecutor(); TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(); ContainerBuilder builder = driver.newContainerBuilder(); @@ -207,7 +207,7 @@ public class ThreadedRequestHandlerTestCase { } @Test - public void requireThatRequestContentIsClosedAndResponseIsDispatchedIfHandlerIgnoresIt() + void requireThatRequestContentIsClosedAndResponseIsDispatchedIfHandlerIgnoresIt() throws InterruptedException { Executor executor = Executors.newSingleThreadExecutor(); @@ -360,7 +360,7 @@ public class ThreadedRequestHandlerTestCase { } @Test - public void testMaxPendingOutputStream() throws IOException, ExecutionException, InterruptedException { + void testMaxPendingOutputStream() throws IOException, ExecutionException, InterruptedException { ReadableContentChannel buffer = new ReadableContentChannel(); MaxPendingContentChannelOutputStream limited = new MaxPendingContentChannelOutputStream(buffer, 2); @@ -375,7 +375,8 @@ public class ThreadedRequestHandlerTestCase { future.get(100, TimeUnit.MILLISECONDS); fail("Should not be able to write now"); } - catch (TimeoutException expected) { } + catch (TimeoutException expected) { + } // Free buffer capacity, so write completes, then drain buffer. assertEquals(2, buffer.read().capacity()); @@ -390,12 +391,14 @@ public class ThreadedRequestHandlerTestCase { limited.send(ByteBuffer.allocate(3)); fail("Should throw"); } - catch (IOException expected) { } + catch (IOException expected) { + } try { limited.send(ByteBuffer.allocate(3)); fail("Should throw"); } - catch (IOException expected) { } + catch (IOException expected) { + } } } diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/CoredumpGathererTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/CoredumpGathererTest.java index 1b075ace190..5cec6c471fe 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/CoredumpGathererTest.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/CoredumpGathererTest.java @@ -2,12 +2,12 @@ package com.yahoo.container.jdisc.state; import com.fasterxml.jackson.databind.JsonNode; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.nio.file.Path; import java.util.stream.Stream; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** @@ -16,12 +16,12 @@ import static org.junit.Assert.assertEquals; public class CoredumpGathererTest { @Test - public void finds_one_coredump() { - JsonNode packet = CoredumpGatherer.gatherCoredumpMetrics(new MockFileWrapper()); + void finds_one_coredump() { + JsonNode packet = CoredumpGatherer.gatherCoredumpMetrics(new MockFileWrapper()); - assertEquals("system-coredumps-processing", packet.get("application").textValue()); - assertEquals(1, packet.get("status_code").intValue()); - assertEquals("Found 1 coredump(s)", packet.get("status_msg").textValue()); + assertEquals("system-coredumps-processing", packet.get("application").textValue()); + assertEquals(1, packet.get("status_code").intValue()); + assertEquals("Found 1 coredump(s)", packet.get("status_msg").textValue()); } diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/HostLifeGathererTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/HostLifeGathererTest.java index 634f5321555..c394630cb40 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/HostLifeGathererTest.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/HostLifeGathererTest.java @@ -2,11 +2,11 @@ package com.yahoo.container.jdisc.state; import com.fasterxml.jackson.databind.JsonNode; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.nio.file.Path; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** @@ -15,7 +15,7 @@ import static org.junit.Assert.assertEquals; public class HostLifeGathererTest { @Test - public void host_is_alive() { + void host_is_alive() { JsonNode packet = HostLifeGatherer.getHostLifePacket(new MockFileWrapper()); JsonNode metrics = packet.get("metrics"); assertEquals("host_life", packet.get("application").textValue()); diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java index 82349dd6af9..1fd5e081fb0 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java @@ -1,13 +1,13 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.jdisc.state; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Collections; import java.util.HashMap; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; public class MetricSnapshotTest { @@ -19,16 +19,16 @@ public class MetricSnapshotTest { * most likely be deprecated. */ @Test - public void emptyMetricSetNotAddedToClonedSnapshot() { + void emptyMetricSetNotAddedToClonedSnapshot() { StateMetricContext ctx = StateMetricContext.newInstance(null); MetricSnapshot snapshot = new MetricSnapshot(); snapshot.add(ctx, "foo", 1234); MetricSnapshot newSnapshot = snapshot.createSnapshot(); assertFalse(newSnapshot.iterator().hasNext()); } - + @Test - public void testEquality() { + void testEquality() { assertEquals(Collections.unmodifiableMap(new HashMap(0)).hashCode(), Collections.emptyMap().hashCode()); assertEquals(Collections.unmodifiableMap(new HashMap(0)), Collections.emptyMap()); } diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java index 6c05af95289..019fc1e1e78 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java @@ -4,8 +4,8 @@ package com.yahoo.container.jdisc.state; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.yahoo.container.jdisc.RequestHandlerTestDriver; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.List; @@ -18,8 +18,8 @@ import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.PACKET_SEPAR import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.STATUS_CODE_KEY; import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.STATUS_MSG_KEY; import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.TIMESTAMP_KEY; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author gjoranv @@ -31,7 +31,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { private static MetricsPacketsHandler metricsPacketsHandler; - @Before + @BeforeEach public void setupHandler() { metricsPacketsHandlerConfig = new MetricsPacketsHandlerConfig(new MetricsPacketsHandlerConfig.Builder() .application(APPLICATION_NAME).hostname(HOST_DIMENSION)); @@ -40,20 +40,20 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { } @Test - public void status_packet_is_returned_prior_to_first_snapshot() throws Exception { + void status_packet_is_returned_prior_to_first_snapshot() throws Exception { String response = requestAsString("http://localhost/metrics-packets"); List packets = toJsonPackets(response); assertEquals(1, packets.size()); JsonNode statusPacket = packets.get(0); - assertEquals(statusPacket.toString(), APPLICATION_NAME, statusPacket.get(APPLICATION_KEY).asText()); - assertEquals(statusPacket.toString(), 0, statusPacket.get(STATUS_CODE_KEY).asInt()); - assertEquals(statusPacket.toString(), "up", statusPacket.get(STATUS_MSG_KEY).asText()); + assertEquals(APPLICATION_NAME, statusPacket.get(APPLICATION_KEY).asText(), statusPacket.toString()); + assertEquals(0, statusPacket.get(STATUS_CODE_KEY).asInt(), statusPacket.toString()); + assertEquals("up", statusPacket.get(STATUS_MSG_KEY).asText(), statusPacket.toString()); } @Test - public void metrics_are_included_after_snapshot() throws Exception { + void metrics_are_included_after_snapshot() throws Exception { createSnapshotWithCountMetric("counter", 1, null); List packets = incrementTimeAndGetJsonPackets(); assertEquals(2, packets.size()); @@ -63,7 +63,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { } @Test - public void metadata_is_included_in_each_metrics_packet() throws Exception { + void metadata_is_included_in_each_metrics_packet() throws Exception { createSnapshotWithCountMetric("counter", 1, null); List packets = incrementTimeAndGetJsonPackets(); JsonNode counterPacket = packets.get(1); @@ -74,16 +74,16 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { } @Test - public void timestamp_resolution_is_in_seconds() throws Exception { + void timestamp_resolution_is_in_seconds() throws Exception { createSnapshotWithCountMetric("counter", 1, null); List packets = incrementTimeAndGetJsonPackets(); JsonNode counterPacket = packets.get(1); - assertEquals(SNAPSHOT_INTERVAL/1000L, counterPacket.get(TIMESTAMP_KEY).asLong()); + assertEquals(SNAPSHOT_INTERVAL / 1000L, counterPacket.get(TIMESTAMP_KEY).asLong()); } @Test - public void expected_aggregators_are_output_for_gauge_metrics() throws Exception{ + void expected_aggregators_are_output_for_gauge_metrics() throws Exception { var context = StateMetricContext.newInstance(Map.of("dim1", "value1")); var snapshot = new MetricSnapshot(); snapshot.set(context, "gauge", 0.2); @@ -98,7 +98,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { } @Test - public void dimensions_from_context_are_included() throws Exception { + void dimensions_from_context_are_included() throws Exception { var context = StateMetricContext.newInstance(Map.of("dim1", "value1")); createSnapshotWithCountMetric("counter", 1, context); @@ -111,7 +111,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { } @Test - public void metrics_with_identical_dimensions_are_contained_in_the_same_packet() throws Exception { + void metrics_with_identical_dimensions_are_contained_in_the_same_packet() throws Exception { var context = StateMetricContext.newInstance(Map.of("dim1", "value1")); var snapshot = new MetricSnapshot(); snapshot.add(context, "counter1", 1); @@ -128,7 +128,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { } @Test - public void metrics_with_different_dimensions_get_separate_packets() throws Exception { + void metrics_with_different_dimensions_get_separate_packets() throws Exception { var context1 = StateMetricContext.newInstance(Map.of("dim1", "value1")); var context2 = StateMetricContext.newInstance(Map.of("dim2", "value2")); var snapshot = new MetricSnapshot(); @@ -141,7 +141,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { } @Test - public void host_dimension_only_created_if_absent() throws Exception { + void host_dimension_only_created_if_absent() throws Exception { var context1 = StateMetricContext.newInstance(Map.of("dim1", "value1", "host", "foo.bar")); var context2 = StateMetricContext.newInstance(Map.of("dim2", "value2")); var snapshot = new MetricSnapshot(); diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java index 8f800707f7a..63502a6b49f 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java @@ -5,15 +5,13 @@ import com.fasterxml.jackson.databind.JsonNode; import com.yahoo.component.Vtag; import com.yahoo.container.jdisc.RequestHandlerTestDriver; import com.yahoo.vespa.defaults.Defaults; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.Map; import java.util.concurrent.TimeUnit; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @author Simon Thoresen Hult @@ -23,47 +21,47 @@ public class StateHandlerTest extends StateHandlerTestBase { private static final String V1_URI = URI_BASE + "/state/v1/"; private static StateHandler stateHandler; - @Before + @BeforeEach public void setupHandler() { stateHandler = new StateHandler(monitor, timer, applicationMetadataConfig, snapshotProviderRegistry); testDriver = new RequestHandlerTestDriver(stateHandler); } @Test - public void testStatusReportPriorToFirstSnapshot() throws Exception { + void testStatusReportPriorToFirstSnapshot() throws Exception { JsonNode json = requestAsJson(V1_URI + "/all"); - assertEquals(json.toString(), "up", json.get("status").get("code").asText()); - assertFalse(json.toString(), json.get("metrics").has("values")); + assertEquals("up", json.get("status").get("code").asText(), json.toString()); + assertFalse(json.get("metrics").has("values"), json.toString()); } @Test - public void testReportIncludesMetricsAfterSnapshot() throws Exception { + void testReportIncludesMetricsAfterSnapshot() throws Exception { var snapshot = new MetricSnapshot(); snapshot.add(null, "foo", 1); snapshot.set(null, "bar", 4); snapshotProvider.setSnapshot(snapshot); JsonNode json1 = requestAsJson(V1_URI + "metrics"); - assertEquals(json1.toString(), "up", json1.get("status").get("code").asText()); - assertEquals(json1.toString(), 2, json1.get("metrics").get("values").size()); + assertEquals("up", json1.get("status").get("code").asText(), json1.toString()); + assertEquals(2, json1.get("metrics").get("values").size(), json1.toString()); } @Test - public void testCountMetricCount() throws Exception { + void testCountMetricCount() throws Exception { var snapshot = new MetricSnapshot(); snapshot.add(null, "foo", 4); snapshot.add(null, "foo", 2); snapshotProvider.setSnapshot(snapshot); JsonNode json = requestAsJson(V1_URI + "all"); - assertEquals(json.toString(), "up", json.get("status").get("code").asText()); - assertEquals(json.toString(), 1, json.get("metrics").get("values").size()); - assertEquals(json.toString(), 6, - json.get("metrics").get("values").get(0).get("values").get("count").asDouble(), 0.001); + assertEquals("up", json.get("status").get("code").asText(), json.toString()); + assertEquals(1, json.get("metrics").get("values").size(), json.toString()); + assertEquals(6, + json.get("metrics").get("values").get(0).get("values").get("count").asDouble(), 0.001, json.toString()); } @Test - public void gaugeSnapshotsTracksCountMinMaxAvgPerPeriod() throws Exception { + void gaugeSnapshotsTracksCountMinMaxAvgPerPeriod() throws Exception { var snapshot = new MetricSnapshot(); snapshot.set(null, "bar", 20); snapshot.set(null, "bar", 40); @@ -71,23 +69,23 @@ public class StateHandlerTest extends StateHandlerTestBase { JsonNode json = requestAsJson(V1_URI + "all"); JsonNode metricValues = getFirstMetricValueNode(json); - assertEquals(json.toString(), 40, metricValues.get("last").asDouble(), 0.001); + assertEquals(40, metricValues.get("last").asDouble(), 0.001, json.toString()); // Last snapshot had explicit values set - assertEquals(json.toString(), 30, metricValues.get("average").asDouble(), 0.001); - assertEquals(json.toString(), 20, metricValues.get("min").asDouble(), 0.001); - assertEquals(json.toString(), 40, metricValues.get("max").asDouble(), 0.001); - assertEquals(json.toString(), 2, metricValues.get("count").asInt()); + assertEquals(30, metricValues.get("average").asDouble(), 0.001, json.toString()); + assertEquals(20, metricValues.get("min").asDouble(), 0.001, json.toString()); + assertEquals(40, metricValues.get("max").asDouble(), 0.001, json.toString()); + assertEquals(2, metricValues.get("count").asInt(), json.toString()); } private JsonNode getFirstMetricValueNode(JsonNode root) { - assertEquals(root.toString(), 1, root.get("metrics").get("values").size()); + assertEquals(1, root.get("metrics").get("values").size(), root.toString()); JsonNode metricValues = root.get("metrics").get("values").get(0).get("values"); - assertTrue(root.toString(), metricValues.has("last")); + assertTrue(metricValues.has("last"), root.toString()); return metricValues; } @Test - public void testReadabilityOfJsonReport() { + void testReadabilityOfJsonReport() { var snapshot = new MetricSnapshot(0L, SNAPSHOT_INTERVAL, TimeUnit.MILLISECONDS); snapshot.add(null, "foo", 1); var ctx = StateMetricContext.newInstance(Map.of("component", "test")); @@ -98,43 +96,43 @@ public class StateHandlerTest extends StateHandlerTestBase { snapshotProvider.setSnapshot(snapshot); advanceToNextSnapshot(); assertEquals("{\n" + - " \"time\" : 300000,\n" + - " \"status\" : {\n" + - " \"code\" : \"up\"\n" + - " },\n" + - " \"metrics\" : {\n" + - " \"snapshot\" : {\n" + - " \"from\" : 0.0,\n" + - " \"to\" : 300.0\n" + - " },\n" + - " \"values\" : [ {\n" + - " \"name\" : \"foo\",\n" + - " \"values\" : {\n" + - " \"count\" : 1,\n" + - " \"rate\" : 0.0033333333333333335\n" + - " }\n" + - " }, {\n" + - " \"name\" : \"bar\",\n" + - " \"values\" : {\n" + - " \"average\" : 3.5,\n" + - " \"sum\" : 14.0,\n" + - " \"count\" : 4,\n" + - " \"last\" : 5.0,\n" + - " \"max\" : 5.0,\n" + - " \"min\" : 2.0,\n" + - " \"rate\" : 0.013333333333333334\n" + - " },\n" + - " \"dimensions\" : {\n" + - " \"component\" : \"test\"\n" + - " }\n" + - " } ]\n" + - " }\n" + - "}", - requestAsString(V1_URI + "all")); + " \"time\" : 300000,\n" + + " \"status\" : {\n" + + " \"code\" : \"up\"\n" + + " },\n" + + " \"metrics\" : {\n" + + " \"snapshot\" : {\n" + + " \"from\" : 0.0,\n" + + " \"to\" : 300.0\n" + + " },\n" + + " \"values\" : [ {\n" + + " \"name\" : \"foo\",\n" + + " \"values\" : {\n" + + " \"count\" : 1,\n" + + " \"rate\" : 0.0033333333333333335\n" + + " }\n" + + " }, {\n" + + " \"name\" : \"bar\",\n" + + " \"values\" : {\n" + + " \"average\" : 3.5,\n" + + " \"sum\" : 14.0,\n" + + " \"count\" : 4,\n" + + " \"last\" : 5.0,\n" + + " \"max\" : 5.0,\n" + + " \"min\" : 2.0,\n" + + " \"rate\" : 0.013333333333333334\n" + + " },\n" + + " \"dimensions\" : {\n" + + " \"component\" : \"test\"\n" + + " }\n" + + " } ]\n" + + " }\n" + + "}", + requestAsString(V1_URI + "all")); } @Test - public void testHealthAggregation() throws Exception { + void testHealthAggregation() throws Exception { var context1 = StateMetricContext.newInstance(Map.of("port", Defaults.getDefaults().vespaWebServicePort())); var context2 = StateMetricContext.newInstance(Map.of("port", 80)); var snapshot = new MetricSnapshot(); @@ -146,20 +144,22 @@ public class StateHandlerTest extends StateHandlerTestBase { snapshotProvider.setSnapshot(snapshot); JsonNode json = requestAsJson(V1_URI + "health"); - assertEquals(json.toString(), "up", json.get("status").get("code").asText()); - assertEquals(json.toString(), 2, json.get("metrics").get("values").size()); - assertEquals(json.toString(), "requestsPerSecond", - json.get("metrics").get("values").get(0).get("name").asText()); - assertEquals(json.toString(), 6, - json.get("metrics").get("values").get(0).get("values").get("count").asDouble(), 0.001); - assertEquals(json.toString(), "latencySeconds", - json.get("metrics").get("values").get(1).get("name").asText()); - assertEquals(json.toString(), 0.03, - json.get("metrics").get("values").get(1).get("values").get("average").asDouble(), 0.001); + assertEquals("up", json.get("status").get("code").asText(), json.toString()); + assertEquals(2, json.get("metrics").get("values").size(), json.toString()); + assertEquals("requestsPerSecond", + json.get("metrics").get("values").get(0).get("name").asText(), + json.toString()); + assertEquals(6, + json.get("metrics").get("values").get(0).get("values").get("count").asDouble(), 0.001, json.toString()); + assertEquals("latencySeconds", + json.get("metrics").get("values").get(1).get("name").asText(), + json.toString()); + assertEquals(0.03, + json.get("metrics").get("values").get(1).get("values").get("average").asDouble(), 0.001, json.toString()); } @Test - public void testStateConfig() throws Exception { + void testStateConfig() throws Exception { JsonNode root = requestAsJson(V1_URI + "config"); JsonNode config = root.get("config"); @@ -168,7 +168,7 @@ public class StateHandlerTest extends StateHandlerTestBase { } @Test - public void testStateVersion() throws Exception { + void testStateVersion() throws Exception { JsonNode root = requestAsJson(V1_URI + "version"); JsonNode version = root.get("version"); diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java index b87a1179832..e3d01391a9c 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java @@ -9,8 +9,8 @@ import com.yahoo.container.core.ApplicationMetadataConfig; import com.yahoo.container.jdisc.RequestHandlerTestDriver; import com.yahoo.container.jdisc.config.HealthMonitorConfig; import com.yahoo.jdisc.Timer; -import org.junit.Before; -import org.junit.BeforeClass; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; @@ -38,7 +38,7 @@ public class StateHandlerTestBase { MockSnapshotProvider snapshotProvider; ComponentRegistry snapshotProviderRegistry; - @BeforeClass + @BeforeAll public static void setupClass() { healthMonitorConfig = new HealthMonitorConfig(new HealthMonitorConfig.Builder() .initialStatus("up")); @@ -46,7 +46,7 @@ public class StateHandlerTestBase { .generation(META_GENERATION)); } - @Before + @BeforeEach public void setupSnapshotProvider() { timer = currentTimeMillis::get; snapshotProvider = new MockSnapshotProvider(); diff --git a/container-core/src/test/java/com/yahoo/container/logging/CircularArrayAccessLogKeeperTest.java b/container-core/src/test/java/com/yahoo/container/logging/CircularArrayAccessLogKeeperTest.java index 451e6dc42bb..f942ee588be 100644 --- a/container-core/src/test/java/com/yahoo/container/logging/CircularArrayAccessLogKeeperTest.java +++ b/container-core/src/test/java/com/yahoo/container/logging/CircularArrayAccessLogKeeperTest.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.logging; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.Matchers.contains; @@ -14,11 +14,11 @@ public class CircularArrayAccessLogKeeperTest { private CircularArrayAccessLogKeeper circularArrayAccessLogKeeper = new CircularArrayAccessLogKeeper(); @Test - public void testSizeIsCroppedCorrectly() { + void testSizeIsCroppedCorrectly() { for (int i = 0; i < CircularArrayAccessLogKeeper.SIZE - 1; i++) { circularArrayAccessLogKeeper.addUri(String.valueOf(i)); } - assertThat(circularArrayAccessLogKeeper.getUris().size(), is(CircularArrayAccessLogKeeper.SIZE -1)); + assertThat(circularArrayAccessLogKeeper.getUris().size(), is(CircularArrayAccessLogKeeper.SIZE - 1)); circularArrayAccessLogKeeper.addUri("foo"); assertThat(circularArrayAccessLogKeeper.getUris().size(), is(CircularArrayAccessLogKeeper.SIZE)); circularArrayAccessLogKeeper.addUri("bar"); @@ -28,12 +28,12 @@ public class CircularArrayAccessLogKeeperTest { } @Test - public void testEmpty() { + void testEmpty() { assertThat(circularArrayAccessLogKeeper.getUris().size(), is(0)); } @Test - public void testSomeItems() { + void testSomeItems() { circularArrayAccessLogKeeper.addUri("a"); circularArrayAccessLogKeeper.addUri("b"); circularArrayAccessLogKeeper.addUri("b"); diff --git a/container-core/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java b/container-core/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java index eb862d69b5b..1c66a1d805a 100644 --- a/container-core/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/logging/JSONLogTestCase.java @@ -2,7 +2,7 @@ package com.yahoo.container.logging; import com.yahoo.yolean.trace.TraceNode; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -41,35 +41,36 @@ public class JSONLogTestCase { } @Test - public void test_json_log_entry() { + void test_json_log_entry() { RequestLogEntry entry = newRequestLogEntry("test").build(); - String expectedOutput = - "{\"ip\":\"152.200.54.243\"," + - "\"peeraddr\":\"152.200.54.243\"," + - "\"time\":920880005.023," + - "\"duration\":0.122," + - "\"responsesize\":9875," + - "\"requestsize\":0," + - "\"code\":200," + - "\"method\":\"GET\"," + - "\"uri\":\"?query=test\"," + - "\"version\":\"HTTP/1.1\"," + - "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + - "\"host\":\"localhost\"," + - "\"scheme\":null," + - "\"localport\":0," + - "\"search\":{" + - "\"totalhits\":1234," + - "\"hits\":0," + - "\"coverage\":{\"coverage\":100,\"documents\":100}" + - "}" + - "}"; + String expectedOutput = + "{\"ip\":\"152.200.54.243\"," + + "\"peeraddr\":\"152.200.54.243\"," + + "\"time\":920880005.023," + + "\"duration\":0.122," + + "\"responsesize\":9875," + + "\"requestsize\":0," + + "\"code\":200," + + "\"method\":\"GET\"," + + "\"uri\":\"?query=test\"," + + "\"version\":\"HTTP/1.1\"," + + "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + + "\"host\":\"localhost\"," + + "\"scheme\":null," + + "\"localport\":0," + + "\"search\":{" + + "\"totalhits\":1234," + + "\"hits\":0," + + "\"coverage\":{\"coverage\":100,\"documents\":100}" + + "}" + + "}"; assertJsonEquals(formatEntry(entry), expectedOutput); } + @Test - public void test_json_of_trace() { + void test_json_of_trace() { TraceNode root = new TraceNode("root", 7); RequestLogEntry entry = newRequestLogEntry("test") .traceNode(root) @@ -77,31 +78,32 @@ public class JSONLogTestCase { String expectedOutput = "{\"ip\":\"152.200.54.243\"," + - "\"peeraddr\":\"152.200.54.243\"," + - "\"time\":920880005.023," + - "\"duration\":0.122," + - "\"responsesize\":9875," + - "\"requestsize\":0," + - "\"code\":200," + - "\"method\":\"GET\"," + - "\"uri\":\"?query=test\"," + - "\"version\":\"HTTP/1.1\"," + - "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + - "\"host\":\"localhost\"," + - "\"scheme\":null," + - "\"localport\":0," + - "\"trace\":{\"timestamp\":0,\"message\":\"root\"}," + - "\"search\":{" + - "\"totalhits\":1234," + - "\"hits\":0," + - "\"coverage\":{\"coverage\":100,\"documents\":100}" + - "}" + - "}"; + "\"peeraddr\":\"152.200.54.243\"," + + "\"time\":920880005.023," + + "\"duration\":0.122," + + "\"responsesize\":9875," + + "\"requestsize\":0," + + "\"code\":200," + + "\"method\":\"GET\"," + + "\"uri\":\"?query=test\"," + + "\"version\":\"HTTP/1.1\"," + + "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + + "\"host\":\"localhost\"," + + "\"scheme\":null," + + "\"localport\":0," + + "\"trace\":{\"timestamp\":0,\"message\":\"root\"}," + + "\"search\":{" + + "\"totalhits\":1234," + + "\"hits\":0," + + "\"coverage\":{\"coverage\":100,\"documents\":100}" + + "}" + + "}"; assertJsonEquals(formatEntry(entry), expectedOutput); } + @Test - public void test_with_keyvalues() { + void test_with_keyvalues() { RequestLogEntry entry = newRequestLogEntry("test") .addExtraAttribute("singlevalue", "value1") .addExtraAttribute("multivalue", "value2") @@ -109,62 +111,62 @@ public class JSONLogTestCase { .build(); String expectedOutput = - "{\"ip\":\"152.200.54.243\"," + - "\"peeraddr\":\"152.200.54.243\"," + - "\"time\":920880005.023," + - "\"duration\":0.122," + - "\"responsesize\":9875," + - "\"requestsize\":0," + - "\"code\":200," + - "\"method\":\"GET\"," + - "\"uri\":\"?query=test\"," + - "\"version\":\"HTTP/1.1\"," + - "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + - "\"host\":\"localhost\"," + - "\"scheme\":null," + - "\"localport\":0," + - "\"search\":{" + - "\"totalhits\":1234," + - "\"hits\":0," + - "\"coverage\":{\"coverage\":100,\"documents\":100}" + - "}," + - "\"attributes\":{" + - "\"singlevalue\":\"value1\"," + - "\"multivalue\":[\"value2\",\"value3\"]}" + - "}"; + "{\"ip\":\"152.200.54.243\"," + + "\"peeraddr\":\"152.200.54.243\"," + + "\"time\":920880005.023," + + "\"duration\":0.122," + + "\"responsesize\":9875," + + "\"requestsize\":0," + + "\"code\":200," + + "\"method\":\"GET\"," + + "\"uri\":\"?query=test\"," + + "\"version\":\"HTTP/1.1\"," + + "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + + "\"host\":\"localhost\"," + + "\"scheme\":null," + + "\"localport\":0," + + "\"search\":{" + + "\"totalhits\":1234," + + "\"hits\":0," + + "\"coverage\":{\"coverage\":100,\"documents\":100}" + + "}," + + "\"attributes\":{" + + "\"singlevalue\":\"value1\"," + + "\"multivalue\":[\"value2\",\"value3\"]}" + + "}"; assertJsonEquals(formatEntry(entry), expectedOutput); } @Test - public void test_with_remoteaddrport() throws Exception { + void test_with_remoteaddrport() throws Exception { RequestLogEntry entry = newRequestLogEntry("test") .remoteAddress("FE80:0000:0000:0000:0202:B3FF:FE1E:8329") .build(); String expectedOutput = - "{\"ip\":\"152.200.54.243\"," + - "\"peeraddr\":\"152.200.54.243\"," + - "\"time\":920880005.023," + - "\"duration\":0.122," + - "\"responsesize\":9875," + - "\"requestsize\":0," + - "\"code\":200," + - "\"method\":\"GET\"," + - "\"uri\":\"?query=test\"," + - "\"version\":\"HTTP/1.1\"," + - "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + - "\"host\":\"localhost\"," + - "\"scheme\":null," + - "\"localport\":0," + - "\"remoteaddr\":\"FE80:0000:0000:0000:0202:B3FF:FE1E:8329\"," + - "\"search\":{" + - "\"totalhits\":1234," + - "\"hits\":0," + - "\"coverage\":{\"coverage\":100,\"documents\":100}" + - "}" + - "}"; + "{\"ip\":\"152.200.54.243\"," + + "\"peeraddr\":\"152.200.54.243\"," + + "\"time\":920880005.023," + + "\"duration\":0.122," + + "\"responsesize\":9875," + + "\"requestsize\":0," + + "\"code\":200," + + "\"method\":\"GET\"," + + "\"uri\":\"?query=test\"," + + "\"version\":\"HTTP/1.1\"," + + "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + + "\"host\":\"localhost\"," + + "\"scheme\":null," + + "\"localport\":0," + + "\"remoteaddr\":\"FE80:0000:0000:0000:0202:B3FF:FE1E:8329\"," + + "\"search\":{" + + "\"totalhits\":1234," + + "\"hits\":0," + + "\"coverage\":{\"coverage\":100,\"documents\":100}" + + "}" + + "}"; assertJsonEquals(formatEntry(entry), expectedOutput); @@ -175,34 +177,34 @@ public class JSONLogTestCase { .build(); expectedOutput = - "{\"ip\":\"152.200.54.243\"," + - "\"peeraddr\":\"152.200.54.243\"," + - "\"time\":920880005.023," + - "\"duration\":0.122," + - "\"responsesize\":9875," + - "\"requestsize\":0," + - "\"code\":200," + - "\"method\":\"GET\"," + - "\"uri\":\"?query=test\"," + - "\"version\":\"HTTP/1.1\"," + - "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + - "\"host\":\"localhost\"," + - "\"scheme\":null," + - "\"localport\":0," + - "\"remoteaddr\":\"FE80:0000:0000:0000:0202:B3FF:FE1E:8329\"," + - "\"remoteport\":1234," + - "\"search\":{" + - "\"totalhits\":1234," + - "\"hits\":0," + - "\"coverage\":{\"coverage\":100,\"documents\":100}" + - "}" + - "}"; + "{\"ip\":\"152.200.54.243\"," + + "\"peeraddr\":\"152.200.54.243\"," + + "\"time\":920880005.023," + + "\"duration\":0.122," + + "\"responsesize\":9875," + + "\"requestsize\":0," + + "\"code\":200," + + "\"method\":\"GET\"," + + "\"uri\":\"?query=test\"," + + "\"version\":\"HTTP/1.1\"," + + "\"agent\":\"Mozilla/4.05 [en] (Win95; I)\"," + + "\"host\":\"localhost\"," + + "\"scheme\":null," + + "\"localport\":0," + + "\"remoteaddr\":\"FE80:0000:0000:0000:0202:B3FF:FE1E:8329\"," + + "\"remoteport\":1234," + + "\"search\":{" + + "\"totalhits\":1234," + + "\"hits\":0," + + "\"coverage\":{\"coverage\":100,\"documents\":100}" + + "}" + + "}"; assertJsonEquals(formatEntry(entry), expectedOutput); } @Test - public void test_remote_address_same_as_ip_address() throws Exception { + void test_remote_address_same_as_ip_address() throws Exception { RequestLogEntry entry = newRequestLogEntry("test").build(); RequestLogEntry entrywithremote = newRequestLogEntry("test") .remoteAddress(entry.peerAddress().get()) @@ -212,7 +214,7 @@ public class JSONLogTestCase { } @Test - public void test_useragent_with_quotes() { + void test_useragent_with_quotes() { RequestLogEntry entry = new RequestLogEntry.Builder() .rawQuery("query=test") .rawPath("") @@ -231,26 +233,26 @@ public class JSONLogTestCase { .build(); String expectedOutput = - "{\"ip\":\"152.200.54.243\"," + - "\"peeraddr\":\"152.200.54.243\"," + - "\"time\":920880005.023," + - "\"duration\":0.122," + - "\"responsesize\":9875," + - "\"requestsize\":0," + - "\"code\":200," + - "\"method\":\"GET\"," + - "\"uri\":\"?query=test\"," + - "\"version\":\"HTTP/1.1\"," + - "\"agent\":\"Mozilla/4.05 [en] (Win95; I; \\\"Best Browser Ever\\\")\"," + - "\"host\":\"localhost\"," + - "\"scheme\":null," + - "\"localport\":0," + - "\"search\":{" + - "\"totalhits\":1234," + - "\"hits\":0," + - "\"coverage\":{\"coverage\":50,\"documents\":100,\"degraded\":{\"non-ideal-state\":true}}" + - "}" + - "}"; + "{\"ip\":\"152.200.54.243\"," + + "\"peeraddr\":\"152.200.54.243\"," + + "\"time\":920880005.023," + + "\"duration\":0.122," + + "\"responsesize\":9875," + + "\"requestsize\":0," + + "\"code\":200," + + "\"method\":\"GET\"," + + "\"uri\":\"?query=test\"," + + "\"version\":\"HTTP/1.1\"," + + "\"agent\":\"Mozilla/4.05 [en] (Win95; I; \\\"Best Browser Ever\\\")\"," + + "\"host\":\"localhost\"," + + "\"scheme\":null," + + "\"localport\":0," + + "\"search\":{" + + "\"totalhits\":1234," + + "\"hits\":0," + + "\"coverage\":{\"coverage\":50,\"documents\":100,\"degraded\":{\"non-ideal-state\":true}}" + + "}" + + "}"; assertJsonEquals(formatEntry(entry), expectedOutput); } @@ -280,15 +282,15 @@ public class JSONLogTestCase { } @Test - public void test_with_coverage_degradation() { + void test_with_coverage_degradation() { verifyCoverage("\"coverage\":{\"coverage\":50,\"documents\":100,\"degraded\":{\"non-ideal-state\":true}}", - newRequestLogEntry("test", new Coverage(100,200,200,0)).build()); + newRequestLogEntry("test", new Coverage(100, 200, 200, 0)).build()); verifyCoverage("\"coverage\":{\"coverage\":50,\"documents\":100,\"degraded\":{\"match-phase\":true}}", - newRequestLogEntry("test", new Coverage(100,200,200,1)).build()); + newRequestLogEntry("test", new Coverage(100, 200, 200, 1)).build()); verifyCoverage("\"coverage\":{\"coverage\":50,\"documents\":100,\"degraded\":{\"timeout\":true}}", - newRequestLogEntry("test", new Coverage(100,200,200,2)).build()); + newRequestLogEntry("test", new Coverage(100, 200, 200, 2)).build()); verifyCoverage("\"coverage\":{\"coverage\":50,\"documents\":100,\"degraded\":{\"adaptive-timeout\":true}}", - newRequestLogEntry("test", new Coverage(100,200,200,4)).build()); + newRequestLogEntry("test", new Coverage(100, 200, 200, 4)).build()); } private String formatEntry(RequestLogEntry entry) { diff --git a/container-core/src/test/java/com/yahoo/container/logging/LogFileHandlerTestCase.java b/container-core/src/test/java/com/yahoo/container/logging/LogFileHandlerTestCase.java index 2a3877100f5..b5c65733436 100644 --- a/container-core/src/test/java/com/yahoo/container/logging/LogFileHandlerTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/logging/LogFileHandlerTestCase.java @@ -4,9 +4,9 @@ package com.yahoo.container.logging; import com.yahoo.compress.ZstdCompressor; import com.yahoo.container.logging.LogFileHandler.Compression; import com.yahoo.io.IOUtils; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; +import org.junit.jupiter.api.io.TempDir; import java.io.File; import java.io.IOException; @@ -26,7 +26,7 @@ import java.util.zip.GZIPInputStream; import static com.yahoo.yolean.Exceptions.uncheck; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; /** * @author Bob Travis @@ -35,26 +35,26 @@ import static org.junit.Assert.assertNotEquals; public class LogFileHandlerTestCase { private static final int BUFFER_SIZE = 0x10000; - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + @TempDir + public File temporaryFolder; @Test - public void testIt() throws IOException { - File root = temporaryFolder.newFolder("logfilehandlertest"); + void testIt() throws IOException { + File root = newFolder(temporaryFolder, "logfilehandlertest"); String pattern = root.getAbsolutePath() + "/logfilehandlertest.%Y%m%d%H%M%S"; long[] rTimes = {1000, 2000, 10000}; LogFileHandler h = new LogFileHandler<>(Compression.NONE, BUFFER_SIZE, pattern, rTimes, null, 2048, "thread-name", new StringLogWriter()); long now = System.currentTimeMillis(); - long millisPerDay = 60*60*24*1000; - long tomorrowDays = (now / millisPerDay) +1; + long millisPerDay = 60 * 60 * 24 * 1000; + long tomorrowDays = (now / millisPerDay) + 1; long tomorrowMillis = tomorrowDays * millisPerDay; - assertThat(tomorrowMillis+1000).isEqualTo(h.logThread.getNextRotationTime(tomorrowMillis)); - assertThat(tomorrowMillis+10000).isEqualTo(h.logThread.getNextRotationTime(tomorrowMillis+3000)); + assertThat(tomorrowMillis + 1000).isEqualTo(h.logThread.getNextRotationTime(tomorrowMillis)); + assertThat(tomorrowMillis + 10000).isEqualTo(h.logThread.getNextRotationTime(tomorrowMillis + 3000)); String message = "test"; h.publish(message); - h.publish( "another test"); + h.publish("another test"); h.rotateNow(); h.publish(message); h.flush(); @@ -62,41 +62,42 @@ public class LogFileHandlerTestCase { } @Test - public void testSimpleLogging() throws IOException { - File logFile = temporaryFolder.newFile("testLogFileG1.txt"); + void testSimpleLogging() throws IOException { + File logFile = File.createTempFile("testLogFileG1.txt", null, temporaryFolder); - //create logfilehandler - LogFileHandler h = new LogFileHandler<>(Compression.NONE, BUFFER_SIZE, logFile.getAbsolutePath(), "0 5 ...", null, 2048, "thread-name", new StringLogWriter()); + //create logfilehandler + LogFileHandler h = new LogFileHandler<>(Compression.NONE, BUFFER_SIZE, logFile.getAbsolutePath(), "0 5 ...", null, 2048, "thread-name", new StringLogWriter()); - //write log - h.publish("testDeleteFileFirst1"); - h.flush(); - h.shutdown(); + //write log + h.publish("testDeleteFileFirst1"); + h.flush(); + h.shutdown(); } @Test - public void testDeleteFileDuringLogging() throws IOException { - File logFile = temporaryFolder.newFile("testLogFileG2.txt"); + void testDeleteFileDuringLogging() throws IOException { + File logFile = File.createTempFile("testLogFileG2.txt", null, temporaryFolder); - //create logfilehandler - LogFileHandler h = new LogFileHandler<>(Compression.NONE, BUFFER_SIZE, logFile.getAbsolutePath(), "0 5 ...", null, 2048, "thread-name", new StringLogWriter()); + //create logfilehandler + LogFileHandler h = new LogFileHandler<>(Compression.NONE, BUFFER_SIZE, logFile.getAbsolutePath(), "0 5 ...", null, 2048, "thread-name", new StringLogWriter()); - //write log - h.publish("testDeleteFileDuringLogging1"); - h.flush(); + //write log + h.publish("testDeleteFileDuringLogging1"); + h.flush(); - //delete log file + //delete log file logFile.delete(); - //write log again - h.publish("testDeleteFileDuringLogging2"); - h.flush(); - h.shutdown(); + //write log again + h.publish("testDeleteFileDuringLogging2"); + h.flush(); + h.shutdown(); } - @Test(timeout = /*5 minutes*/300_000) - public void testSymlink() throws IOException, InterruptedException { - File root = temporaryFolder.newFolder("testlogforsymlinkchecking"); + @Test + @Timeout(300_000) + void testSymlink() throws IOException, InterruptedException { + File root = newFolder(temporaryFolder, "testlogforsymlinkchecking"); Formatter formatter = new Formatter() { public String format(LogRecord r) { DateFormat df = new SimpleDateFormat("yyyy.MM.dd:HH:mm:ss.SSS"); @@ -125,9 +126,10 @@ public class LogFileHandlerTestCase { handler.shutdown(); } - @Test(timeout = /*5 minutes*/300_000) - public void compresses_previous_log_file() throws InterruptedException, IOException { - File root = temporaryFolder.newFolder("compressespreviouslogfile"); + @Test + @Timeout(300_000) + void compresses_previous_log_file() throws InterruptedException, IOException { + File root = newFolder(temporaryFolder, "compressespreviouslogfile"); LogFileHandler firstHandler = new LogFileHandler<>( Compression.ZSTD, BUFFER_SIZE, root.getAbsolutePath() + "/compressespreviouslogfile.%Y%m%d%H%M%S%s", new long[]{0}, "symlink", 2048, "thread-name", new StringLogWriter()); firstHandler.publishAndWait("test"); @@ -135,7 +137,7 @@ public class LogFileHandlerTestCase { assertThat(Files.size(Paths.get(firstHandler.getFileName()))).isEqualTo(5); assertThat(root.toPath().resolve("symlink").toRealPath().toString()).isEqualTo( - Paths.get(firstHandler.getFileName()).toRealPath().toString()); + Paths.get(firstHandler.getFileName()).toRealPath().toString()); LogFileHandler secondHandler = new LogFileHandler<>( Compression.ZSTD, BUFFER_SIZE, root.getAbsolutePath() + "/compressespreviouslogfile.%Y%m%d%H%M%S%s", new long[]{0}, "symlink", 2048, "thread-name", new StringLogWriter()); @@ -143,22 +145,24 @@ public class LogFileHandlerTestCase { secondHandler.rotateNow(); assertThat(root.toPath().resolve("symlink").toRealPath().toString()).isEqualTo( - Paths.get(secondHandler.getFileName()).toRealPath().toString()); + Paths.get(secondHandler.getFileName()).toRealPath().toString()); while (Files.exists(root.toPath().resolve(firstHandler.getFileName()))) Thread.sleep(1); assertThat(Files.exists(Paths.get(firstHandler.getFileName() + ".zst"))).isTrue(); secondHandler.shutdown(); } - @Test(timeout = /*5 minutes*/300_000) - public void testcompression_gzip() throws InterruptedException, IOException { + @Test + @Timeout(300_000) + void testcompression_gzip() throws InterruptedException, IOException { testcompression( Compression.GZIP, "gz", (compressedFile, __) -> uncheck(() -> new String(new GZIPInputStream(Files.newInputStream(compressedFile)).readAllBytes()))); } - @Test(timeout = /*5 minutes*/300_000) - public void testcompression_zstd() throws InterruptedException, IOException { + @Test + @Timeout(300_000) + void testcompression_zstd() throws InterruptedException, IOException { testcompression( Compression.ZSTD, "zst", (compressedFile, uncompressedSize) -> uncheck(() -> { @@ -173,7 +177,7 @@ public class LogFileHandlerTestCase { private void testcompression(Compression compression, String fileExtension, BiFunction decompressor) throws IOException, InterruptedException { - File root = temporaryFolder.newFolder("testcompression" + compression.name()); + File root = newFolder(temporaryFolder, "testcompression" + compression.name()); LogFileHandler h = new LogFileHandler<>( compression, BUFFER_SIZE, root.getAbsolutePath() + "/logfilehandlertest.%Y%m%d%H%M%S%s", new long[]{0}, null, 2048, "thread-name", new StringLogWriter()); @@ -206,5 +210,23 @@ public class LogFileHandlerTestCase { public void write(String record, OutputStream outputStream) throws IOException { outputStream.write(record.getBytes(StandardCharsets.UTF_8)); } + + private static File newFolder(File root, String... subDirs) throws IOException { + String subFolder = String.join("/", subDirs); + File result = new File(root, subFolder); + if (!result.mkdirs()) { + throw new IOException("Couldn't create folders " + root); + } + return result; + } + } + + private static File newFolder(File root, String... subDirs) throws IOException { + String subFolder = String.join("/", subDirs); + File result = new File(root, subFolder); + if (!result.mkdirs()) { + throw new IOException("Couldn't create folders " + root); + } + return result; } } diff --git a/container-core/src/test/java/com/yahoo/container/logging/test/LogFormatterTestCase.java b/container-core/src/test/java/com/yahoo/container/logging/test/LogFormatterTestCase.java index 382f17f072f..c3526b42f55 100644 --- a/container-core/src/test/java/com/yahoo/container/logging/test/LogFormatterTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/logging/test/LogFormatterTestCase.java @@ -2,11 +2,11 @@ package com.yahoo.container.logging.test; import com.yahoo.container.logging.LogFormatter; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Date; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Bob Travis @@ -14,14 +14,14 @@ import static org.junit.Assert.assertEquals; public class LogFormatterTestCase { @Test - public void testIt() { + void testIt() { java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("UTC")); @SuppressWarnings("deprecation") - long time = new Date(103,7,25,13,30,35).getTime(); - String result = LogFormatter.insertDate("test%Y%m%d%H%M%S%x",time); - assertEquals("test20030825133035Aug",result); - result = LogFormatter.insertDate("test%s%T",time); - assertEquals("test000"+time, result); + long time = new Date(103, 7, 25, 13, 30, 35).getTime(); + String result = LogFormatter.insertDate("test%Y%m%d%H%M%S%x", time); + assertEquals("test20030825133035Aug", result); + result = LogFormatter.insertDate("test%s%T", time); + assertEquals("test000" + time, result); } } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/CookieTestCase.java b/container-core/src/test/java/com/yahoo/jdisc/http/CookieTestCase.java index cf43a6470bc..3f18d41badd 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/CookieTestCase.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/CookieTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.jdisc.http; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.List; import java.util.concurrent.TimeUnit; @@ -9,9 +9,7 @@ import java.util.concurrent.TimeUnit; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.equalTo; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @author Simon Thoresen Hult @@ -20,19 +18,19 @@ import static org.junit.Assert.assertTrue; public class CookieTestCase { @Test - public void requireThatDefaultValuesAreSane() { + void requireThatDefaultValuesAreSane() { Cookie cookie = new Cookie("foo", "bar"); assertEquals("foo", cookie.getName()); assertEquals("bar", cookie.getValue()); - assertEquals(null, cookie.getDomain()); + assertNull(cookie.getDomain()); assertEquals(Integer.MIN_VALUE, cookie.getMaxAge(TimeUnit.SECONDS)); - assertEquals(null, cookie.getPath()); + assertNull(cookie.getPath()); assertEquals(false, cookie.isHttpOnly()); assertEquals(false, cookie.isSecure()); } @Test - public void requireThatAccessorsWork() { + void requireThatAccessorsWork() { final Cookie cookie = new Cookie(); cookie.setName("foo"); assertEquals("foo", cookie.getName()); @@ -70,7 +68,7 @@ public class CookieTestCase { } @Test - public void requireThatCopyConstructorWorks() { + void requireThatCopyConstructorWorks() { final Cookie lhs = newSetCookie("foo"); final Cookie rhs = new Cookie(lhs); assertEquals(rhs.getName(), rhs.getName()); @@ -83,23 +81,23 @@ public class CookieTestCase { } @Test - public void requireThatHashCodeIsImplemented() { + void requireThatHashCodeIsImplemented() { final Cookie cookie = newCookie("foo"); - assertFalse(cookie.hashCode() == new Cookie().hashCode()); + assertNotNull(new Cookie().hashCode()); assertEquals(cookie.hashCode(), cookie.hashCode()); assertEquals(cookie.hashCode(), new Cookie(cookie).hashCode()); } @Test - public void requireThatEqualsIsImplemented() { + void requireThatEqualsIsImplemented() { final Cookie cookie = newCookie("foo"); - assertFalse(cookie.equals(new Cookie())); + assertNotEquals(cookie, new Cookie()); assertEquals(cookie, cookie); assertEquals(cookie, new Cookie(cookie)); } @Test - public void requireThatCookieCanBeEncoded() { + void requireThatCookieCanBeEncoded() { assertEncodeCookie( "foo.name=foo.value", List.of(newCookie("foo"))); @@ -109,7 +107,7 @@ public class CookieTestCase { } @Test - public void requireThatSetCookieCanBeEncoded() { + void requireThatSetCookieCanBeEncoded() { assertEncodeSetCookie( List.of("foo.name=foo.value; Path=path; Domain=domain; Secure; HttpOnly", "foo.name=foo.value; Path=path; Domain=domain; Secure; HttpOnly; SameSite=None"), @@ -118,7 +116,7 @@ public class CookieTestCase { } @Test - public void requireThatCookieCanBeDecoded() { + void requireThatCookieCanBeDecoded() { final Cookie foo = new Cookie(); foo.setName("foo.name"); foo.setValue("foo.value"); @@ -127,11 +125,11 @@ public class CookieTestCase { final Cookie bar = new Cookie(); bar.setName("bar.name"); bar.setValue("bar.value"); - assertDecodeCookie(List.of(foo, bar),"foo.name=foo.value; bar.name=bar.value"); + assertDecodeCookie(List.of(foo, bar), "foo.name=foo.value; bar.name=bar.value"); } @Test - public void requireThatSetCookieCanBeDecoded() { + void requireThatSetCookieCanBeDecoded() { final Cookie foo = new Cookie(); foo.setName("foo.name"); foo.setValue("foo.value"); @@ -152,45 +150,45 @@ public class CookieTestCase { } @Test - public void requireThatCookieDecoderWorksForGenericValidCookies() { + void requireThatCookieDecoderWorksForGenericValidCookies() { Cookie.fromCookieHeader("Y=v=1&n=8es5opih9ljtk&l=og0_iedeh0qqvqqr/o&p=m2g2rs6012000000&r=pv&lg=en-US&intl=" + - "us&np=1; T=z=h.nzPBhSP4PBVd5JqacVnIbNjU1NAY2TjYzNzVOTjYzNzM0Mj&a=YAE&sk=DAALShmNQ" + - "vhoZV&ks=EAABsibvMK6ejwn0uUoS4rC9w--~E&d=c2wBTVRJeU13RXhPVEUwTURJNU9URTBNRFF6TlRJ" + - "NU5nLS0BYQFZQUUBZwE1VkNHT0w3VUVDTklJVEdRR1FXT0pOSkhEQQFzY2lkAWNOUnZIbEc3ZHZoVHlWZ" + - "0NoXzEwYkxhOVdzcy0Bb2sBWlcwLQF0aXABWUhwTmVDAXp6AWgubnpQQkE3RQ--"); + "us&np=1; T=z=h.nzPBhSP4PBVd5JqacVnIbNjU1NAY2TjYzNzVOTjYzNzM0Mj&a=YAE&sk=DAALShmNQ" + + "vhoZV&ks=EAABsibvMK6ejwn0uUoS4rC9w--~E&d=c2wBTVRJeU13RXhPVEUwTURJNU9URTBNRFF6TlRJ" + + "NU5nLS0BYQFZQUUBZwE1VkNHT0w3VUVDTklJVEdRR1FXT0pOSkhEQQFzY2lkAWNOUnZIbEc3ZHZoVHlWZ" + + "0NoXzEwYkxhOVdzcy0Bb2sBWlcwLQF0aXABWUhwTmVDAXp6AWgubnpQQkE3RQ--"); } @Test - public void requireThatCookieDecoderWorksForYInvalidCookies() { + void requireThatCookieDecoderWorksForYInvalidCookies() { Cookie.fromCookieHeader("Y=v=1&n=77nkr5t7o4nqn&l=og0_iedeh0qqvqqr/o&p=m2g2rs6012000000&r=pv&lg=en-US&intl=" + - "us&np=1; T=z=05nzPB0NP4PBN/n0gwc1AWGNjU1NAY2TjYzNzVOTjYzNzM0Mj&a=QAE&sk=DAA4R2svo" + - "osjIa&ks=EAAj3nBQFkN4ZmuhqFxJdNoaQ--~E&d=c2wBTVRJeU13RXhPVEUwTURJNU9URTBNRFF6TlRJ" + - "NU5nLS0BYQFRQUUBZwE1VkNHT0w3VUVDTklJVEdRR1FXT0pOSkhEQQFzY2lkAUpPalRXOEVsUDZrR3RHT" + - "VZkX29CWk53clJIQS0BdGlwAVlIcE5lQwF6egEwNW56UEJBN0U-"); + "us&np=1; T=z=05nzPB0NP4PBN/n0gwc1AWGNjU1NAY2TjYzNzVOTjYzNzM0Mj&a=QAE&sk=DAA4R2svo" + + "osjIa&ks=EAAj3nBQFkN4ZmuhqFxJdNoaQ--~E&d=c2wBTVRJeU13RXhPVEUwTURJNU9URTBNRFF6TlRJ" + + "NU5nLS0BYQFRQUUBZwE1VkNHT0w3VUVDTklJVEdRR1FXT0pOSkhEQQFzY2lkAUpPalRXOEVsUDZrR3RHT" + + "VZkX29CWk53clJIQS0BdGlwAVlIcE5lQwF6egEwNW56UEJBN0U-"); } @Test - public void requireThatCookieDecoderWorksForYValidCookies() { + void requireThatCookieDecoderWorksForYValidCookies() { Cookie.fromCookieHeader("Y=v=1&n=3767k6te5aj2s&l=1v4u3001uw2ys00q0rw0qrw34q0x5s3u/o&p=030vvit012000000&iz=" + - "&r=pu&lg=en-US,it-IT,it&intl=it&np=1; T=z=m38yPBmLk3PBWvehTPBhBHYNU5OBjQ3NE5ONU5P" + - "NDY0NzU0M0&a=IAE&sk=DAAAx5URYgbhQ6&ks=EAA4rTgdlAGeMQmdYeM_VehGg--~E&d=c2wBTWprNUF" + - "UTXdNems1TWprNE16RXpNREl6TkRneAFhAUlBRQFnAUVJSlNMSzVRM1pWNVNLQVBNRkszQTRaWDZBAXNj" + - "aWQBSUlyZW5paXp4NS4zTUZMMDVlSVhuMjZKYUcwLQFvawFaVzAtAWFsAW1hcmlvYXByZWFAeW1haWwuY" + - "29tAXp6AW0zOHlQQkE3RQF0aXABaXRZOFRE"); + "&r=pu&lg=en-US,it-IT,it&intl=it&np=1; T=z=m38yPBmLk3PBWvehTPBhBHYNU5OBjQ3NE5ONU5P" + + "NDY0NzU0M0&a=IAE&sk=DAAAx5URYgbhQ6&ks=EAA4rTgdlAGeMQmdYeM_VehGg--~E&d=c2wBTWprNUF" + + "UTXdNems1TWprNE16RXpNREl6TkRneAFhAUlBRQFnAUVJSlNMSzVRM1pWNVNLQVBNRkszQTRaWDZBAXNj" + + "aWQBSUlyZW5paXp4NS4zTUZMMDVlSVhuMjZKYUcwLQFvawFaVzAtAWFsAW1hcmlvYXByZWFAeW1haWwuY" + + "29tAXp6AW0zOHlQQkE3RQF0aXABaXRZOFRE"); } @Test - public void requireThatCookieDecoderWorksForGenericInvalidCookies() { + void requireThatCookieDecoderWorksForGenericInvalidCookies() { Cookie.fromCookieHeader("Y=v=1&n=e92s5cq8qbs6h&l=3kdb0f.3@i126be10b.d4j/o&p=m1f2qgmb13000107&r=g5&lg=en-US" + - "&intl=us; T=z=TXp3OBTrQ8OBFMcj3GBpFSyNk83TgY2MjMwN04zMDMw&a=YAE&sk=DAAVfaNwLeISrX" + - "&ks=EAAOeNNgY8c5hV8YzPYmnrW7w--~E&d=c2wBTVRnd09RRXhOVFEzTURrME56UTMBYQFZQUUBZwFMQ" + - "U5NT0Q2UjY2Q0I1STY0R0tKSUdVQVlRRQFvawFaVzAtAXRpcAFMTlRUdkMBenoBVFhwM09CQTdF&af=QU" + - "FBQ0FDQURBd0FCMUNCOUFJQUJBQ0FEQU1IME1nTWhNbiZ0cz0xMzIzMjEwMTk1JnBzPVA1d3NYakh0aVk" + - "2UDMuUGZ6WkdTT2ctLQ--"); + "&intl=us; T=z=TXp3OBTrQ8OBFMcj3GBpFSyNk83TgY2MjMwN04zMDMw&a=YAE&sk=DAAVfaNwLeISrX" + + "&ks=EAAOeNNgY8c5hV8YzPYmnrW7w--~E&d=c2wBTVRnd09RRXhOVFEzTURrME56UTMBYQFZQUUBZwFMQ" + + "U5NT0Q2UjY2Q0I1STY0R0tKSUdVQVlRRQFvawFaVzAtAXRpcAFMTlRUdkMBenoBVFhwM09CQTdF&af=QU" + + "FBQ0FDQURBd0FCMUNCOUFJQUJBQ0FEQU1IME1nTWhNbiZ0cz0xMzIzMjEwMTk1JnBzPVA1d3NYakh0aVk" + + "2UDMuUGZ6WkdTT2ctLQ--"); } @Test - public void requireMappingBetweenSameSiteAndJettySameSite() { + void requireMappingBetweenSameSiteAndJettySameSite() { for (var jdiscSameSite : Cookie.SameSite.values()) { assertEquals(jdiscSameSite, Cookie.SameSite.fromJettySameSite(jdiscSameSite.jettySameSite())); } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/HttpHeadersTestCase.java b/container-core/src/test/java/com/yahoo/jdisc/http/HttpHeadersTestCase.java index 3ab4fb1078c..08f646c069e 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/HttpHeadersTestCase.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/HttpHeadersTestCase.java @@ -1,9 +1,9 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.jdisc.http; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Simon Thoresen Hult @@ -11,7 +11,7 @@ import static org.junit.Assert.assertEquals; public class HttpHeadersTestCase { @Test - public void requireThatHeadersDoNotChange() { + void requireThatHeadersDoNotChange() { assertEquals("X-JDisc-Disable-Chunking", HttpHeaders.Names.X_DISABLE_CHUNKING); } } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java b/container-core/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java index 7f9e1e8bd64..30e58f6d2f5 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.jdisc.http; import com.yahoo.jdisc.Container; import com.yahoo.jdisc.Request; import com.yahoo.jdisc.service.CurrentContainer; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.InetSocketAddress; import java.net.URI; @@ -13,10 +13,7 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -27,7 +24,7 @@ import static org.mockito.Mockito.when; public class HttpRequestTestCase { @Test - public void requireThatSimpleServerConstructorsUseReasonableDefaults() { + void requireThatSimpleServerConstructorsUseReasonableDefaults() { URI uri = URI.create("http://localhost/"); HttpRequest request = HttpRequest.newServerRequest(mockContainer(), uri); assertTrue(request.isServerRequest()); @@ -49,7 +46,7 @@ public class HttpRequestTestCase { } @Test - public void requireThatSimpleClientConstructorsUseReasonableDefaults() { + void requireThatSimpleClientConstructorsUseReasonableDefaults() { Request parent = new Request(mockContainer(), URI.create("http://localhost/")); URI uri = URI.create("http://remotehost/"); @@ -73,11 +70,11 @@ public class HttpRequestTestCase { } @Test - public void requireThatAccessorsWork() { + void requireThatAccessorsWork() { URI uri = URI.create("http://localhost/path?foo=bar&foo=baz&cox=69"); InetSocketAddress address = new InetSocketAddress("remotehost", 69); final HttpRequest request = HttpRequest.newServerRequest(mockContainer(), uri, HttpRequest.Method.GET, - HttpRequest.Version.HTTP_1_1, address, 1L); + HttpRequest.Version.HTTP_1_1, address, 1L); assertEquals(uri, request.getUri()); assertEquals(HttpRequest.Method.GET, request.getMethod()); @@ -110,7 +107,7 @@ public class HttpRequestTestCase { } @Test - public void requireThatHttp10EncodingIsNeverChunked() throws Exception { + void requireThatHttp10EncodingIsNeverChunked() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_0); assertFalse(request.isChunked()); request.headers().add(HttpHeaders.Names.TRANSFER_ENCODING, HttpHeaders.Values.CHUNKED); @@ -118,20 +115,20 @@ public class HttpRequestTestCase { } @Test - public void requireThatHttp11EncodingIsNotChunkedByDefault() throws Exception { + void requireThatHttp11EncodingIsNotChunkedByDefault() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_1); assertFalse(request.isChunked()); } @Test - public void requireThatHttp11EncodingCanBeChunked() throws Exception { + void requireThatHttp11EncodingCanBeChunked() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_1); request.headers().add(HttpHeaders.Names.TRANSFER_ENCODING, HttpHeaders.Values.CHUNKED); assertTrue(request.isChunked()); } @Test - public void requireThatHttp10ConnectionIsAlwaysClose() throws Exception { + void requireThatHttp10ConnectionIsAlwaysClose() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_0); assertFalse(request.isKeepAlive()); request.headers().add(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.KEEP_ALIVE); @@ -139,39 +136,39 @@ public class HttpRequestTestCase { } @Test - public void requireThatHttp11ConnectionIsKeepAliveByDefault() throws Exception { + void requireThatHttp11ConnectionIsKeepAliveByDefault() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_1); assertTrue(request.isKeepAlive()); } @Test - public void requireThatHttp11ConnectionCanBeClose() throws Exception { + void requireThatHttp11ConnectionCanBeClose() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_1); request.headers().add(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.CLOSE); assertFalse(request.isKeepAlive()); } @Test - public void requireThatHttp10NeverHasChunkedResponse() throws Exception { + void requireThatHttp10NeverHasChunkedResponse() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_0); assertFalse(request.hasChunkedResponse()); } @Test - public void requireThatHttp11HasDefaultChunkedResponse() throws Exception { + void requireThatHttp11HasDefaultChunkedResponse() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_1); assertTrue(request.hasChunkedResponse()); } @Test - public void requireThatHttp11CanDisableChunkedResponse() throws Exception { + void requireThatHttp11CanDisableChunkedResponse() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_0); request.headers().add(com.yahoo.jdisc.http.HttpHeaders.Names.X_DISABLE_CHUNKING, "true"); assertFalse(request.hasChunkedResponse()); } @Test - public void requireThatCookieHeaderCanBeEncoded() throws Exception { + void requireThatCookieHeaderCanBeEncoded() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_0); final List cookies = Collections.singletonList(new Cookie("foo", "bar")); request.encodeCookieHeader(cookies); @@ -181,7 +178,7 @@ public class HttpRequestTestCase { } @Test - public void requireThatCookieHeaderCanBeDecoded() throws Exception { + void requireThatCookieHeaderCanBeDecoded() throws Exception { final HttpRequest request = newRequest(HttpRequest.Version.HTTP_1_0); final List cookies = Collections.singletonList(new Cookie("foo", "bar")); request.encodeCookieHeader(cookies); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/HttpResponseTestCase.java b/container-core/src/test/java/com/yahoo/jdisc/http/HttpResponseTestCase.java index c4cf1de0e4e..09682e73630 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/HttpResponseTestCase.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/HttpResponseTestCase.java @@ -5,18 +5,14 @@ import com.yahoo.jdisc.Container; import com.yahoo.jdisc.Request; import com.yahoo.jdisc.Response; import com.yahoo.jdisc.service.CurrentContainer; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.URI; import java.util.Arrays; import java.util.Collections; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -27,7 +23,7 @@ import static org.mockito.Mockito.when; public class HttpResponseTestCase { @Test - public void requireThatAccessorsWork() throws Exception { + void requireThatAccessorsWork() throws Exception { final HttpResponse response = newResponse(6, "foo"); assertEquals(6, response.getStatus()); assertEquals("foo", response.getMessage()); @@ -49,7 +45,7 @@ public class HttpResponseTestCase { } @Test - public void requireThatStatusCodesDoNotChange() { + void requireThatStatusCodesDoNotChange() { assertEquals(HttpResponse.Status.CREATED, 201); assertEquals(HttpResponse.Status.ACCEPTED, 202); assertEquals(HttpResponse.Status.NON_AUTHORITATIVE_INFORMATION, 203); @@ -79,14 +75,14 @@ public class HttpResponseTestCase { } @Test - public void requireThat5xxIsServerError() { + void requireThat5xxIsServerError() { for (int i = 0; i < 999; ++i) { assertEquals(i >= 500 && i < 600, HttpResponse.isServerError(new Response(i))); } } @Test - public void requireThatCookieHeaderCanBeEncoded() throws Exception { + void requireThatCookieHeaderCanBeEncoded() throws Exception { final HttpResponse response = newResponse(69, "foo"); final List cookies = Collections.singletonList(new Cookie("foo", "bar")); response.encodeSetCookieHeader(cookies); @@ -96,18 +92,18 @@ public class HttpResponseTestCase { } @Test - public void requireThatMultipleCookieHeadersCanBeEncoded() throws Exception { + void requireThatMultipleCookieHeadersCanBeEncoded() throws Exception { final HttpResponse response = newResponse(69, "foo"); final List cookies = Arrays.asList(new Cookie("foo", "bar"), new Cookie("baz", "cox")); response.encodeSetCookieHeader(cookies); final List headers = response.headers().get(HttpHeaders.Names.SET_COOKIE); assertEquals(2, headers.size()); assertEquals(Cookie.toSetCookieHeaders(Arrays.asList(new Cookie("foo", "bar"), new Cookie("baz", "cox"))), - headers); + headers); } @Test - public void requireThatCookieHeaderCanBeDecoded() throws Exception { + void requireThatCookieHeaderCanBeDecoded() throws Exception { final HttpResponse response = newResponse(69, "foo"); final List cookies = Collections.singletonList(new Cookie("foo", "bar")); response.encodeSetCookieHeader(cookies); @@ -115,7 +111,7 @@ public class HttpResponseTestCase { } @Test - public void requireThatMultipleCookieHeadersCanBeDecoded() throws Exception { + void requireThatMultipleCookieHeadersCanBeDecoded() throws Exception { final HttpResponse response = newResponse(69, "foo"); final List cookies = Arrays.asList(new Cookie("foo", "bar"), new Cookie("baz", "cox")); response.encodeSetCookieHeader(cookies); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/DiscFilterRequestTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/DiscFilterRequestTest.java index 294e19aa2a1..0f5474cbf57 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/DiscFilterRequestTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/DiscFilterRequestTest.java @@ -7,8 +7,7 @@ import com.yahoo.jdisc.http.HttpHeaders; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.http.HttpRequest.Version; import com.yahoo.jdisc.test.TestDriver; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.InetSocketAddress; import java.net.URI; @@ -18,7 +17,7 @@ import java.util.Collections; import java.util.Enumeration; import java.util.List; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; public class DiscFilterRequestTest { @@ -32,323 +31,323 @@ public class DiscFilterRequestTest { return request; } - @Test - public void testRequestConstruction(){ - URI uri = URI.create("http://localhost:8080/test?param1=abc"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - httpReq.headers().add(HttpHeaders.Names.CONTENT_TYPE, "text/html;charset=UTF-8"); - httpReq.headers().add("X-Custom-Header", "custom_header"); - List cookies = new ArrayList<>(); - cookies.add(new Cookie("XYZ", "value")); - cookies.add(new Cookie("ABC", "value")); - httpReq.encodeCookieHeader(cookies); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertEquals(request.getHeader("X-Custom-Header"),"custom_header"); - Assert.assertEquals(request.getHeader(HttpHeaders.Names.CONTENT_TYPE),"text/html;charset=UTF-8"); - - List c = request.getCookies(); - Assert.assertNotNull(c); - Assert.assertEquals(c.size(), 2); - - Assert.assertEquals(request.getParameter("param1"),"abc"); - Assert.assertNull(request.getParameter("param2")); - Assert.assertEquals(request.getVersion(),Version.HTTP_1_1); - Assert.assertEquals(request.getProtocol(),Version.HTTP_1_1.name()); - Assert.assertNull(request.getRequestedSessionId()); - } - - @Test - public void testRequestConstruction2() { - URI uri = URI.create("http://localhost:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - httpReq.headers().add("some-header", "some-value"); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - - request.addHeader("some-header", "some-value"); - String value = request.getUntreatedHeaders().get("some-header").get(0); - Assert.assertEquals(value,"some-value"); - } - - @Test - public void testRequestAttributes() { - URI uri = URI.create("http://localhost:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - request.setAttribute("some_attr", "some_value"); - - Assert.assertTrue(request.containsAttribute("some_attr")); - - Assert.assertEquals(request.getAttribute("some_attr"),"some_value"); - - } - - @Test - public void testGetAttributeNames() { - URI uri = URI.create("http://localhost:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - request.setAttribute("some_attr_1", "some_value1"); - request.setAttribute("some_attr_2", "some_value2"); - - Enumeration e = request.getAttributeNames(); - List attrList = Collections.list(e); - Assert.assertEquals(2, attrList.size()); - Assert.assertTrue(attrList.contains("some_attr_1")); - Assert.assertTrue(attrList.contains("some_attr_2")); - - } - - @Test - public void testRemoveAttribute() { - URI uri = URI.create("http://localhost:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); + @Test + void testRequestConstruction() { + URI uri = URI.create("http://localhost:8080/test?param1=abc"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + httpReq.headers().add(HttpHeaders.Names.CONTENT_TYPE, "text/html;charset=UTF-8"); + httpReq.headers().add("X-Custom-Header", "custom_header"); + List cookies = new ArrayList<>(); + cookies.add(new Cookie("XYZ", "value")); + cookies.add(new Cookie("ABC", "value")); + httpReq.encodeCookieHeader(cookies); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + assertEquals(request.getHeader("X-Custom-Header"), "custom_header"); + assertEquals(request.getHeader(HttpHeaders.Names.CONTENT_TYPE), "text/html;charset=UTF-8"); + + List c = request.getCookies(); + assertNotNull(c); + assertEquals(c.size(), 2); + + assertEquals(request.getParameter("param1"), "abc"); + assertNull(request.getParameter("param2")); + assertEquals(request.getVersion(), Version.HTTP_1_1); + assertEquals(request.getProtocol(), Version.HTTP_1_1.name()); + assertNull(request.getRequestedSessionId()); + } + + @Test + void testRequestConstruction2() { + URI uri = URI.create("http://localhost:8080/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + httpReq.headers().add("some-header", "some-value"); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + + request.addHeader("some-header", "some-value"); + String value = request.getUntreatedHeaders().get("some-header").get(0); + assertEquals(value, "some-value"); + } + + @Test + void testRequestAttributes() { + URI uri = URI.create("http://localhost:8080/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); request.setAttribute("some_attr", "some_value"); - Assert.assertTrue(request.containsAttribute("some_attr")); + assertTrue(request.containsAttribute("some_attr")); - request.removeAttribute("some_attr"); + assertEquals(request.getAttribute("some_attr"), "some_value"); - Assert.assertFalse(request.containsAttribute("some_attr")); - } + } - @Test - public void testGetIntHeader() { - URI uri = URI.create("http://localhost:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); + @Test + void testGetAttributeNames() { + URI uri = URI.create("http://localhost:8080/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + request.setAttribute("some_attr_1", "some_value1"); + request.setAttribute("some_attr_2", "some_value2"); - Assert.assertEquals(-1, request.getIntHeader("int_header")); + Enumeration e = request.getAttributeNames(); + List attrList = Collections.list(e); + assertEquals(2, attrList.size()); + assertTrue(attrList.contains("some_attr_1")); + assertTrue(attrList.contains("some_attr_2")); - request.addHeader("int_header", String.valueOf(5)); + } - Assert.assertEquals(5, request.getIntHeader("int_header")); - } + @Test + void testRemoveAttribute() { + URI uri = URI.create("http://localhost:8080/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + request.setAttribute("some_attr", "some_value"); + + assertTrue(request.containsAttribute("some_attr")); + + request.removeAttribute("some_attr"); + + assertFalse(request.containsAttribute("some_attr")); + } + + @Test + void testGetIntHeader() { + URI uri = URI.create("http://localhost:8080/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + + assertEquals(-1, request.getIntHeader("int_header")); - @Test - public void testDateHeader() { - URI uri = URI.create("http://localhost:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); + request.addHeader("int_header", String.valueOf(5)); + assertEquals(5, request.getIntHeader("int_header")); + } + + @Test + void testDateHeader() { + URI uri = URI.create("http://localhost:8080/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertEquals(-1, request.getDateHeader(HttpHeaders.Names.IF_MODIFIED_SINCE)); - request.addHeader(HttpHeaders.Names.IF_MODIFIED_SINCE, "Sat, 29 Oct 1994 19:43:31 GMT"); + assertEquals(-1, request.getDateHeader(HttpHeaders.Names.IF_MODIFIED_SINCE)); - Assert.assertEquals(783459811000L, request.getDateHeader(HttpHeaders.Names.IF_MODIFIED_SINCE)); - } + request.addHeader(HttpHeaders.Names.IF_MODIFIED_SINCE, "Sat, 29 Oct 1994 19:43:31 GMT"); - @Test - public void testParameterAPIsAsList() { + assertEquals(783459811000L, request.getDateHeader(HttpHeaders.Names.IF_MODIFIED_SINCE)); + } + + @Test + void testParameterAPIsAsList() { URI uri = URI.create("http://example.yahoo.com:8080/test?param1=abc¶m2=xyz¶m2=pqr"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertEquals(request.getParameter("param1"),"abc"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + assertEquals(request.getParameter("param1"), "abc"); List values = request.getParameterValuesAsList("param2"); - Assert.assertEquals(values.get(0),"xyz"); - Assert.assertEquals(values.get(1),"pqr"); + assertEquals(values.get(0), "xyz"); + assertEquals(values.get(1), "pqr"); List paramNames = request.getParameterNamesAsList(); - Assert.assertEquals(paramNames.size(), 2); + assertEquals(paramNames.size(), 2); - } + } - @Test - public void testParameterAPI(){ - URI uri = URI.create("http://example.yahoo.com:8080/test?param1=abc¶m2=xyz¶m2=pqr"); + @Test + void testParameterAPI() { + URI uri = URI.create("http://example.yahoo.com:8080/test?param1=abc¶m2=xyz¶m2=pqr"); HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertEquals(request.getParameter("param1"),"abc"); + assertEquals(request.getParameter("param1"), "abc"); Enumeration values = request.getParameterValues("param2"); List valuesList = Collections.list(values); - Assert.assertEquals(valuesList.get(0),"xyz"); - Assert.assertEquals(valuesList.get(1),"pqr"); + assertEquals(valuesList.get(0), "xyz"); + assertEquals(valuesList.get(1), "pqr"); Enumeration paramNames = request.getParameterNames(); List paramNamesList = Collections.list(paramNames); - Assert.assertEquals(paramNamesList.size(), 2); - } + assertEquals(paramNamesList.size(), 2); + } - @Test - public void testGetHeaderNamesAsList() { - URI uri = URI.create("http://localhost:8080/test"); + @Test + void testGetHeaderNamesAsList() { + URI uri = URI.create("http://localhost:8080/test"); HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); httpReq.headers().add(HttpHeaders.Names.CONTENT_TYPE, "multipart/form-data"); httpReq.headers().add("header_1", "value1"); httpReq.headers().add("header_2", "value2"); DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertNotNull(request.getHeaderNamesAsList()); - Assert.assertEquals(request.getHeaderNamesAsList().size(), 3); - } + assertNotNull(request.getHeaderNamesAsList()); + assertEquals(request.getHeaderNamesAsList().size(), 3); + } - @Test - public void testGetHeadersAsList() { + @Test + void testGetHeadersAsList() { URI uri = URI.create("http://localhost:8080/test"); HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertNotNull(request.getHeaderNamesAsList()); - Assert.assertEquals(request.getHeaderNamesAsList().size(), 0); + assertNotNull(request.getHeaderNamesAsList()); + assertEquals(request.getHeaderNamesAsList().size(), 0); httpReq.headers().add("header_1", "value1"); httpReq.headers().add("header_1", "value2"); - Assert.assertEquals(request.getHeadersAsList("header_1").size(), 2); + assertEquals(request.getHeadersAsList("header_1").size(), 2); } - @Test - public void testIsMultipart() { + @Test + void testIsMultipart() { - URI uri = URI.create("http://localhost:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - httpReq.headers().add(HttpHeaders.Names.CONTENT_TYPE, "multipart/form-data"); - DiscFilterRequest request = new DiscFilterRequest(httpReq); + URI uri = URI.create("http://localhost:8080/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + httpReq.headers().add(HttpHeaders.Names.CONTENT_TYPE, "multipart/form-data"); + DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertTrue(DiscFilterRequest.isMultipart(request)); + assertTrue(DiscFilterRequest.isMultipart(request)); - httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - httpReq.headers().add(HttpHeaders.Names.CONTENT_TYPE, "text/html;charset=UTF-8"); - request = new DiscFilterRequest(httpReq); + httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + httpReq.headers().add(HttpHeaders.Names.CONTENT_TYPE, "text/html;charset=UTF-8"); + request = new DiscFilterRequest(httpReq); - Assert.assertFalse(DiscFilterRequest.isMultipart(request)); + assertFalse(DiscFilterRequest.isMultipart(request)); - Assert.assertFalse(DiscFilterRequest.isMultipart(null)); + assertFalse(DiscFilterRequest.isMultipart(null)); - httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - request = new DiscFilterRequest(httpReq); - Assert.assertFalse(DiscFilterRequest.isMultipart(request)); - } + httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + request = new DiscFilterRequest(httpReq); + assertFalse(DiscFilterRequest.isMultipart(request)); + } - @Test - public void testGetRemotePortLocalPort() { + @Test + void testGetRemotePortLocalPort() { URI uri = URI.create("http://example.yahoo.com:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertEquals(69, request.getRemotePort()); - Assert.assertEquals(8080, request.getLocalPort()); + assertEquals(69, request.getRemotePort()); + assertEquals(8080, request.getLocalPort()); - if (request.getRemoteHost() != null) // if we have network - Assert.assertEquals("example.yahoo.com", request.getRemoteHost()); + if (request.getRemoteHost() != null) // if we have network + assertEquals("example.yahoo.com", request.getRemoteHost()); request.setRemoteAddr("1.1.1.1"); - Assert.assertEquals("1.1.1.1",request.getRemoteAddr()); - } - - @Test - public void testCharacterEncoding() { - URI uri = URI.create("http://example.yahoo.com:8080/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - request.setHeaders(HttpHeaders.Names.CONTENT_TYPE, "text/html;charset=UTF-8"); - - Assert.assertEquals(request.getCharacterEncoding(), "UTF-8"); - - httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - request = new DiscFilterRequest(httpReq); - request.setHeaders(HttpHeaders.Names.CONTENT_TYPE, "text/html"); - request.setCharacterEncoding("UTF-8"); - - Assert.assertEquals(request.getCharacterEncoding(),"UTF-8"); - - Assert.assertEquals(request.getHeader(HttpHeaders.Names.CONTENT_TYPE),"text/html;charset=UTF-8"); - } - - @Test - public void testGetServerPort() { - { - URI uri = URI.create("http://example.yahoo.com/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertEquals(request.getServerPort(), 80); - - } - { - URI uri = URI.create("https://example.yahoo.com/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertEquals(request.getServerPort(), 443); - } - } - - @Test - public void testIsSecure() { - { - URI uri = URI.create("http://example.yahoo.com/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertFalse(request.isSecure()); - } - { - URI uri = URI.create("https://example.yahoo.com/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertTrue(request.isSecure()); - } - } + assertEquals("1.1.1.1", request.getRemoteAddr()); + } + + @Test + void testCharacterEncoding() { + URI uri = URI.create("http://example.yahoo.com:8080/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + request.setHeaders(HttpHeaders.Names.CONTENT_TYPE, "text/html;charset=UTF-8"); + + assertEquals(request.getCharacterEncoding(), "UTF-8"); + + httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + request = new DiscFilterRequest(httpReq); + request.setHeaders(HttpHeaders.Names.CONTENT_TYPE, "text/html"); + request.setCharacterEncoding("UTF-8"); + + assertEquals(request.getCharacterEncoding(), "UTF-8"); + + assertEquals(request.getHeader(HttpHeaders.Names.CONTENT_TYPE), "text/html;charset=UTF-8"); + } + + @Test + void testGetServerPort() { + { + URI uri = URI.create("http://example.yahoo.com/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + assertEquals(request.getServerPort(), 80); + + } + { + URI uri = URI.create("https://example.yahoo.com/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + assertEquals(request.getServerPort(), 443); + } + } @Test - public void requireThatUnresolvableRemoteAddressesAreSupported() { + void testIsSecure() { + { + URI uri = URI.create("http://example.yahoo.com/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + assertFalse(request.isSecure()); + } + { + URI uri = URI.create("https://example.yahoo.com/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + assertTrue(request.isSecure()); + } + } + + @Test + void requireThatUnresolvableRemoteAddressesAreSupported() { URI uri = URI.create("http://doesnotresolve.zzz:8080/test"); HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); DiscFilterRequest request = new DiscFilterRequest(httpReq); - Assert.assertNull(request.getLocalAddr()); + assertNull(request.getLocalAddr()); } @Test - public void testGetUntreatedHeaders() { - URI uri = URI.create("http://example.yahoo.com/test"); + void testGetUntreatedHeaders() { + URI uri = URI.create("http://example.yahoo.com/test"); HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); httpReq.headers().add("key1", "value1"); - httpReq.headers().add("key2", Arrays.asList("value1","value2")); + httpReq.headers().add("key2", Arrays.asList("value1", "value2")); DiscFilterRequest request = new DiscFilterRequest(httpReq); HeaderFields headers = request.getUntreatedHeaders(); - Assert.assertEquals(headers.keySet().size(), 2); - Assert.assertEquals(headers.get("key1").get(0), "value1" ); - Assert.assertEquals(headers.get("key2").get(0), "value1" ); - Assert.assertEquals(headers.get("key2").get(1), "value2" ); + assertEquals(headers.keySet().size(), 2); + assertEquals(headers.get("key1").get(0), "value1"); + assertEquals(headers.get("key2").get(0), "value1"); + assertEquals(headers.get("key2").get(1), "value2"); + } + + @Test + void testClearCookies() { + URI uri = URI.create("http://example.yahoo.com/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + httpReq.headers().put(HttpHeaders.Names.COOKIE, "XYZ=value"); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + request.clearCookies(); + assertNull(request.getHeader(HttpHeaders.Names.COOKIE)); + } + + @Test + void testGetWrapedCookies() { + URI uri = URI.create("http://example.yahoo.com/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + httpReq.headers().put(HttpHeaders.Names.COOKIE, "XYZ=value"); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + JDiscCookieWrapper[] wrappers = request.getWrappedCookies(); + assertEquals(wrappers.length, 1); + assertEquals(wrappers[0].getName(), "XYZ"); + assertEquals(wrappers[0].getValue(), "value"); } - @Test - public void testClearCookies() { - URI uri = URI.create("http://example.yahoo.com/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - httpReq.headers().put(HttpHeaders.Names.COOKIE, "XYZ=value"); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - request.clearCookies(); - Assert.assertNull(request.getHeader(HttpHeaders.Names.COOKIE)); - } - - @Test - public void testGetWrapedCookies() { - URI uri = URI.create("http://example.yahoo.com/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - httpReq.headers().put(HttpHeaders.Names.COOKIE, "XYZ=value"); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - JDiscCookieWrapper[] wrappers = request.getWrappedCookies(); - Assert.assertEquals(wrappers.length ,1); - Assert.assertEquals(wrappers[0].getName(), "XYZ"); - Assert.assertEquals(wrappers[0].getValue(), "value"); - } - - @Test - public void testAddCookie() { - URI uri = URI.create("http://example.yahoo.com/test"); - HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); - DiscFilterRequest request = new DiscFilterRequest(httpReq); - request.addCookie(JDiscCookieWrapper.wrap(new Cookie("name", "value"))); - - List cookies = request.getCookies(); - Assert.assertEquals(cookies.size(), 1); - Assert.assertEquals(cookies.get(0).getName(), "name"); - Assert.assertEquals(cookies.get(0).getValue(), "value"); - } + @Test + void testAddCookie() { + URI uri = URI.create("http://example.yahoo.com/test"); + HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); + DiscFilterRequest request = new DiscFilterRequest(httpReq); + request.addCookie(JDiscCookieWrapper.wrap(new Cookie("name", "value"))); + + List cookies = request.getCookies(); + assertEquals(cookies.size(), 1); + assertEquals(cookies.get(0).getName(), "name"); + assertEquals(cookies.get(0).getValue(), "value"); + } } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/DiscFilterResponseTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/DiscFilterResponseTest.java index ace41473eb4..73498e27892 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/DiscFilterResponseTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/DiscFilterResponseTest.java @@ -6,15 +6,14 @@ import com.yahoo.jdisc.http.Cookie; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.http.HttpResponse; import com.yahoo.jdisc.test.TestDriver; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.InetSocketAddress; import java.net.URI; import java.util.Collections; import java.util.List; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; public class DiscFilterResponseTest { @@ -33,40 +32,40 @@ public class DiscFilterResponseTest { } @Test - public void testGetSetStatus() { + void testGetSetStatus() { HttpRequest request = newRequest(URI.create("http://localhost:8080/echo"), HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); DiscFilterResponse response = new DiscFilterResponse(HttpResponse.newInstance(HttpResponse.Status.OK)); - Assert.assertEquals(response.getStatus(), HttpResponse.Status.OK); + assertEquals(response.getStatus(), HttpResponse.Status.OK); response.setStatus(HttpResponse.Status.REQUEST_TIMEOUT); - Assert.assertEquals(response.getStatus(), HttpResponse.Status.REQUEST_TIMEOUT); + assertEquals(response.getStatus(), HttpResponse.Status.REQUEST_TIMEOUT); } @Test - public void testAttributes() { + void testAttributes() { HttpRequest request = newRequest(URI.create("http://localhost:8080/echo"), HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); DiscFilterResponse response = new DiscFilterResponse(HttpResponse.newInstance(HttpResponse.Status.OK)); response.setAttribute("attr_1", "value1"); - Assert.assertEquals(response.getAttribute("attr_1"), "value1"); + assertEquals(response.getAttribute("attr_1"), "value1"); List list = Collections.list(response.getAttributeNames()); - Assert.assertEquals(list.get(0), "attr_1"); + assertEquals(list.get(0), "attr_1"); response.removeAttribute("attr_1"); - Assert.assertNull(response.getAttribute("attr_1")); + assertNull(response.getAttribute("attr_1")); } @Test - public void testAddHeader() { + void testAddHeader() { HttpRequest request = newRequest(URI.create("http://localhost:8080/echo"), HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); DiscFilterResponse response = new DiscFilterResponse(HttpResponse.newInstance(HttpResponse.Status.OK)); response.addHeader("header1", "value1"); - Assert.assertEquals(response.getHeader("header1"), "value1"); + assertEquals(response.getHeader("header1"), "value1"); } @Test - public void testAddCookie() { + void testAddCookie() { URI uri = URI.create("http://example.com/test"); HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); HttpResponse httpResp = newResponse(httpReq, 200); @@ -74,31 +73,31 @@ public class DiscFilterResponseTest { response.addCookie(JDiscCookieWrapper.wrap(new Cookie("name", "value"))); List cookies = response.getCookies(); - Assert.assertEquals(cookies.size(),1); - Assert.assertEquals(cookies.get(0).getName(),"name"); + assertEquals(cookies.size(), 1); + assertEquals(cookies.get(0).getName(), "name"); } @Test - public void testSetCookie() { + void testSetCookie() { URI uri = URI.create("http://example.com/test"); HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); HttpResponse httpResp = newResponse(httpReq, 200); DiscFilterResponse response = new DiscFilterResponse(httpResp); response.setCookie("name", "value"); List cookies = response.getCookies(); - Assert.assertEquals(cookies.size(),1); - Assert.assertEquals(cookies.get(0).getName(),"name"); + assertEquals(cookies.size(), 1); + assertEquals(cookies.get(0).getName(), "name"); } @Test - public void testSetHeader() { + void testSetHeader() { URI uri = URI.create("http://example.com/test"); HttpRequest httpReq = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); HttpResponse httpResp = newResponse(httpReq, 200); DiscFilterResponse response = new DiscFilterResponse(httpResp); response.setHeader("name", "value"); - Assert.assertEquals(response.getHeader("name"), "value"); + assertEquals(response.getHeader("name"), "value"); } } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/EmptyRequestFilterTestCase.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/EmptyRequestFilterTestCase.java index 214ee6b91cc..dc263bb08a6 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/EmptyRequestFilterTestCase.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/EmptyRequestFilterTestCase.java @@ -6,14 +6,14 @@ import com.yahoo.jdisc.handler.ResponseHandler; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.http.filter.chain.EmptyRequestFilter; import com.yahoo.jdisc.service.CurrentContainer; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.URI; import java.util.concurrent.TimeUnit; import static com.yahoo.jdisc.http.HttpRequest.Method; import static com.yahoo.jdisc.http.HttpRequest.Version; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -24,7 +24,7 @@ import static org.mockito.Mockito.when; public class EmptyRequestFilterTestCase { @Test - public void requireThatEmptyFilterDoesNothing() throws Exception { + void requireThatEmptyFilterDoesNothing() throws Exception { final HttpRequest lhs = newRequest(Method.GET, "/status.html", Version.HTTP_1_1); final HttpRequest rhs = newRequest(Method.GET, "/status.html", Version.HTTP_1_1); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/EmptyResponseFilterTestCase.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/EmptyResponseFilterTestCase.java index 91bc0b1aa4c..53e794cef29 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/EmptyResponseFilterTestCase.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/EmptyResponseFilterTestCase.java @@ -7,13 +7,13 @@ import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.http.HttpResponse; import com.yahoo.jdisc.http.filter.chain.EmptyResponseFilter; import com.yahoo.jdisc.service.CurrentContainer; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.URI; import static com.yahoo.jdisc.http.HttpRequest.Method; import static com.yahoo.jdisc.http.HttpRequest.Version; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -24,7 +24,7 @@ import static org.mockito.Mockito.when; public class EmptyResponseFilterTestCase { @Test - public void requireThatEmptyFilterDoesNothing() throws Exception { + void requireThatEmptyFilterDoesNothing() throws Exception { final HttpRequest request = newRequest(Method.GET, "/status.html", Version.HTTP_1_1); final HttpResponse lhs = HttpResponse.newInstance(Response.Status.OK); final HttpResponse rhs = HttpResponse.newInstance(Response.Status.OK); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/JDiscCookieWrapperTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/JDiscCookieWrapperTest.java index 36217012fb0..41d80d16c54 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/JDiscCookieWrapperTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/JDiscCookieWrapperTest.java @@ -2,15 +2,16 @@ package com.yahoo.jdisc.http.filter; import com.yahoo.jdisc.http.Cookie; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.concurrent.TimeUnit; +import static org.junit.jupiter.api.Assertions.assertEquals; + public class JDiscCookieWrapperTest { @Test - public void requireThatWrapWorks() { + void requireThatWrapWorks() { Cookie cookie = new Cookie("name", "value"); JDiscCookieWrapper wrapper = JDiscCookieWrapper.wrap(cookie); @@ -18,12 +19,12 @@ public class JDiscCookieWrapperTest { wrapper.setMaxAge(10); wrapper.setPath("/path"); - Assert.assertEquals(wrapper.getName(), cookie.getName()); - Assert.assertEquals(wrapper.getValue(), cookie.getValue()); - Assert.assertEquals(wrapper.getDomain(), cookie.getDomain()); - Assert.assertEquals(wrapper.getMaxAge(), cookie.getMaxAge(TimeUnit.SECONDS)); - Assert.assertEquals(wrapper.getPath(), cookie.getPath()); - Assert.assertEquals(wrapper.getSecure(), cookie.isSecure()); + assertEquals(wrapper.getName(), cookie.getName()); + assertEquals(wrapper.getValue(), cookie.getValue()); + assertEquals(wrapper.getDomain(), cookie.getDomain()); + assertEquals(wrapper.getMaxAge(), cookie.getMaxAge(TimeUnit.SECONDS)); + assertEquals(wrapper.getPath(), cookie.getPath()); + assertEquals(wrapper.getSecure(), cookie.isSecure()); } } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/RequestViewImplTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/RequestViewImplTest.java index ab682ea9059..840a5537042 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/RequestViewImplTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/RequestViewImplTest.java @@ -5,9 +5,9 @@ import com.google.common.collect.Lists; import com.yahoo.jdisc.HeaderFields; import com.yahoo.jdisc.Request; import com.yahoo.jdisc.http.filter.SecurityResponseFilterChain.RequestViewImpl; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -17,7 +17,7 @@ import static org.mockito.Mockito.when; public class RequestViewImplTest { @Test - public void header_from_the_parent_request_is_available() throws Exception { + void header_from_the_parent_request_is_available() throws Exception { final String HEADER = "single-header"; HeaderFields parentHeaders = new HeaderFields(); @@ -32,7 +32,7 @@ public class RequestViewImplTest { @Test - public void multi_value_header_from_the_parent_request_is_available() throws Exception { + void multi_value_header_from_the_parent_request_is_available() throws Exception { final String HEADER = "list-header"; HeaderFields parentHeaders = new HeaderFields(); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChainTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChainTest.java index 46d6be2e73b..645e523c155 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChainTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChainTest.java @@ -9,8 +9,7 @@ import com.yahoo.jdisc.handler.ResponseDispatch; import com.yahoo.jdisc.handler.ResponseHandler; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.test.TestDriver; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.InetSocketAddress; import java.net.URI; @@ -18,7 +17,7 @@ import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.*; /** * @author bjorncs @@ -32,40 +31,40 @@ public class SecurityRequestFilterChainTest { driver.activateContainer(driver.newContainerBuilder()); HttpRequest request = HttpRequest.newServerRequest(driver, uri, method, version, address); request.release(); - Assert.assertTrue(driver.close()); + assertTrue(driver.close()); return request; } @Test - public void testFilterChainConstruction() { - SecurityRequestFilterChain chain = (SecurityRequestFilterChain)SecurityRequestFilterChain.newInstance(); - assertEquals(chain.getFilters().size(),0); + void testFilterChainConstruction() { + SecurityRequestFilterChain chain = (SecurityRequestFilterChain) SecurityRequestFilterChain.newInstance(); + assertEquals(chain.getFilters().size(), 0); List requestFilters = new ArrayList(); - chain = (SecurityRequestFilterChain)SecurityRequestFilterChain.newInstance(); + chain = (SecurityRequestFilterChain) SecurityRequestFilterChain.newInstance(); - chain = (SecurityRequestFilterChain)SecurityRequestFilterChain.newInstance(new RequestHeaderFilter("abc", "xyz"), - new RequestHeaderFilter("pqr", "def")); + chain = (SecurityRequestFilterChain) SecurityRequestFilterChain.newInstance(new RequestHeaderFilter("abc", "xyz"), + new RequestHeaderFilter("pqr", "def")); assertEquals(chain instanceof SecurityRequestFilterChain, true); } @Test - public void testFilterChainRun() { + void testFilterChainRun() { RequestFilter chain = SecurityRequestFilterChain.newInstance(new RequestHeaderFilter("abc", "xyz"), - new RequestHeaderFilter("pqr", "def")); + new RequestHeaderFilter("pqr", "def")); assertEquals(chain instanceof SecurityRequestFilterChain, true); ResponseHandler handler = newResponseHandler(); HttpRequest request = newRequest(URI.create("http://test/test"), HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); chain.filter(request, handler); - Assert.assertTrue(request.headers().contains("abc", "xyz")); - Assert.assertTrue(request.headers().contains("pqr", "def")); + assertTrue(request.headers().contains("abc", "xyz")); + assertTrue(request.headers().contains("pqr", "def")); } @Test - public void testFilterChainResponds() { + void testFilterChainResponds() { RequestFilter chain = SecurityRequestFilterChain.newInstance( new MyFilter(), new RequestHeaderFilter("abc", "xyz"), @@ -76,9 +75,9 @@ public class SecurityRequestFilterChainTest { HttpRequest request = newRequest(URI.create("http://test/test"), HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); chain.filter(request, handler); Response response = getResponse(handler); - Assert.assertNotNull(response); - Assert.assertTrue(!request.headers().contains("abc", "xyz")); - Assert.assertTrue(!request.headers().contains("pqr", "def")); + assertNotNull(response); + assertFalse(request.headers().contains("abc", "xyz")); + assertFalse(request.headers().contains("pqr", "def")); } private class RequestHeaderFilter extends AbstractResource implements SecurityRequestFilter { diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChainTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChainTest.java index d44fdbfd39b..3f04154e3f8 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChainTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChainTest.java @@ -6,13 +6,13 @@ import com.yahoo.jdisc.Response; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.http.HttpResponse; import com.yahoo.jdisc.test.TestDriver; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.InetSocketAddress; import java.net.URI; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author bjorncs @@ -29,24 +29,24 @@ public class SecurityResponseFilterChainTest { } @Test - public void testFilterChainConstruction() { - SecurityResponseFilterChain chain = (SecurityResponseFilterChain)SecurityResponseFilterChain.newInstance(); - assertEquals(chain.getFilters().size(),0); + void testFilterChainConstruction() { + SecurityResponseFilterChain chain = (SecurityResponseFilterChain) SecurityResponseFilterChain.newInstance(); + assertEquals(chain.getFilters().size(), 0); - chain = (SecurityResponseFilterChain)SecurityResponseFilterChain.newInstance(new ResponseHeaderFilter("abc", "xyz"), - new ResponseHeaderFilter("pqr", "def")); + chain = (SecurityResponseFilterChain) SecurityResponseFilterChain.newInstance(new ResponseHeaderFilter("abc", "xyz"), + new ResponseHeaderFilter("pqr", "def")); assertEquals(chain instanceof SecurityResponseFilterChain, true); } @Test - public void testFilterChainRun() { + void testFilterChainRun() { URI uri = URI.create("http://localhost:8080/echo"); HttpRequest request = newRequest(uri, HttpRequest.Method.GET, HttpRequest.Version.HTTP_1_1); Response response = HttpResponse.newInstance(Response.Status.OK); ResponseFilter chain = SecurityResponseFilterChain.newInstance(new ResponseHeaderFilter("abc", "xyz"), - new ResponseHeaderFilter("pqr", "def")); + new ResponseHeaderFilter("pqr", "def")); chain.filter(response, null); assertTrue(response.headers().contains("abc", "xyz")); assertTrue(response.headers().contains("pqr", "def")); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/filter/util/FilterUtilsTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/filter/util/FilterUtilsTest.java index 16883f1a48e..b53479abdd8 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/filter/util/FilterUtilsTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/filter/util/FilterUtilsTest.java @@ -4,14 +4,14 @@ package com.yahoo.jdisc.http.filter.util; import com.yahoo.container.jdisc.RequestHandlerTestDriver; import com.yahoo.jdisc.Response; import com.yahoo.jdisc.http.Cookie; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.List; import java.util.Map; import static com.yahoo.jdisc.http.filter.util.FilterUtils.sendMessageResponse; import static com.yahoo.jdisc.http.filter.util.FilterUtils.sendRedirectResponse; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author valerijf @@ -21,7 +21,7 @@ public class FilterUtilsTest { private static final List cookies = List.of(new Cookie("my-cookie", "value1"), new Cookie("second-cookie", "value2")); @Test - public void redirect_test() { + void redirect_test() { RequestHandlerTestDriver.MockResponseHandler responseHandler = new RequestHandlerTestDriver.MockResponseHandler(); String location = "http://domain.tld/path?query"; @@ -31,7 +31,7 @@ public class FilterUtilsTest { } @Test - public void message_response() { + void message_response() { RequestHandlerTestDriver.MockResponseHandler responseHandler = new RequestHandlerTestDriver.MockResponseHandler(); sendMessageResponse(responseHandler, List.of(), 404, "Not found"); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java index 65f871e47ea..766c7918882 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java @@ -7,7 +7,7 @@ import com.yahoo.container.logging.RequestLogEntry; import com.yahoo.jdisc.http.ServerConfig; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Response; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; @@ -16,8 +16,8 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Oyvind Bakksjo @@ -25,7 +25,7 @@ import static org.junit.Assert.assertTrue; */ public class AccessLogRequestLogTest { @Test - public void requireThatQueryWithUnquotedSpecialCharactersIsHandled() { + void requireThatQueryWithUnquotedSpecialCharactersIsHandled() { Request jettyRequest = createRequestBuilder() .uri("http", "localhost", 12345, "/search/", "query=year:>2010") .build(); @@ -39,7 +39,7 @@ public class AccessLogRequestLogTest { } @Test - public void requireThatDoubleQuotingIsNotPerformed() { + void requireThatDoubleQuotingIsNotPerformed() { String path = "/search/"; String query = "query=year%252010+%3B&customParameter=something"; Request jettyRequest = createRequestBuilder() @@ -56,7 +56,7 @@ public class AccessLogRequestLogTest { } @Test - public void raw_path_and_query_are_set_from_request() { + void raw_path_and_query_are_set_from_request() { String rawPath = "//search/"; String rawQuery = "q=%%2"; Request jettyRequest = createRequestBuilder() @@ -73,7 +73,7 @@ public class AccessLogRequestLogTest { } @Test - public void verify_x_forwarded_for_precedence () { + void verify_x_forwarded_for_precedence() { Request jettyRequest = createRequestBuilder() .uri("http", "localhost", 12345, "//search/", "q=%%2") .header("x-forwarded-for", List.of("1.2.3.4")) @@ -87,7 +87,7 @@ public class AccessLogRequestLogTest { } @Test - public void verify_x_forwarded_port_precedence () { + void verify_x_forwarded_port_precedence() { Request jettyRequest = createRequestBuilder() .uri("http", "localhost", 12345, "//search/", "q=%%2") .header("X-Forwarded-Port", List.of("80")) @@ -101,7 +101,7 @@ public class AccessLogRequestLogTest { } @Test - public void defaults_to_peer_port_if_remote_port_header_is_invalid() { + void defaults_to_peer_port_if_remote_port_header_is_invalid() { Request jettyRequest = createRequestBuilder() .uri("http", "localhost", 12345, "/search/", null) .header("X-Forwarded-Port", List.of("8o8o")) diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectionThrottlerTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectionThrottlerTest.java index add7e458fbd..a65231db2b7 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectionThrottlerTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectionThrottlerTest.java @@ -6,11 +6,11 @@ import org.eclipse.jetty.server.AbstractConnector; import org.eclipse.jetty.util.component.AbstractLifeCycle; import org.eclipse.jetty.util.statistic.RateStatistic; import org.eclipse.jetty.util.thread.Scheduler; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.concurrent.TimeUnit; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -23,14 +23,14 @@ import static org.mockito.internal.verification.VerificationModeFactory.times; public class ConnectionThrottlerTest { @Test - public void throttles_when_any_resource_check_exceeds_configured_threshold() { + void throttles_when_any_resource_check_exceeds_configured_threshold() { Runtime runtime = mock(Runtime.class); when(runtime.maxMemory()).thenReturn(100l); RateStatistic rateStatistic = new RateStatistic(1, TimeUnit.HOURS); MockScheduler scheduler = new MockScheduler(); ConnectorConfig.Throttling config = new ConnectorConfig.Throttling(new ConnectorConfig.Throttling.Builder() - .maxHeapUtilization(0.8) - .maxAcceptRate(1)); + .maxHeapUtilization(0.8) + .maxAcceptRate(1)); AbstractConnector connector = mock(AbstractConnector.class); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactoryTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactoryTest.java index b47df9d5931..1ff2783cc53 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactoryTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactoryTest.java @@ -8,9 +8,9 @@ import com.yahoo.jdisc.http.ssl.impl.ConfiguredSslContextFactoryProvider; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -18,7 +18,7 @@ import java.io.IOException; import java.util.Map; import static org.hamcrest.CoreMatchers.equalTo; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Einar M R Rosenvinge @@ -28,12 +28,12 @@ public class ConnectorFactoryTest { private Server server; - @Before + @BeforeEach public void createServer() { server = new Server(); } - @After + @AfterEach public void stopServer() { try { server.stop(); @@ -44,7 +44,7 @@ public class ConnectorFactoryTest { } @Test - public void requireThatServerCanBindChannel() throws Exception { + void requireThatServerCanBindChannel() throws Exception { ConnectorConfig config = new ConnectorConfig(new ConnectorConfig.Builder()); ConnectorFactory factory = createConnectorFactory(config); JDiscServerConnector connector = createConnectorFromFactory(factory); @@ -59,7 +59,7 @@ public class ConnectorFactoryTest { } @Test - public void constructed_connector_is_based_on_jdisc_connector_config() { + void constructed_connector_is_based_on_jdisc_connector_config() { ConnectorConfig config = new ConnectorConfig.Builder() .idleTimeout(25) .name("my-server-name") diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ErrorResponseContentCreatorTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ErrorResponseContentCreatorTest.java index 796adebb5e8..8b18c8cf09d 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ErrorResponseContentCreatorTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ErrorResponseContentCreatorTest.java @@ -2,12 +2,12 @@ package com.yahoo.jdisc.http.server.jetty; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletResponse; import java.nio.charset.StandardCharsets; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** @@ -16,20 +16,20 @@ import static org.junit.Assert.assertEquals; public class ErrorResponseContentCreatorTest { @Test - public void response_content_matches_expected_string() { + void response_content_matches_expected_string() { String expectedHtml = "\n" + - "\n" + - "\n" + - "Error 200\n" + - "\n" + - "\n" + - "

HTTP ERROR: 200

\n" + - "

Problem accessing http://foo.bar. Reason:\n" + - "

    My custom error message

\n" + - "
\n" + - "\n" + - "\n"; + "\n" + + "\n" + + "Error 200\n" + + "\n" + + "\n" + + "

HTTP ERROR: 200

\n" + + "

Problem accessing http://foo.bar. Reason:\n" + + "

    My custom error message

\n" + + "
\n" + + "\n" + + "\n"; ErrorResponseContentCreator c = new ErrorResponseContentCreator(); byte[] rawContent = c.createErrorContent( diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ExceptionWrapperTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ExceptionWrapperTest.java index 153d3f34899..9512dc22a93 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ExceptionWrapperTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ExceptionWrapperTest.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.jdisc.http.server.jetty; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; @@ -15,7 +15,7 @@ import static org.hamcrest.MatcherAssert.assertThat; public class ExceptionWrapperTest { @Test - public final void requireNoMessageIsOK() { + final void requireNoMessageIsOK() { final Throwable t = new Throwable(); final ExceptionWrapper e = new ExceptionWrapper(t); final String expected = "Throwable() at com.yahoo.jdisc.http.server.jetty.ExceptionWrapperTest(ExceptionWrapperTest.java:19)"; @@ -24,7 +24,7 @@ public class ExceptionWrapperTest { } @Test - public final void requireAllWrappedLevelsShowUp() { + final void requireAllWrappedLevelsShowUp() { final Throwable t0 = new Throwable("t0"); final Throwable t1 = new Throwable("t1", t0); final Throwable t2 = new Throwable("t2", t1); @@ -37,7 +37,7 @@ public class ExceptionWrapperTest { } @Test - public final void requireMixOfMessageAndNoMessageWorks() { + final void requireMixOfMessageAndNoMessageWorks() { final Throwable t0 = new Throwable("t0"); final Throwable t1 = new Throwable(t0); final Throwable t2 = new Throwable("t2", t1); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/FilterTestCase.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/FilterTestCase.java index c975f7c17c3..ce49926c58b 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/FilterTestCase.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/FilterTestCase.java @@ -29,7 +29,7 @@ import com.yahoo.jdisc.http.filter.chain.RequestFilterChain; import com.yahoo.jdisc.http.filter.chain.ResponseFilterChain; import com.yahoo.jdisc.http.server.jetty.testutils.ConnectorFactoryRegistryModule; import org.assertj.core.api.Assertions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import java.io.IOException; @@ -58,7 +58,7 @@ import static org.mockito.Mockito.when; */ public class FilterTestCase { @Test - public void requireThatRequestFilterIsNotRunOnUnboundPath() throws Exception { + void requireThatRequestFilterIsNotRunOnUnboundPath() throws Exception { RequestFilterMockBase filter = mock(RequestFilterMockBase.class); FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", filter) @@ -76,7 +76,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterIsRunOnBoundPath() throws Exception { + void requireThatRequestFilterIsRunOnBoundPath() throws Exception { final RequestFilter filter = mock(RequestFilterMockBase.class); FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", filter) @@ -94,7 +94,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChangesAreSeenByRequestHandler() throws Exception { + void requireThatRequestFilterChangesAreSeenByRequestHandler() throws Exception { final RequestFilter filter = new HeaderRequestFilter("foo", "bar"); FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", filter) @@ -112,7 +112,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterCanRespond() throws Exception { + void requireThatRequestFilterCanRespond() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", new RespondForbiddenFilter()) .addRequestFilterBinding("my-request-filter", "http://*/*") @@ -128,7 +128,7 @@ public class FilterTestCase { } @Test - public void requireThatFilterCanHaveNullCompletionHandler() throws Exception { + void requireThatFilterCanHaveNullCompletionHandler() throws Exception { final int responseStatus = Response.Status.OK; final String responseMessage = "Excellent"; FilterBindings filterBindings = new FilterBindings.Builder() @@ -148,7 +148,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterExecutionIsExceptionSafe() throws Exception { + void requireThatRequestFilterExecutionIsExceptionSafe() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", new ThrowingRequestFilter()) .addRequestFilterBinding("my-request-filter", "http://*/*") @@ -164,7 +164,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterIsNotRunOnUnboundPath() throws Exception { + void requireThatResponseFilterIsNotRunOnUnboundPath() throws Exception { final ResponseFilter filter = mock(ResponseFilterMockBase.class); FilterBindings filterBindings = new FilterBindings.Builder() .addResponseFilter("my-response-filter", filter) @@ -182,7 +182,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterIsRunOnBoundPath() throws Exception { + void requireThatResponseFilterIsRunOnBoundPath() throws Exception { final ResponseFilter filter = mock(ResponseFilterMockBase.class); FilterBindings filterBindings = new FilterBindings.Builder() .addResponseFilter("my-response-filter", filter) @@ -200,7 +200,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterChangesAreWrittenToResponse() throws Exception { + void requireThatResponseFilterChangesAreWrittenToResponse() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addResponseFilter("my-response-filter", new HeaderResponseFilter("foo", "bar")) .addResponseFilterBinding("my-response-filter", "http://*/*") @@ -217,7 +217,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterExecutionIsExceptionSafe() throws Exception { + void requireThatResponseFilterExecutionIsExceptionSafe() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addResponseFilter("my-response-filter", new ThrowingResponseFilter()) .addResponseFilterBinding("my-response-filter", "http://*/*") @@ -233,7 +233,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterAndResponseFilterCanBindToSamePath() throws Exception { + void requireThatRequestFilterAndResponseFilterCanBindToSamePath() throws Exception { final RequestFilter requestFilter = mock(RequestFilterMockBase.class); final ResponseFilter responseFilter = mock(ResponseFilterMockBase.class); final String uriPattern = "http://*/*"; @@ -256,7 +256,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFromRequestFilterGoesThroughResponseFilter() throws Exception { + void requireThatResponseFromRequestFilterGoesThroughResponseFilter() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", new RespondForbiddenFilter()) .addRequestFilterBinding("my-request-filter", "http://*/*") @@ -276,7 +276,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChainRetainsFilters() { + void requireThatRequestFilterChainRetainsFilters() { final RequestFilter requestFilter1 = mock(RequestFilter.class); final RequestFilter requestFilter2 = mock(RequestFilter.class); @@ -296,7 +296,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChainIsRun() throws Exception { + void requireThatRequestFilterChainIsRun() throws Exception { final RequestFilter requestFilter1 = mock(RequestFilter.class); final RequestFilter requestFilter2 = mock(RequestFilter.class); final RequestFilter requestFilterChain = RequestFilterChain.newInstance(requestFilter1, requestFilter2); @@ -308,7 +308,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChainCallsFilterWithOriginalRequest() throws Exception { + void requireThatRequestFilterChainCallsFilterWithOriginalRequest() throws Exception { final RequestFilter requestFilter = mock(RequestFilter.class); final RequestFilter requestFilterChain = RequestFilterChain.newInstance(requestFilter); final HttpRequest request = mock(HttpRequest.class); @@ -325,7 +325,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChainCallsFilterWithOriginalResponseHandler() throws Exception { + void requireThatRequestFilterChainCallsFilterWithOriginalResponseHandler() throws Exception { final RequestFilter requestFilter = mock(RequestFilter.class); final RequestFilter requestFilterChain = RequestFilterChain.newInstance(requestFilter); final HttpRequest request = null; @@ -342,7 +342,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterCanTerminateChain() throws Exception { + void requireThatRequestFilterCanTerminateChain() throws Exception { final RequestFilter requestFilter1 = new RespondForbiddenFilter(); final RequestFilter requestFilter2 = mock(RequestFilter.class); final RequestFilter requestFilterChain = RequestFilterChain.newInstance(requestFilter1, requestFilter2); @@ -360,7 +360,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterChainRetainsFilters() { + void requireThatResponseFilterChainRetainsFilters() { final ResponseFilter responseFilter1 = mock(ResponseFilter.class); final ResponseFilter responseFilter2 = mock(ResponseFilter.class); @@ -380,7 +380,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterChainIsRun() { + void requireThatResponseFilterChainIsRun() { final ResponseFilter responseFilter1 = new ResponseHeaderFilter("foo", "bar"); final ResponseFilter responseFilter2 = mock(ResponseFilter.class); final int statusCode = Response.Status.BAD_GATEWAY; @@ -399,7 +399,7 @@ public class FilterTestCase { } @Test - public void requireThatDefaultRequestFilterChainIsRunIfNoOtherFilterChainMatches() throws IOException, InterruptedException { + void requireThatDefaultRequestFilterChainIsRunIfNoOtherFilterChainMatches() throws IOException, InterruptedException { RequestFilter filterWithBinding = mock(RequestFilter.class); RequestFilter defaultFilter = mock(RequestFilter.class); String defaultFilterId = "default-request-filter"; @@ -422,7 +422,7 @@ public class FilterTestCase { } @Test - public void requireThatDefaultResponseFilterChainIsRunIfNoOtherFilterChainMatches() throws IOException, InterruptedException { + void requireThatDefaultResponseFilterChainIsRunIfNoOtherFilterChainMatches() throws IOException, InterruptedException { ResponseFilter filterWithBinding = mock(ResponseFilter.class); ResponseFilter defaultFilter = mock(ResponseFilter.class); String defaultFilterId = "default-response-filter"; @@ -445,7 +445,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterWithBindingMatchHasPrecedenceOverDefaultFilter() throws IOException, InterruptedException { + void requireThatRequestFilterWithBindingMatchHasPrecedenceOverDefaultFilter() throws IOException, InterruptedException { RequestFilterMockBase filterWithBinding = mock(RequestFilterMockBase.class); RequestFilterMockBase defaultFilter = mock(RequestFilterMockBase.class); String defaultFilterId = "default-request-filter"; @@ -468,7 +468,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterWithBindingMatchHasPrecedenceOverDefaultFilter() throws IOException, InterruptedException { + void requireThatResponseFilterWithBindingMatchHasPrecedenceOverDefaultFilter() throws IOException, InterruptedException { ResponseFilter filterWithBinding = mock(ResponseFilter.class); ResponseFilter defaultFilter = mock(ResponseFilter.class); String defaultFilterId = "default-response-filter"; @@ -491,7 +491,7 @@ public class FilterTestCase { } @Test - public void requireThatMetricAreReported() throws IOException, InterruptedException { + void requireThatMetricAreReported() throws IOException, InterruptedException { FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", mock(RequestFilter.class)) .addRequestFilterBinding("my-request-filter", "http://*/*") @@ -514,7 +514,7 @@ public class FilterTestCase { } @Test - public void requireThatStrictFilteringRejectsRequestsNotMatchingFilterChains() throws IOException { + void requireThatStrictFilteringRejectsRequestsNotMatchingFilterChains() throws IOException { RequestFilter filter = mock(RequestFilter.class); FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", filter) @@ -531,7 +531,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestHandlerSpecIsAvailableThroughDelegate() throws IOException, InterruptedException { + void requireThatRequestHandlerSpecIsAvailableThroughDelegate() throws IOException, InterruptedException { MyRequestHandler requestHandler = new MyHttpRequestHandler(); MyDelegatedHandler delegateHandler1 = new MyDelegatedHandler(requestHandler); MyDelegatedHandler delegateHandler2 = new MyDelegatedHandler(delegateHandler1); @@ -539,7 +539,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestHandlerSpecIsAvailable() throws IOException, InterruptedException { + void requireThatRequestHandlerSpecIsAvailable() throws IOException, InterruptedException { MyRequestHandler requestHandler = new MyHttpRequestHandler(); requestHandlerSpecTest(requestHandler); } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactoryTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactoryTest.java index d1ba4a4d190..a23a3505bcb 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactoryTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactoryTest.java @@ -8,7 +8,7 @@ import com.yahoo.jdisc.Response; import com.yahoo.jdisc.handler.RequestHandler; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.service.CurrentContainer; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import java.net.URI; @@ -16,9 +16,7 @@ import java.net.URI; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; /** * @author Steinar Knutsen @@ -29,7 +27,7 @@ public class HttpRequestFactoryTest { private static final int LOCAL_PORT = 80; @Test - public void testLegalURIs() { + void testLegalURIs() { { URI uri = HttpRequestFactory.getUri(createMockRequest("https", "host", null, null)); assertEquals("https", uri.getScheme()); @@ -68,7 +66,7 @@ public class HttpRequestFactoryTest { } @Test - public void testIllegalQuery() { + void testIllegalQuery() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -80,7 +78,7 @@ public class HttpRequestFactoryTest { } @Test - public final void illegal_host_throws_requestexception1() { + final void illegal_host_throws_requestexception1() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -92,7 +90,7 @@ public class HttpRequestFactoryTest { } @Test - public final void illegal_host_throws_requestexception2() { + final void illegal_host_throws_requestexception2() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -104,7 +102,7 @@ public class HttpRequestFactoryTest { } @Test - public final void illegal_host_throws_requestexception3() { + final void illegal_host_throws_requestexception3() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -116,7 +114,7 @@ public class HttpRequestFactoryTest { } @Test - public final void illegal_unicode_in_query_throws_requestexception() { + final void illegal_unicode_in_query_throws_requestexception() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -129,7 +127,7 @@ public class HttpRequestFactoryTest { } @Test - public void request_uri_uses_local_port() { + void request_uri_uses_local_port() { HttpRequest request = HttpRequestFactory.newJDiscRequest( new MockContainer(), createMockRequest("https", "example.com", "/search", "query=value")); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java index 89908e6d56b..1f65bc4f582 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java @@ -16,8 +16,8 @@ import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.util.Callback; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -42,7 +42,7 @@ public class HttpResponseStatisticsCollectorTest { private int httpResponseCode = 500; @Test - public void statistics_are_aggregated_by_category() { + void statistics_are_aggregated_by_category() { testRequest("http", 300, "GET"); testRequest("http", 301, "GET"); testRequest("http", 200, "GET"); @@ -54,7 +54,7 @@ public class HttpResponseStatisticsCollectorTest { } @Test - public void statistics_are_grouped_by_http_method_and_scheme() { + void statistics_are_grouped_by_http_method_and_scheme() { testRequest("http", 200, "GET"); testRequest("http", 200, "PUT"); testRequest("http", 200, "POST"); @@ -77,7 +77,7 @@ public class HttpResponseStatisticsCollectorTest { @Test @SuppressWarnings("removal") - public void statistics_include_grouped_and_single_statuscodes() { + void statistics_include_grouped_and_single_statuscodes() { testRequest("http", 401, "GET"); testRequest("http", 404, "GET"); testRequest("http", 403, "GET"); @@ -90,7 +90,7 @@ public class HttpResponseStatisticsCollectorTest { } @Test - public void retrieving_statistics_resets_the_counters() { + void retrieving_statistics_resets_the_counters() { testRequest("http", 200, "GET"); testRequest("http", 200, "GET"); @@ -104,7 +104,7 @@ public class HttpResponseStatisticsCollectorTest { } @Test - public void statistics_include_request_type_dimension() { + void statistics_include_request_type_dimension() { testRequest("http", 200, "GET", "/search"); testRequest("http", 200, "POST", "/search"); testRequest("http", 200, "POST", "/feed"); @@ -123,14 +123,14 @@ public class HttpResponseStatisticsCollectorTest { } @Test - public void request_type_can_be_set_explicitly() { + void request_type_can_be_set_explicitly() { testRequest("http", 200, "GET", "/search", com.yahoo.jdisc.Request.RequestType.WRITE); var stats = collector.takeStatistics(); assertStatisticsEntry(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, "write", 200, 1L); } - @Before + @BeforeEach public void initializeCollector() throws Exception { Server server = new Server(); connector = new AbstractConnector(server, null, null, null, 0) { diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java index baf198dde5d..7cce9f2a9ff 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java @@ -21,9 +21,9 @@ import org.apache.http.util.EntityUtils; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URI; @@ -71,7 +71,7 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { * Reduce logging of every stack trace for {@link ServerProviderConformanceTest.ConformanceException} thrown. * This makes the log more readable and the test faster as well. */ - @BeforeClass + @BeforeAll public static void reduceExcessiveLogging() { httpRequestDispatchLoggerOriginalLevel = httpRequestDispatchLogger.getLevel(); httpRequestDispatchLogger.setLevel(Level.SEVERE); @@ -79,7 +79,7 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { executorService = Executors.newSingleThreadExecutor(); } - @AfterClass + @AfterAll public static void restoreExcessiveLogging() throws IOException, InterruptedException { httpRequestDispatchLogger.setLevel(httpRequestDispatchLoggerOriginalLevel); httpClient.close(); @@ -87,7 +87,7 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { executorService.awaitTermination(30, TimeUnit.SECONDS); } - @AfterClass + @AfterAll public static void reportDiagnostics() { System.out.println( "After " + HttpServerConformanceTest.class.getSimpleName() diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java index 3f84bd3d632..5814ab230bd 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java @@ -38,12 +38,13 @@ import org.apache.hc.core5.http.ConnectionClosedException; import org.apache.hc.core5.http.ContentType; import org.assertj.core.api.Assertions; import org.eclipse.jetty.server.handler.AbstractHandlerContainer; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import javax.net.ssl.SSLContext; + +import java.io.File; import java.io.IOException; import java.net.BindException; import java.net.URI; @@ -88,9 +89,7 @@ import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.startsWith; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; @@ -104,18 +103,18 @@ import static org.mockito.Mockito.when; */ public class HttpServerTest { - @Rule - public TemporaryFolder tmpFolder = new TemporaryFolder(); + @TempDir + public File tmpFolder; @Test - public void requireThatServerCanListenToRandomPort() { + void requireThatServerCanListenToRandomPort() { final JettyTestDriver driver = JettyTestDriver.newInstance(mockRequestHandler()); assertNotEquals(0, driver.server().getListenPort()); assertTrue(driver.close()); } @Test - public void requireThatServerCanNotListenToBoundPort() { + void requireThatServerCanNotListenToBoundPort() { final JettyTestDriver driver = JettyTestDriver.newInstance(mockRequestHandler()); try { JettyTestDriver.newConfiguredInstance( @@ -131,7 +130,7 @@ public class HttpServerTest { } @Test - public void requireThatBindingSetNotFoundReturns404() throws Exception { + void requireThatBindingSetNotFoundReturns404() throws Exception { final JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( mockRequestHandler(), new ServerConfig.Builder() @@ -139,28 +138,28 @@ public class HttpServerTest { new ConnectorConfig.Builder(), newBindingSetSelector("unknown")); driver.client().get("/status.html") - .expectStatusCode(is(NOT_FOUND)) - .expectContent(containsPattern(Pattern.compile( - Pattern.quote(BindingSetNotFoundException.class.getName()) + - ": No binding set named 'unknown'\\.\n\tat .+", - Pattern.DOTALL | Pattern.MULTILINE))); + .expectStatusCode(is(NOT_FOUND)) + .expectContent(containsPattern(Pattern.compile( + Pattern.quote(BindingSetNotFoundException.class.getName()) + + ": No binding set named 'unknown'\\.\n\tat .+", + Pattern.DOTALL | Pattern.MULTILINE))); assertTrue(driver.close()); } @Test - public void requireThatTooLongInitLineReturns414() throws Exception { + void requireThatTooLongInitLineReturns414() throws Exception { final JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( mockRequestHandler(), new ServerConfig.Builder(), new ConnectorConfig.Builder() .requestHeaderSize(1)); driver.client().get("/status.html") - .expectStatusCode(is(REQUEST_URI_TOO_LONG)); + .expectStatusCode(is(REQUEST_URI_TOO_LONG)); assertTrue(driver.close()); } @Test - public void requireThatAccessLogIsCalledForRequestRejectedByJetty() throws Exception { + void requireThatAccessLogIsCalledForRequestRejectedByJetty() throws Exception { BlockingQueueRequestLog requestLogMock = new BlockingQueueRequestLog(); final JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( mockRequestHandler(), @@ -175,15 +174,15 @@ public class HttpServerTest { } @Test - public void requireThatServerCanEcho() throws Exception { + void requireThatServerCanEcho() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoRequestHandler()); driver.client().get("/status.html") - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); assertTrue(driver.close()); } @Test - public void requireThatServerCanEchoCompressed() throws Exception { + void requireThatServerCanEchoCompressed() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoRequestHandler()); SimpleHttpClient client = driver.newClient(true); client.get("/status.html") @@ -192,31 +191,31 @@ public class HttpServerTest { } @Test - public void requireThatServerCanHandleMultipleRequests() throws Exception { + void requireThatServerCanHandleMultipleRequests() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoRequestHandler()); driver.client().get("/status.html") - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().get("/status.html") - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); assertTrue(driver.close()); } @Test - public void requireThatFormPostWorks() throws Exception { + void requireThatFormPostWorks() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final String requestContent = generateContent('a', 30); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .setContent(requestContent) - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .setContent(requestContent) + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith('{' + requestContent + "=[]}")); assertTrue(driver.close()); } @Test - public void requireThatFormPostDoesNotRemoveContentByDefault() throws Exception { + void requireThatFormPostDoesNotRemoveContentByDefault() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") @@ -229,7 +228,7 @@ public class HttpServerTest { } @Test - public void requireThatFormPostKeepsContentWhenConfiguredTo() throws Exception { + void requireThatFormPostKeepsContentWhenConfiguredTo() throws Exception { final JettyTestDriver driver = newDriverWithFormPostContentRemoved(new ParameterPrinterRequestHandler(), false); final ResponseValidator response = driver.client().newPost("/status.html") @@ -242,7 +241,7 @@ public class HttpServerTest { } @Test - public void requireThatFormPostRemovesContentWhenConfiguredTo() throws Exception { + void requireThatFormPostRemovesContentWhenConfiguredTo() throws Exception { final JettyTestDriver driver = newDriverWithFormPostContentRemoved(new ParameterPrinterRequestHandler(), true); final ResponseValidator response = driver.client().newPost("/status.html") @@ -255,72 +254,72 @@ public class HttpServerTest { } @Test - public void requireThatFormPostWithCharsetSpecifiedWorks() throws Exception { + void requireThatFormPostWithCharsetSpecifiedWorks() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final String requestContent = generateContent('a', 30); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(X_DISABLE_CHUNKING, "true") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED + ";charset=UTF-8") - .setContent(requestContent) - .execute(); + .addHeader(X_DISABLE_CHUNKING, "true") + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED + ";charset=UTF-8") + .setContent(requestContent) + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith('{' + requestContent + "=[]}")); assertTrue(driver.close()); } @Test - public void requireThatEmptyFormPostWorks() throws Exception { + void requireThatEmptyFormPostWorks() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .execute(); response.expectStatusCode(is(OK)) .expectContent(is("{}")); assertTrue(driver.close()); } @Test - public void requireThatFormParametersAreParsed() throws Exception { + void requireThatFormParametersAreParsed() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .setContent("a=b&c=d") - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .setContent("a=b&c=d") + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith("{a=[b], c=[d]}")); assertTrue(driver.close()); } @Test - public void requireThatUriParametersAreParsed() throws Exception { + void requireThatUriParametersAreParsed() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html?a=b&c=d") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .execute(); response.expectStatusCode(is(OK)) .expectContent(is("{a=[b], c=[d]}")); assertTrue(driver.close()); } @Test - public void requireThatFormAndUriParametersAreMerged() throws Exception { + void requireThatFormAndUriParametersAreMerged() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html?a=b&c=d1") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .setContent("c=d2&e=f") - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .setContent("c=d2&e=f") + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith("{a=[b], c=[d1, d2], e=[f]}")); assertTrue(driver.close()); } @Test - public void requireThatFormCharsetIsHonored() throws Exception { + void requireThatFormCharsetIsHonored() throws Exception { final JettyTestDriver driver = newDriverWithFormPostContentRemoved(new ParameterPrinterRequestHandler(), true); final ResponseValidator response = driver.client().newPost("/status.html") @@ -333,7 +332,7 @@ public class HttpServerTest { } @Test - public void requireThatUnknownFormCharsetIsTreatedAsBadRequest() throws Exception { + void requireThatUnknownFormCharsetIsTreatedAsBadRequest() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") @@ -343,9 +342,9 @@ public class HttpServerTest { response.expectStatusCode(is(UNSUPPORTED_MEDIA_TYPE)); assertTrue(driver.close()); } - + @Test - public void requireThatFormPostWithPercentEncodedContentIsDecoded() throws Exception { + void requireThatFormPostWithPercentEncodedContentIsDecoded() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") @@ -358,7 +357,7 @@ public class HttpServerTest { } @Test - public void requireThatFormPostWithThrowingHandlerIsExceptionSafe() throws Exception { + void requireThatFormPostWithThrowingHandlerIsExceptionSafe() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ThrowingHandler()); final ResponseValidator response = driver.client().newPost("/status.html") @@ -370,7 +369,7 @@ public class HttpServerTest { } @Test - public void requireThatMultiPostWorks() throws Exception { + void requireThatMultiPostWorks() throws Exception { // This is taken from tcpdump of bug 5433352 and reassembled here to see that httpserver passes things on. final String startTxtContent = "this is a test for POST."; final String updaterConfContent @@ -389,19 +388,19 @@ public class HttpServerTest { } @Test - public void requireThatRequestCookiesAreReceived() throws Exception { + void requireThatRequestCookiesAreReceived() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new CookiePrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(COOKIE, "foo=bar") - .execute(); + .addHeader(COOKIE, "foo=bar") + .execute(); response.expectStatusCode(is(OK)) .expectContent(containsString("[foo=bar]")); assertTrue(driver.close()); } @Test - public void requireThatSetCookieHeaderIsCorrect() throws Exception { + void requireThatSetCookieHeaderIsCorrect() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new CookieSetterRequestHandler( new Cookie("foo", "bar") .setDomain(".localhost") @@ -409,18 +408,18 @@ public class HttpServerTest { .setPath("/foopath") .setSecure(true))); driver.client().get("/status.html") - .expectStatusCode(is(OK)) - .expectHeader("Set-Cookie", - is("foo=bar; Path=/foopath; Domain=.localhost; Secure; HttpOnly")); + .expectStatusCode(is(OK)) + .expectHeader("Set-Cookie", + is("foo=bar; Path=/foopath; Domain=.localhost; Secure; HttpOnly")); assertTrue(driver.close()); } @Test - public void requireThatTimeoutWorks() throws Exception { + void requireThatTimeoutWorks() throws Exception { final UnresponsiveHandler requestHandler = new UnresponsiveHandler(); final JettyTestDriver driver = JettyTestDriver.newInstance(requestHandler); driver.client().get("/status.html") - .expectStatusCode(is(GATEWAY_TIMEOUT)); + .expectStatusCode(is(GATEWAY_TIMEOUT)); ResponseDispatch.newInstance(OK).dispatch(requestHandler.responseHandler); assertTrue(driver.close()); } @@ -428,18 +427,18 @@ public class HttpServerTest { // Header with no value is disallowed by https://tools.ietf.org/html/rfc7230#section-3.2 // Details in https://github.com/eclipse/jetty.project/issues/1116 @Test - public void requireThatHeaderWithNullValueIsOmitted() throws Exception { + void requireThatHeaderWithNullValueIsOmitted() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoWithHeaderRequestHandler("X-Foo", null)); driver.client().get("/status.html") - .expectStatusCode(is(OK)) - .expectNoHeader("X-Foo"); + .expectStatusCode(is(OK)) + .expectNoHeader("X-Foo"); assertTrue(driver.close()); } // Header with empty value is allowed by https://tools.ietf.org/html/rfc7230#section-3.2 // Details in https://github.com/eclipse/jetty.project/issues/1116 @Test - public void requireThatHeaderWithEmptyValueIsAllowed() throws Exception { + void requireThatHeaderWithEmptyValueIsAllowed() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoWithHeaderRequestHandler("X-Foo", "")); driver.client().get("/status.html") .expectStatusCode(is(OK)) @@ -448,19 +447,19 @@ public class HttpServerTest { } @Test - public void requireThatNoConnectionHeaderMeansKeepAliveInHttp11KeepAliveDisabled() throws Exception { + void requireThatNoConnectionHeaderMeansKeepAliveInHttp11KeepAliveDisabled() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoWithHeaderRequestHandler(CONNECTION, CLOSE)); driver.client().get("/status.html") - .expectHeader(CONNECTION, is(CLOSE)); + .expectHeader(CONNECTION, is(CLOSE)); assertThat(driver.close(), is(true)); } @Test - @Ignore("Temporarily ignore until stabilized") - public void requireThatConnectionIsClosedAfterXRequests() throws Exception { + @Disabled("Temporarily ignore until stabilized") + void requireThatConnectionIsClosedAfterXRequests() throws Exception { final int MAX_REQUESTS = 10; - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); ConnectorConfig.Builder connectorConfig = new ConnectorConfig.Builder() .maxRequestsPerConnection(MAX_REQUESTS) @@ -490,7 +489,7 @@ public class HttpServerTest { // HTTP/2 try (CloseableHttpAsyncClient client = createHttp2Client(driver)) { String uri = "https://localhost:" + driver.server().getListenPort() + "/status.html"; - for (int i = 0; i < 2*MAX_REQUESTS; i++) { + for (int i = 0; i < 2 * MAX_REQUESTS; i++) { try { client.execute(SimpleRequestBuilder.get(uri).build(), null).get(); } catch (ExecutionException e) { @@ -508,22 +507,22 @@ public class HttpServerTest { } @Test - public void requireThatServerCanRespondToSslRequest() throws Exception { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatServerCanRespondToSslRequest() throws Exception { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); final JettyTestDriver driver = JettyTestDriver.newInstanceWithSsl(new EchoRequestHandler(), certificateFile, privateKeyFile, TlsClientAuth.WANT); driver.client().get("/status.html") - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); assertTrue(driver.close()); } @Test - public void requireThatTlsClientAuthenticationEnforcerRejectsRequestsForNonWhitelistedPaths() throws IOException { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatTlsClientAuthenticationEnforcerRejectsRequestsForNonWhitelistedPaths() throws IOException { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); JettyTestDriver driver = createSslWithTlsClientAuthenticationEnforcer(certificateFile, privateKeyFile); @@ -539,9 +538,9 @@ public class HttpServerTest { } @Test - public void requireThatTlsClientAuthenticationEnforcerAllowsRequestForWhitelistedPaths() throws IOException { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatTlsClientAuthenticationEnforcerAllowsRequestForWhitelistedPaths() throws IOException { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); JettyTestDriver driver = JettyTestDriver.newInstanceWithSsl(new EchoRequestHandler(), certificateFile, privateKeyFile, TlsClientAuth.WANT); @@ -557,33 +556,33 @@ public class HttpServerTest { } @Test - public void requireThatConnectedAtReturnsNonZero() throws Exception { + void requireThatConnectedAtReturnsNonZero() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ConnectedAtRequestHandler()); driver.client().get("/status.html") - .expectStatusCode(is(OK)) - .expectContent(matchesPattern("\\d{13,}")); + .expectStatusCode(is(OK)) + .expectContent(matchesPattern("\\d{13,}")); assertThat(driver.close(), is(true)); } @Test - public void requireThatGzipEncodingRequestsAreAutomaticallyDecompressed() throws Exception { + void requireThatGzipEncodingRequestsAreAutomaticallyDecompressed() throws Exception { JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); String requestContent = generateContent('a', 30); ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .setGzipContent(requestContent) - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .setGzipContent(requestContent) + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith('{' + requestContent + "=[]}")); assertTrue(driver.close()); } @Test - public void requireThatResponseStatsAreCollected() throws Exception { + void requireThatResponseStatsAreCollected() throws Exception { RequestTypeHandler handler = new RequestTypeHandler(); JettyTestDriver driver = JettyTestDriver.newInstance(handler); HttpResponseStatisticsCollector statisticsCollector = ((AbstractHandlerContainer) driver.server().server().getHandler()) - .getChildHandlerByClass(HttpResponseStatisticsCollector.class); + .getChildHandlerByClass(HttpResponseStatisticsCollector.class); { List stats = statisticsCollector.takeStatistics(); @@ -614,7 +613,7 @@ public class HttpServerTest { handler.setRequestType(Request.RequestType.READ); driver.client().newPost("/status.html").execute(); var entry = waitForStatistics(statisticsCollector); - assertEquals("Handler overrides request type", "read", entry.dimensions.requestType); + assertEquals("read", entry.dimensions.requestType, "Handler overrides request type"); } assertTrue(driver.close()); @@ -635,25 +634,25 @@ public class HttpServerTest { } @Test - public void requireThatConnectionThrottleDoesNotBlockConnectionsBelowThreshold() throws Exception { + void requireThatConnectionThrottleDoesNotBlockConnectionsBelowThreshold() throws Exception { JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( new EchoRequestHandler(), new ServerConfig.Builder(), new ConnectorConfig.Builder() .throttling(new Throttling.Builder() - .enabled(true) - .maxAcceptRate(10) - .maxHeapUtilization(1.0) - .maxConnections(10))); + .enabled(true) + .maxAcceptRate(10) + .maxHeapUtilization(1.0) + .maxConnections(10))); driver.client().get("/status.html") .expectStatusCode(is(OK)); assertTrue(driver.close()); } @Test - public void requireThatConnectionIsTrackedInConnectionLog() throws Exception { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatConnectionIsTrackedInConnectionLog() throws Exception { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); InMemoryConnectionLog connectionLog = new InMemoryConnectionLog(); Module overrideModule = binder -> binder.bind(ConnectionLog.class).toInstance(connectionLog); @@ -690,7 +689,7 @@ public class HttpServerTest { } @Test - public void requireThatRequestIsTrackedInAccessLog() throws IOException, InterruptedException { + void requireThatRequestIsTrackedInAccessLog() throws IOException, InterruptedException { BlockingQueueRequestLog requestLogMock = new BlockingQueueRequestLog(); JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( new EchoRequestHandler(), @@ -705,9 +704,9 @@ public class HttpServerTest { } @Test - public void requireThatRequestsPerConnectionMetricIsAggregated() throws IOException { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatRequestsPerConnectionMetricIsAggregated() throws IOException { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); var metricConsumer = new MetricConsumerMock(); InMemoryConnectionLog connectionLog = new InMemoryConnectionLog(); @@ -719,9 +718,9 @@ public class HttpServerTest { } @Test - public void uriWithEmptyPathSegmentIsAllowed() throws Exception { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void uriWithEmptyPathSegmentIsAllowed() throws Exception { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); MetricConsumerMock metricConsumer = new MetricConsumerMock(); InMemoryConnectionLog connectionLog = new InMemoryConnectionLog(); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServletTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServletTest.java index 494f33ca04b..348bfd6183e 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServletTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServletTest.java @@ -16,7 +16,7 @@ import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.classic.methods.HttpPut; import org.apache.hc.client5.http.classic.methods.HttpTrace; import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URI; @@ -32,30 +32,30 @@ import static org.hamcrest.MatcherAssert.assertThat; public class JDiscHttpServletTest { @Test - public void requireThatServerRespondsToAllMethods() throws Exception { + void requireThatServerRespondsToAllMethods() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(newEchoHandler()); final URI uri = driver.client().newUri("/status.html"); driver.client().execute(new HttpGet(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpPost(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpHead(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpPut(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpDelete(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpOptions(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpTrace(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpPatch(uri)) .expectStatusCode(is(OK)); assertThat(driver.close(), is(true)); } @Test - public void requireThatServerResponds405ToUnknownMethods() throws IOException { + void requireThatServerResponds405ToUnknownMethods() throws IOException { JettyTestDriver driver = JettyTestDriver.newInstance(newEchoHandler()); final URI uri = driver.client().newUri("/status.html"); driver.client().execute(new UnknownMethodHttpRequest(uri)) diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SimpleHttpClient.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SimpleHttpClient.java index c2a6e0326e2..298f0feb9e6 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SimpleHttpClient.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SimpleHttpClient.java @@ -24,7 +24,6 @@ import org.apache.hc.core5.http.io.entity.ByteArrayEntity; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.entity.StringEntity; import org.hamcrest.Matcher; -import org.hamcrest.MatcherAssert; import javax.net.ssl.SSLContext; import java.io.IOException; @@ -38,7 +37,7 @@ import java.util.List; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** * A simple http client for testing @@ -186,14 +185,14 @@ public class SimpleHttpClient implements AutoCloseable { } public ResponseValidator expectStatusCode(Matcher matcher) { - MatcherAssert.assertThat(response.getCode(), matcher); + assertThat(response.getCode(), matcher); return this; } public ResponseValidator expectHeader(String headerName, Matcher matcher) { Header firstHeader = response.getFirstHeader(headerName); String headerValue = firstHeader != null ? firstHeader.getValue() : null; - MatcherAssert.assertThat(headerValue, matcher); + assertThat(headerValue, matcher); assertNotNull(firstHeader); return this; } @@ -205,7 +204,7 @@ public class SimpleHttpClient implements AutoCloseable { } public ResponseValidator expectContent(final Matcher matcher) { - MatcherAssert.assertThat(content, matcher); + assertThat(content, matcher); return this; } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListenerTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListenerTest.java index cf7e1de4381..3858d6b9e4e 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListenerTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListenerTest.java @@ -3,7 +3,7 @@ package com.yahoo.jdisc.http.server.jetty; import com.yahoo.jdisc.Metric; import org.eclipse.jetty.io.ssl.SslHandshakeListener; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLHandshakeException; @@ -23,13 +23,13 @@ public class SslHandshakeFailedListenerTest { SslHandshakeFailedListener listener = new SslHandshakeFailedListener(metrics, "connector", 1234); @Test - public void includes_client_ip_dimension_present_when_peer_available() { + void includes_client_ip_dimension_present_when_peer_available() { listener.handshakeFailed(handshakeEvent(true), new SSLHandshakeException("Empty server certificate chain")); verify(metrics).createContext(eq(Map.of("clientIp", "127.0.0.1", "serverName", "connector", "serverPort", 1234))); } @Test - public void does_not_include_client_ip_dimension_present_when_peer_unavailable() { + void does_not_include_client_ip_dimension_present_when_peer_unavailable() { listener.handshakeFailed(handshakeEvent(false), new SSLHandshakeException("Empty server certificate chain")); verify(metrics).createContext(eq(Map.of("serverName", "connector", "serverPort", 1234))); } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/ssl/impl/TlsContextBasedProviderTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/ssl/impl/TlsContextBasedProviderTest.java index e8e358252dc..a192c49aeb9 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/ssl/impl/TlsContextBasedProviderTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/ssl/impl/TlsContextBasedProviderTest.java @@ -9,7 +9,7 @@ import com.yahoo.security.tls.DefaultTlsContext; import com.yahoo.security.tls.HostnameVerification; import com.yahoo.security.tls.PeerAuthentication; import com.yahoo.security.tls.TlsContext; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.security.auth.x500.X500Principal; import java.math.BigInteger; @@ -22,7 +22,7 @@ import java.util.Set; import static com.yahoo.security.KeyAlgorithm.EC; import static com.yahoo.security.SignatureAlgorithm.SHA256_WITH_ECDSA; -import static org.junit.Assert.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; /** * @author bjorncs @@ -30,7 +30,7 @@ import static org.junit.Assert.assertArrayEquals; public class TlsContextBasedProviderTest { @Test - public void creates_sslcontextfactory_from_tlscontext() { + void creates_sslcontextfactory_from_tlscontext() { TlsContext tlsContext = createTlsContext(); var provider = new SimpleTlsContextBasedProvider(tlsContext); DefaultConnectorSsl ssl = new DefaultConnectorSsl(); diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/BucketTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/BucketTest.java index cc5d110d423..11cc8b86a09 100644 --- a/container-core/src/test/java/com/yahoo/metrics/simple/BucketTest.java +++ b/container-core/src/test/java/com/yahoo/metrics/simple/BucketTest.java @@ -1,7 +1,8 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.metrics.simple; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Collection; import java.util.List; @@ -12,10 +13,9 @@ import java.util.logging.LogRecord; import java.util.logging.Logger; import java.util.Set; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.google.common.collect.ImmutableMap; import com.yahoo.metrics.simple.UntypedMetric.AssumedType; @@ -28,18 +28,18 @@ import com.yahoo.metrics.simple.UntypedMetric.AssumedType; public class BucketTest { private Bucket bucket; - @Before + @BeforeEach public void setUp() throws Exception { bucket = new Bucket(); } - @After + @AfterEach public void tearDown() throws Exception { bucket = null; } @Test - public final void testEntrySet() { + final void testEntrySet() { assertEquals(0, bucket.entrySet().size()); for (int i = 0; i < 4; ++i) { bucket.put(new Sample(new Measurement(i), new Identifier("nalle_" + i, null), AssumedType.GAUGE)); @@ -47,7 +47,7 @@ public class BucketTest { assertEquals(4, bucket.entrySet().size()); for (int i = 0; i < 4; ++i) { bucket.put(new Sample(new Measurement(i), new Identifier("nalle", - new Point(new ImmutableMap.Builder().put("dim", Integer.valueOf(i)).build())), + new Point(new ImmutableMap.Builder().put("dim", Integer.valueOf(i)).build())), AssumedType.GAUGE)); } assertEquals(8, bucket.entrySet().size()); @@ -55,23 +55,23 @@ public class BucketTest { for (Entry x : bucket.entrySet()) { String metricName = x.getKey().getName(); switch (metricName) { - case "nalle": - ++nalle; - break; - case "nalle_0": - ++nalle0; - break; - case "nalle_1": - ++nalle1; - break; - case "nalle_2": - ++nalle2; - break; - case "nalle_3": - ++nalle3; - break; - default: - throw new IllegalStateException(); + case "nalle": + ++nalle; + break; + case "nalle_0": + ++nalle0; + break; + case "nalle_1": + ++nalle1; + break; + case "nalle_2": + ++nalle2; + break; + case "nalle_3": + ++nalle3; + break; + default: + throw new IllegalStateException(); } } assertEquals(4, nalle); @@ -82,7 +82,7 @@ public class BucketTest { } @Test - public final void testPutSampleWithUnsupportedType() { + final void testPutSampleWithUnsupportedType() { boolean caughtIt = false; try { bucket.put(new Sample(new Measurement(1), new Identifier("nalle", null), AssumedType.NONE)); @@ -93,7 +93,7 @@ public class BucketTest { } @Test - public final void testPutIdentifierUntypedValue() { + final void testPutIdentifierUntypedValue() { UntypedMetric v = new UntypedMetric(null); v.add(2); bucket.put(new Sample(new Measurement(3), new Identifier("nalle", null), AssumedType.GAUGE)); @@ -106,10 +106,10 @@ public class BucketTest { } @Test - public final void testHasIdentifier() { + final void testHasIdentifier() { for (int i = 0; i < 4; ++i) { bucket.put(new Sample(new Measurement(i), new Identifier("nalle_" + i, new Point( - new ImmutableMap.Builder().put(String.valueOf(i), Integer.valueOf(i)).build())), + new ImmutableMap.Builder().put(String.valueOf(i), Integer.valueOf(i)).build())), AssumedType.GAUGE)); } for (int i = 0; i < 4; ++i) { @@ -119,7 +119,7 @@ public class BucketTest { } @Test - public final void testOkMerge() { + final void testOkMerge() { bucket.put(new Sample(new Measurement(2), new Identifier("nalle", null), AssumedType.GAUGE)); Bucket otherNew = new Bucket(); otherNew.put(new Sample(new Measurement(3), new Identifier("nalle", null), AssumedType.GAUGE)); @@ -138,7 +138,7 @@ public class BucketTest { } @Test - public final void testMergeDifferentMetrics() { + final void testMergeDifferentMetrics() { bucket.put(new Sample(new Measurement(2), new Identifier("nalle", null), AssumedType.GAUGE)); Bucket otherNew = new Bucket(); otherNew.put(new Sample(new Measurement(3), new Identifier("other", null), AssumedType.GAUGE)); @@ -188,7 +188,7 @@ public class BucketTest { } @Test - public final void testMismatchedMerge() { + final void testMismatchedMerge() { Logger log = Logger.getLogger(Bucket.class.getName()); boolean[] loggingMarker = new boolean[1]; loggingMarker[0] = false; @@ -205,7 +205,7 @@ public class BucketTest { } @Test - public final void testGetAllMetricNames() { + final void testGetAllMetricNames() { twoMetricsUniqueDimensions(); Collection names = bucket.getAllMetricNames(); assertEquals(2, names.size()); @@ -214,7 +214,7 @@ public class BucketTest { } @Test - public final void testGetValuesForMetric() { + final void testGetValuesForMetric() { twoMetricsUniqueDimensions(); Collection> values = bucket.getValuesForMetric("nalle"); assertEquals(4, values.size()); @@ -231,7 +231,7 @@ public class BucketTest { } @Test - public final void testGetValuesByMetricName() { + final void testGetValuesByMetricName() { twoMetricsUniqueDimensions(); Map>> values = bucket.getValuesByMetricName(); assertEquals(2, values.size()); diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/CounterTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/CounterTest.java index f579b1584aa..45a76078619 100644 --- a/container-core/src/test/java/com/yahoo/metrics/simple/CounterTest.java +++ b/container-core/src/test/java/com/yahoo/metrics/simple/CounterTest.java @@ -1,8 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.metrics.simple; -import static org.junit.Assert.*; - import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -10,9 +8,10 @@ import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.TimeUnit; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * Functional tests for counters. @@ -23,18 +22,18 @@ public class CounterTest { MetricReceiver receiver; - @Before + @BeforeEach public void setUp() throws Exception { receiver = new MetricReceiver.MockReceiver(); } - @After + @AfterEach public void tearDown() throws Exception { receiver = null; } @Test - public final void testAdd() throws InterruptedException { + final void testAdd() throws InterruptedException { final String metricName = "unitTestCounter"; Counter c = receiver.declareCounter(metricName); c.add(); @@ -48,7 +47,7 @@ public class CounterTest { } @Test - public final void testAddLong() throws InterruptedException { + final void testAddLong() throws InterruptedException { final String metricName = "unitTestCounter"; Counter c = receiver.declareCounter(metricName); final long twoToThePowerOfFourtyeight = 65536L * 65536L * 65536L; @@ -63,7 +62,7 @@ public class CounterTest { } @Test - public final void testAddPoint() throws InterruptedException { + final void testAddPoint() throws InterruptedException { final String metricName = "unitTestCounter"; Point p = receiver.pointBuilder().set("x", 2L).set("y", 3.0d).set("z", "5").build(); Counter c = receiver.declareCounter(metricName, p); @@ -75,10 +74,10 @@ public class CounterTest { assertEquals(1, x.size()); assertEquals(p, x.get(0).getKey()); assertEquals(1, x.get(0).getValue().getCount()); - } + } @Test - public final void testAddLongPoint() throws InterruptedException { + final void testAddLongPoint() throws InterruptedException { final String metricName = "unitTestCounter"; Point p = receiver.pointBuilder().set("x", 2L).set("y", 3.0d).set("z", "5").build(); Counter c = receiver.declareCounter(metricName, p); diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java index b1b1ff28aeb..267ca1d575d 100644 --- a/container-core/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java +++ b/container-core/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java @@ -1,17 +1,17 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.metrics.simple; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Collection; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.metrics.simple.UntypedMetric.AssumedType; /** @@ -24,18 +24,18 @@ public class DimensionsCacheTest { private static final int POINTS_TO_KEEP = 3; DimensionCache cache; - @Before + @BeforeEach public void setUp() throws Exception { cache = new DimensionCache(POINTS_TO_KEEP); } - @After + @AfterEach public void tearDown() throws Exception { cache = null; } @Test - public final void smokeTest() { + final void smokeTest() { String metricName = "testMetric"; Bucket first = new Bucket(); for (int i = 0; i < 4; ++i) { @@ -53,11 +53,11 @@ public class DimensionsCacheTest { newestFound = true; } } - assertTrue("Kept newest measurement when padding points.", newestFound); + assertTrue(newestFound, "Kept newest measurement when padding points."); } @Test - public final void testNoBoomWithEmptyBuckets() { + final void testNoBoomWithEmptyBuckets() { Bucket check = new Bucket(); cache.updateDimensionPersistence(null, new Bucket()); cache.updateDimensionPersistence(null, new Bucket()); @@ -66,7 +66,7 @@ public class DimensionsCacheTest { } @Test - public final void testUpdateWithNullThenDataThenData() { + final void testUpdateWithNullThenDataThenData() { Bucket first = new Bucket(); populateDimensionLessValue("one", first, 2); cache.updateDimensionPersistence(null, first); @@ -80,7 +80,7 @@ public class DimensionsCacheTest { } @Test - public final void requireThatOldDataIsForgotten() { + final void requireThatOldDataIsForgotten() { Bucket first = new Bucket(); // "now" as timestamp populateDimensionLessValue("one", first, 2); cache.updateDimensionPersistence(first, new Bucket()); @@ -96,7 +96,7 @@ public class DimensionsCacheTest { } @Test - public final void testUpdateWithNullThenDataThenNoDataThenData() { + final void testUpdateWithNullThenDataThenNoDataThenData() { Bucket first = new Bucket(); Bucket second = new Bucket(); populateDimensionLessValue("first", first, 1.0d); diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/GaugeTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/GaugeTest.java index 0d4d6360f20..8147f9a53cc 100644 --- a/container-core/src/test/java/com/yahoo/metrics/simple/GaugeTest.java +++ b/container-core/src/test/java/com/yahoo/metrics/simple/GaugeTest.java @@ -1,8 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.metrics.simple; -import static org.junit.Assert.*; - import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -10,10 +8,10 @@ import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.TimeUnit; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.metrics.ManagerConfig; /** @@ -25,18 +23,18 @@ public class GaugeTest { MetricReceiver receiver; - @Before + @BeforeEach public void setUp() throws Exception { receiver = new MetricReceiver.MockReceiver(); } - @After + @AfterEach public void tearDown() throws Exception { receiver = null; } @Test - public final void testSampleDouble() throws InterruptedException { + final void testSampleDouble() throws InterruptedException { final String metricName = "unitTestGauge"; Gauge g = receiver.declareGauge(metricName); g.sample(1.0d); @@ -51,7 +49,7 @@ public class GaugeTest { } @Test - public final void testSampleDoublePoint() throws InterruptedException { + final void testSampleDoublePoint() throws InterruptedException { final String metricName = "unitTestGauge"; Point p = receiver.pointBuilder().set("x", 2L).set("y", 3.0d).set("z", "5").build(); Gauge g = receiver.declareGauge(metricName, p); diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/MetricsTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/MetricsTest.java index c8a5f17fdfb..f64998f0be4 100644 --- a/container-core/src/test/java/com/yahoo/metrics/simple/MetricsTest.java +++ b/container-core/src/test/java/com/yahoo/metrics/simple/MetricsTest.java @@ -1,17 +1,16 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.metrics.simple; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Collection; import java.util.Map.Entry; import java.util.concurrent.TimeUnit; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.yahoo.metrics.simple.jdisc.JdiscMetricsFactory; import com.yahoo.metrics.simple.jdisc.SimpleMetricConsumer; @@ -23,19 +22,19 @@ import com.yahoo.metrics.simple.jdisc.SimpleMetricConsumer; public class MetricsTest extends UnitTestSetup { SimpleMetricConsumer metricApi; - @Before + @BeforeEach public void setUp() throws Exception { super.init(); metricApi = (SimpleMetricConsumer) new JdiscMetricsFactory(metricManager.get()).newInstance(); } - @After + @AfterEach public void tearDown() throws Exception { super.fini(); } @Test - public final void smokeTest() throws InterruptedException { + final void smokeTest() throws InterruptedException { final String metricName = "testMetric"; metricApi.set(metricName, Double.valueOf(1.0d), null); updater.gotData.await(10, TimeUnit.SECONDS); @@ -49,7 +48,7 @@ public class MetricsTest extends UnitTestSetup { } @Test - public final void testRedefinition() { + final void testRedefinition() { MetricReceiver r = metricManager.get(); final String metricName = "gah"; r.addMetricDefinition(metricName, new MetricSettings.Builder().build()); diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java index ca680c805ef..e6cb70db07a 100644 --- a/container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java +++ b/container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java @@ -1,20 +1,20 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.metrics.simple; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Collections; import java.util.HashMap; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author bratseth */ public class PointTest { - + @Test - public void testPointEquality() { + void testPointEquality() { Point a = new Point(Collections.emptyMap()); Point b = new Point(new HashMap<>(0)); assertEquals(a.hashCode(), b.hashCode()); diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java index 4d4229e8369..7981e5904f3 100644 --- a/container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java +++ b/container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java @@ -12,14 +12,14 @@ import com.yahoo.metrics.simple.Identifier; import com.yahoo.metrics.simple.MetricReceiver; import com.yahoo.metrics.simple.Point; import com.yahoo.metrics.simple.UntypedMetric; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author bratseth @@ -27,10 +27,10 @@ import static org.junit.Assert.assertTrue; public class SnapshotConverterTest { @Test - public void testPointConversion() { + void testPointConversion() { MetricDimensions a = SnapshotConverter.convert(new Point(Collections.emptyMap())); MetricDimensions b = SnapshotConverter.convert(new Point(new HashMap<>(0))); - MetricDimensions c = SnapshotConverter.convert((Point)null); + MetricDimensions c = SnapshotConverter.convert((Point) null); assertEquals(a.hashCode(), b.hashCode()); assertEquals(a, b); assertEquals(a.hashCode(), c.hashCode()); @@ -40,11 +40,11 @@ public class SnapshotConverterTest { } @Test - public void testConversion() { + void testConversion() { MetricReceiver mock = new MetricReceiver.MockReceiver(); mock.declareCounter("foo").add(1); mock.declareGauge("quuux").sample(42.25); - mock.declareCounter("bar", new Point(new HashMap())).add(4); + mock.declareCounter("bar", new Point(new HashMap())).add(4); MetricSnapshot snapshot = new SnapshotConverter(mock.getSnapshot()).convert(); @@ -58,14 +58,14 @@ public class SnapshotConverterTest { ++cnt; if ("foo".equals(mv.getKey())) { assertTrue(mv.getValue() instanceof CountMetric); - assertEquals(1, ((CountMetric)mv.getValue()).getCount()); + assertEquals(1, ((CountMetric) mv.getValue()).getCount()); } else if ("bar".equals(mv.getKey())) { assertTrue(mv.getValue() instanceof CountMetric); - assertEquals(4, ((CountMetric)mv.getValue()).getCount()); + assertEquals(4, ((CountMetric) mv.getValue()).getCount()); } else if ("quuux".equals(mv.getKey())) { assertTrue(mv.getValue() instanceof GaugeMetric); - assertEquals(42.25, ((GaugeMetric)mv.getValue()).getLast(), 0.001); - assertEquals(1, ((GaugeMetric)mv.getValue()).getCount()); + assertEquals(42.25, ((GaugeMetric) mv.getValue()).getLast(), 0.001); + assertEquals(1, ((GaugeMetric) mv.getValue()).getCount()); } else { assertTrue(false); } diff --git a/container-core/src/test/java/com/yahoo/osgi/provider/model/ComponentModelTest.java b/container-core/src/test/java/com/yahoo/osgi/provider/model/ComponentModelTest.java index a1e533158b5..c1f4991cfcc 100644 --- a/container-core/src/test/java/com/yahoo/osgi/provider/model/ComponentModelTest.java +++ b/container-core/src/test/java/com/yahoo/osgi/provider/model/ComponentModelTest.java @@ -2,9 +2,10 @@ package com.yahoo.osgi.provider.model; import com.yahoo.container.bundle.BundleInstantiationSpecification; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; /** * @author gjoranv @@ -12,19 +13,21 @@ import static org.junit.Assert.assertEquals; public class ComponentModelTest { @Test - public void create_from_instantiation_spec() { + void create_from_instantiation_spec() { ComponentModel model = new ComponentModel( BundleInstantiationSpecification.fromStrings("id", "class", "bundle")); verifyBundleSpec(model); } - @Test(expected = IllegalArgumentException.class) - public void require_exception_upon_null_instantiation_spec() throws Exception { - ComponentModel model = new ComponentModel(null); + @Test + void require_exception_upon_null_instantiation_spec() throws Exception { + assertThrows(IllegalArgumentException.class, () -> { + ComponentModel model = new ComponentModel(null); + }); } @Test - public void create_from_instantiation_spec_and_config_id() throws Exception { + void create_from_instantiation_spec_and_config_id() throws Exception { ComponentModel model = new ComponentModel( BundleInstantiationSpecification.fromStrings("id", "class", "bundle"), "configId"); verifyBundleSpec(model); @@ -32,7 +35,7 @@ public class ComponentModelTest { } @Test - public void create_from_strings() throws Exception { + void create_from_strings() throws Exception { ComponentModel model = new ComponentModel("id", "class", "bundle", "configId"); verifyBundleSpec(model); assertEquals("configId", model.configId); diff --git a/container-core/src/test/java/com/yahoo/processing/ResponseTestCase.java b/container-core/src/test/java/com/yahoo/processing/ResponseTestCase.java index f8cd646909d..274bd2050f2 100644 --- a/container-core/src/test/java/com/yahoo/processing/ResponseTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/ResponseTestCase.java @@ -5,11 +5,11 @@ import com.yahoo.processing.response.ArrayDataList; import com.yahoo.processing.response.DataList; import com.yahoo.processing.test.ProcessorLibrary; import com.yahoo.processing.test.Responses; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.concurrent.ExecutionException; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author bratseth @@ -24,7 +24,7 @@ public class ResponseTestCase { */ @SuppressWarnings({"unchecked"}) @Test - public void testRecursiveCompletionAndToString() throws InterruptedException, ExecutionException { + void testRecursiveCompletionAndToString() throws InterruptedException, ExecutionException { // create lists Request request = new Request(); DataList list1 = ArrayDataList.create(request); @@ -48,22 +48,22 @@ public class ResponseTestCase { list123.add(list1231); list123.add(list1232); // add sync data elements - list1.add(new ProcessorLibrary.StringData(request,"list1")); - list12.add(new ProcessorLibrary.StringData(request,"list12")); - list14.add(new ProcessorLibrary.StringData(request,"list14")); - list122.add(new ProcessorLibrary.StringData(request,"list122")); - list1231.add(new ProcessorLibrary.StringData(request,"list1231")); + list1.add(new ProcessorLibrary.StringData(request, "list1")); + list12.add(new ProcessorLibrary.StringData(request, "list12")); + list14.add(new ProcessorLibrary.StringData(request, "list14")); + list122.add(new ProcessorLibrary.StringData(request, "list122")); + list1231.add(new ProcessorLibrary.StringData(request, "list1231")); - assertEqualsIgnoreObjectNumbers("Uncompleted tree, no incoming",uncompletedTreeUncompletedIncoming,Responses.recursiveToString(list1)); + assertEqualsIgnoreObjectNumbers("Uncompleted tree, no incoming", uncompletedTreeUncompletedIncoming, Responses.recursiveToString(list1)); // provide all async incoming data list12.incoming().markComplete(); - list121.incoming().addLast(new ProcessorLibrary.StringData(request,"list121async1")); + list121.incoming().addLast(new ProcessorLibrary.StringData(request, "list121async1")); list123.incoming().markComplete(); - list1231.incoming().add(new ProcessorLibrary.StringData(request,"list13231async1")); - list1231.incoming().addLast(new ProcessorLibrary.StringData(request,"list1231async2")); - list13.incoming().add(new ProcessorLibrary.StringData(request,"list13async1")); - list13.incoming().addLast(new ProcessorLibrary.StringData(request,"list13async2")); + list1231.incoming().add(new ProcessorLibrary.StringData(request, "list13231async1")); + list1231.incoming().addLast(new ProcessorLibrary.StringData(request, "list1231async2")); + list13.incoming().add(new ProcessorLibrary.StringData(request, "list13async1")); + list13.incoming().addLast(new ProcessorLibrary.StringData(request, "list13async2")); assertEqualsIgnoreObjectNumbers("Uncompleted tree, incoming complete", uncompletedTreeCompletedIncoming, Responses.recursiveToString(list1)); @@ -73,7 +73,7 @@ public class ResponseTestCase { } private void assertEqualsIgnoreObjectNumbers(String explanation,String expected,String actual) { - assertEquals(explanation,expected,removeObjectNumbers(actual)); + assertEquals(expected,removeObjectNumbers(actual),explanation); } /** Removes all object numbers (occurrences of @hexnumber) */ diff --git a/container-core/src/test/java/com/yahoo/processing/execution/test/AsyncExecutionTestCase.java b/container-core/src/test/java/com/yahoo/processing/execution/test/AsyncExecutionTestCase.java index 22f69a87bc3..fb469c36e14 100644 --- a/container-core/src/test/java/com/yahoo/processing/execution/test/AsyncExecutionTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/execution/test/AsyncExecutionTestCase.java @@ -6,10 +6,10 @@ import com.yahoo.processing.Processor; import com.yahoo.processing.Request; import com.yahoo.processing.Response; import com.yahoo.processing.execution.Execution; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static com.yahoo.processing.test.ProcessorLibrary.*; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author bratseth @@ -18,29 +18,29 @@ public class AsyncExecutionTestCase { /** Execute a processing chain which forks off into multiple threads */ @Test - public void testAsyncExecution() { + void testAsyncExecution() { // Create a chain - Chain chain=new Chain<>(new CombineData(),new BlockingSplitter(2),new Get6DataItems(), new DataSource()); + Chain chain = new Chain<>(new CombineData(), new BlockingSplitter(2), new Get6DataItems(), new DataSource()); // Execute it - Request request=new Request(); - request.properties().set("appendage",1); - Response response=Execution.createRoot(chain,0,Execution.Environment.createEmpty()).process(request); + Request request = new Request(); + request.properties().set("appendage", 1); + Response response = Execution.createRoot(chain, 0, Execution.Environment.createEmpty()).process(request); // Verify the result - assertEquals(6*2-1,response.data().asList().size()); - assertEquals("first.2, third.2",response.data().get(0).toString()); - assertEquals("second.2",response.data().get(1).toString()); - assertEquals("first.3",response.data().get(2).toString()); - assertEquals("second.3",response.data().get(3).toString()); - assertEquals("third.3",response.data().get(4).toString()); + assertEquals(6 * 2 - 1, response.data().asList().size()); + assertEquals("first.2, third.2", response.data().get(0).toString()); + assertEquals("second.2", response.data().get(1).toString()); + assertEquals("first.3", response.data().get(2).toString()); + assertEquals("second.3", response.data().get(3).toString()); + assertEquals("third.3", response.data().get(4).toString()); // from the parallel execution - assertEquals("first.2",response.data().get(5).toString()); - assertEquals("second.2",response.data().get(6).toString()); - assertEquals("third.2",response.data().get(7).toString()); - assertEquals("first.3",response.data().get(8).toString()); - assertEquals("second.3",response.data().get(9).toString()); - assertEquals("third.3",response.data().get(10).toString()); + assertEquals("first.2", response.data().get(5).toString()); + assertEquals("second.2", response.data().get(6).toString()); + assertEquals("third.2", response.data().get(7).toString()); + assertEquals("first.3", response.data().get(8).toString()); + assertEquals("second.3", response.data().get(9).toString()); + assertEquals("third.3", response.data().get(10).toString()); } } diff --git a/container-core/src/test/java/com/yahoo/processing/execution/test/ExecutionContextTestCase.java b/container-core/src/test/java/com/yahoo/processing/execution/test/ExecutionContextTestCase.java index c8c489b2f9d..ce7a747d676 100644 --- a/container-core/src/test/java/com/yahoo/processing/execution/test/ExecutionContextTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/execution/test/ExecutionContextTestCase.java @@ -5,16 +5,13 @@ import com.yahoo.component.chain.Chain; import com.yahoo.processing.Processor; import com.yahoo.processing.execution.Execution; import com.yahoo.processing.test.ProcessorLibrary; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @author bratseth @@ -25,53 +22,53 @@ public class ExecutionContextTestCase { /** Tests combined use of trace messages, context values and access log entries */ @Test - public void testtrace() { - Execution execution1=Execution.createRoot(chain,2,Execution.Environment.createEmpty()); - execution1.trace().setProperty("a","a1"); - execution1.trace().logValue("a","a1"); + void testtrace() { + Execution execution1 = Execution.createRoot(chain, 2, Execution.Environment.createEmpty()); + execution1.trace().setProperty("a", "a1"); + execution1.trace().logValue("a", "a1"); execution1.trace().trace("root 1", 2); - execution1.trace().setProperty("a","a2"); - execution1.trace().setProperty("b","b1"); - execution1.trace().logValue("a","a2"); - execution1.trace().logValue("b","b1"); - - Execution execution2=new Execution(chain,execution1); - execution2.trace().setProperty("b","b2"); - execution2.trace().logValue("b","b2"); + execution1.trace().setProperty("a", "a2"); + execution1.trace().setProperty("b", "b1"); + execution1.trace().logValue("a", "a2"); + execution1.trace().logValue("b", "b1"); + + Execution execution2 = new Execution(chain, execution1); + execution2.trace().setProperty("b", "b2"); + execution2.trace().logValue("b", "b2"); execution2.trace().trace(" child-1 1", 2); execution2.trace().setProperty("b", "b3"); - execution2.trace().logValue("b","b3"); + execution2.trace().logValue("b", "b3"); - execution1.trace().setProperty("b","b4"); - execution1.trace().logValue("b","b4"); + execution1.trace().setProperty("b", "b4"); + execution1.trace().logValue("b", "b4"); - Execution execution3=new Execution(chain,execution1); - execution3.trace().setProperty("b","b5"); - execution3.trace().setProperty("c","c1"); - execution3.trace().logValue("b","b5"); - execution3.trace().logValue("c","c1"); + Execution execution3 = new Execution(chain, execution1); + execution3.trace().setProperty("b", "b5"); + execution3.trace().setProperty("c", "c1"); + execution3.trace().logValue("b", "b5"); + execution3.trace().logValue("c", "c1"); execution3.trace().trace(" child-2 1", 2); - execution2.trace().setProperty("c","c2"); - execution2.trace().logValue("c","c2"); + execution2.trace().setProperty("c", "c2"); + execution2.trace().logValue("c", "c2"); execution1.trace().trace("root 2", 2); execution3.trace().setProperty("d", "d1"); - execution1.trace().logValue("d","d1"); + execution1.trace().logValue("d", "d1"); execution2.trace().trace(" child-1 2", 2); execution2.trace().setProperty("c", "c3"); - execution2.trace().logValue("c","c3"); + execution2.trace().logValue("c", "c3"); - execution1.trace().setProperty("c","c4"); - execution1.trace().logValue("c","c4"); + execution1.trace().setProperty("c", "c4"); + execution1.trace().logValue("c", "c4"); - Iterator traceIterator=execution1.trace().traceNode().root().descendants(String.class).iterator(); - assertEquals("root 1",traceIterator.next()); - assertEquals(" child-1 1",traceIterator.next()); - assertEquals(" child-1 2",traceIterator.next()); - assertEquals(" child-2 1",traceIterator.next()); - assertEquals("root 2",traceIterator.next()); + Iterator traceIterator = execution1.trace().traceNode().root().descendants(String.class).iterator(); + assertEquals("root 1", traceIterator.next()); + assertEquals(" child-1 1", traceIterator.next()); + assertEquals(" child-1 2", traceIterator.next()); + assertEquals(" child-2 1", traceIterator.next()); + assertEquals("root 2", traceIterator.next()); assertFalse(traceIterator.hasNext()); // Verify context variables @@ -82,10 +79,10 @@ public class ExecutionContextTestCase { assertNull(execution1.trace().getProperty("e")); // Verify access log - Set logValues=new HashSet<>(); - for (Iterator logValueIterator=execution1.trace().logValueIterator(); logValueIterator.hasNext(); ) + Set logValues = new HashSet<>(); + for (Iterator logValueIterator = execution1.trace().logValueIterator(); logValueIterator.hasNext(); ) logValues.add(logValueIterator.next().toString()); - assertEquals(12,logValues.size()); + assertEquals(12, logValues.size()); assertTrue(logValues.contains("a=a1")); assertTrue(logValues.contains("a=a2")); assertTrue(logValues.contains("b=b1")); diff --git a/container-core/src/test/java/com/yahoo/processing/execution/test/FutureDataTestCase.java b/container-core/src/test/java/com/yahoo/processing/execution/test/FutureDataTestCase.java index 7dd043383a1..e346628452c 100644 --- a/container-core/src/test/java/com/yahoo/processing/execution/test/FutureDataTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/execution/test/FutureDataTestCase.java @@ -7,14 +7,14 @@ import com.yahoo.processing.Request; import com.yahoo.processing.Response; import com.yahoo.processing.execution.Execution; import com.yahoo.processing.response.DataList; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import static com.yahoo.processing.test.ProcessorLibrary.*; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Tests scenarios where a data producer returns a promise of some future data rather than the data itself. @@ -27,92 +27,92 @@ public class FutureDataTestCase { /** Run a chain which ends in a processor which returns a response containing future data. */ @SuppressWarnings({"unchecked"}) @Test - public void testFutureDataPassThrough() throws InterruptedException, ExecutionException, TimeoutException { + void testFutureDataPassThrough() throws InterruptedException, ExecutionException, TimeoutException { // Set up - FutureDataSource futureDataSource=new FutureDataSource(); - Chain chain=new Chain<>(new DataCounter(),futureDataSource); + FutureDataSource futureDataSource = new FutureDataSource(); + Chain chain = new Chain<>(new DataCounter(), futureDataSource); // Execute - Request request=new Request(); - Response response=Execution.createRoot(chain,0,Execution.Environment.createEmpty()).process(request); // Urk ... + Request request = new Request(); + Response response = Execution.createRoot(chain, 0, Execution.Environment.createEmpty()).process(request); // Urk ... // Verify the result prior to completion of delayed data - assertEquals(1,response.data().asList().size()); - assertEquals("Data count: 0",response.data().get(0).toString()); + assertEquals(1, response.data().asList().size()); + assertEquals("Data count: 0", response.data().get(0).toString()); // complete delayed data - assertEquals("Delayed data was requested once", 1, futureDataSource.incomingData.size()); + assertEquals(1, futureDataSource.incomingData.size(), "Delayed data was requested once"); futureDataSource.incomingData.get(0).add(new StringData(request, "d1")); futureDataSource.incomingData.get(0).addLast(new StringData(request, "d2")); - assertEquals("New data is not visible because we haven't asked for it", 1, response.data().asList().size()); + assertEquals(1, response.data().asList().size(), "New data is not visible because we haven't asked for it"); response.data().completeFuture().get(1000, TimeUnit.MILLISECONDS); - assertEquals("Now the data is available", 3, response.data().asList().size()); - assertEquals("d1",response.data().get(1).toString().toString()); - assertEquals("d2",response.data().get(2).toString().toString()); + assertEquals(3, response.data().asList().size(), "Now the data is available"); + assertEquals("d1", response.data().get(1).toString().toString()); + assertEquals("d2", response.data().get(2).toString().toString()); } /** Federate to one source which returns data immediately and one who return future data */ @SuppressWarnings({"unchecked"}) @Test - public void testFederateSyncAndAsyncData() throws InterruptedException, ExecutionException, TimeoutException { + void testFederateSyncAndAsyncData() throws InterruptedException, ExecutionException, TimeoutException { // Set up - FutureDataSource futureDataSource=new FutureDataSource(); - Chain chain=new Chain<>(new DataCounter(),new Federator(new Chain<>(new DataSource()),new Chain<>(futureDataSource))); + FutureDataSource futureDataSource = new FutureDataSource(); + Chain chain = new Chain<>(new DataCounter(), new Federator(new Chain<>(new DataSource()), new Chain<>(futureDataSource))); // Execute - Request request=new Request(); - request.properties().set("appendage",1); - Response response=Execution.createRoot(chain,0,Execution.Environment.createEmpty()).process(request); + Request request = new Request(); + request.properties().set("appendage", 1); + Response response = Execution.createRoot(chain, 0, Execution.Environment.createEmpty()).process(request); // Verify the result prior to completion of delayed data - assertEquals(3,response.data().asList().size()); // The sync data list + the (currently empty) future data list) + the data count - DataList syncData=(DataList)response.data().get(0); - DataList asyncData=(DataList)response.data().get(1); - StringData countData=(StringData)response.data().get(2); + assertEquals(3, response.data().asList().size()); // The sync data list + the (currently empty) future data list) + the data count + DataList syncData = (DataList) response.data().get(0); + DataList asyncData = (DataList) response.data().get(1); + StringData countData = (StringData) response.data().get(2); - assertEquals("The sync data is available",3,syncData.asList().size()); - assertEquals( "first.1",syncData.get(0).toString()); + assertEquals(3, syncData.asList().size(), "The sync data is available"); + assertEquals("first.1", syncData.get(0).toString()); assertEquals("second.1", syncData.get(1).toString()); - assertEquals( "third.1",syncData.get(2).toString()); - assertEquals("No async data yet",0,asyncData.asList().size()); - assertEquals("The data counter has run and accessed the sync data","Data count: 3",countData.toString()); + assertEquals("third.1", syncData.get(2).toString()); + assertEquals(0, asyncData.asList().size(), "No async data yet"); + assertEquals("Data count: 3", countData.toString(), "The data counter has run and accessed the sync data"); // complete async data futureDataSource.incomingData.get(0).add(new StringData(request, "d1")); futureDataSource.incomingData.get(0).addLast(new StringData(request, "d2")); - assertEquals("New data is not visible because we haven't asked for it", 0, asyncData.asList().size()); + assertEquals(0, asyncData.asList().size(), "New data is not visible because we haven't asked for it"); asyncData.completeFuture().get(1000, TimeUnit.MILLISECONDS); - assertEquals("Now the data is available", 2, asyncData.asList().size()); - assertEquals("d1",asyncData.get(0).toString().toString()); + assertEquals(2, asyncData.asList().size(), "Now the data is available"); + assertEquals("d1", asyncData.get(0).toString().toString()); assertEquals("d2", asyncData.get(1).toString().toString()); } /** Register a chain which will be called when some async data is available */ @SuppressWarnings({"unchecked", "removal"}) @Test - public void testAsyncDataProcessing() throws InterruptedException, ExecutionException, TimeoutException { + void testAsyncDataProcessing() throws InterruptedException, ExecutionException, TimeoutException { // Set up - FutureDataSource futureDataSource=new FutureDataSource(); - Chain asyncChain=new Chain(new DataCounter()); - Chain chain=new Chain<>(new AsyncDataProcessingInitiator(asyncChain),futureDataSource); + FutureDataSource futureDataSource = new FutureDataSource(); + Chain asyncChain = new Chain(new DataCounter()); + Chain chain = new Chain<>(new AsyncDataProcessingInitiator(asyncChain), futureDataSource); // Execute - Request request=new Request(); - Response response=Execution.createRoot(chain,0,Execution.Environment.createEmpty()).process(request); + Request request = new Request(); + Response response = Execution.createRoot(chain, 0, Execution.Environment.createEmpty()).process(request); // Verify the result prior to completion of delayed data - assertEquals("No data yet",0,response.data().asList().size()); + assertEquals(0, response.data().asList().size(), "No data yet"); // complete async data futureDataSource.incomingData.get(0).add(new StringData(request, "d1")); - assertEquals("New data is not visible because it is not complete", 0, response.data().asList().size()); + assertEquals(0, response.data().asList().size(), "New data is not visible because it is not complete"); futureDataSource.incomingData.get(0).addLast(new StringData(request, "d2")); - assertEquals("Not visible because it has not been synced yet", 0, response.data().asList().size()); + assertEquals(0, response.data().asList().size(), "Not visible because it has not been synced yet"); response.data().completeFuture().get(1000, TimeUnit.MILLISECONDS); - assertEquals("Now the data as well as the count is available", 3, response.data().asList().size()); - assertEquals("d1",response.data().get(0).toString().toString()); - assertEquals("d2",response.data().get(1).toString().toString()); - assertEquals("Data count: 2",response.data().get(2).toString()); + assertEquals(3, response.data().asList().size(), "Now the data as well as the count is available"); + assertEquals("d1", response.data().get(0).toString().toString()); + assertEquals("d2", response.data().get(1).toString().toString()); + assertEquals("Data count: 2", response.data().get(2).toString()); } /** @@ -122,52 +122,51 @@ public class FutureDataTestCase { */ @SuppressWarnings({"unchecked"}) @Test - public void testAsyncDataProcessingOfFederatedResult() throws InterruptedException, ExecutionException, TimeoutException { + void testAsyncDataProcessingOfFederatedResult() throws InterruptedException, ExecutionException, TimeoutException { // Set up // Source 1 (async with completion chain) - FutureDataSource futureSource1=new FutureDataSource(); - Chain asyncChainSource1=new Chain(new DataCounter("source1")); - Chain chainSource1=new Chain<>(new AsyncDataProcessingInitiator(asyncChainSource1),futureSource1); + FutureDataSource futureSource1 = new FutureDataSource(); + Chain asyncChainSource1 = new Chain(new DataCounter("source1")); + Chain chainSource1 = new Chain<>(new AsyncDataProcessingInitiator(asyncChainSource1), futureSource1); // Source 2 (async source) - FutureDataSource futureSource2=new FutureDataSource(); - Chain chainSource2=new Chain(futureSource2); + FutureDataSource futureSource2 = new FutureDataSource(); + Chain chainSource2 = new Chain(futureSource2); // Source 3 (sync source) - Chain chainSource3=new Chain(new DataSource()); + Chain chainSource3 = new Chain(new DataSource()); // Main chain federating to the above - not waiting for source 1 and 2 but invoking asyncMain when both are complete - Chain asyncMain=new Chain(new DataCounter("main")); - Chain main=new Chain<>(new AsyncDataProcessingInitiator(asyncMain),new Federator(chainSource1,chainSource2,chainSource3)); + Chain asyncMain = new Chain(new DataCounter("main")); + Chain main = new Chain<>(new AsyncDataProcessingInitiator(asyncMain), new Federator(chainSource1, chainSource2, chainSource3)); // Execute - Request request=new Request(); - Response response=Execution.createRoot(main,0,Execution.Environment.createEmpty()).process(request); + Request request = new Request(); + Response response = Execution.createRoot(main, 0, Execution.Environment.createEmpty()).process(request); // Verify the result prior to completion of delayed data - assertEquals("We have the sync data plus placeholders for the async lists",3,response.data().asList().size()); - DataList source1Data=((DataList)response.data().get(0)); - DataList source2Data=((DataList)response.data().get(1)); - DataList source3Data=((DataList)response.data().get(2)); + assertEquals(3, response.data().asList().size(), "We have the sync data plus placeholders for the async lists"); + DataList source1Data = ((DataList) response.data().get(0)); + DataList source2Data = ((DataList) response.data().get(1)); + DataList source3Data = ((DataList) response.data().get(2)); - assertEquals("No data yet",0,source1Data.asList().size()); - assertEquals("No data yet",0,source2Data.asList().size()); - assertEquals(3,source3Data.asList().size()); + assertEquals(0, source1Data.asList().size(), "No data yet"); + assertEquals(0, source2Data.asList().size(), "No data yet"); + assertEquals(3, source3Data.asList().size()); // complete async data in source1 - futureSource1.incomingData.get(0).addLast(new StringData(request,"source1Data")); - assertEquals("Not visible yet", 0, source1Data.asList().size()); + futureSource1.incomingData.get(0).addLast(new StringData(request, "source1Data")); + assertEquals(0, source1Data.asList().size(), "Not visible yet"); source1Data.completeFuture().get(1000, TimeUnit.MILLISECONDS); assertEquals(2, source1Data.asList().size()); - assertEquals("source1Data",source1Data.get(0).toString()); - assertEquals("Completion listener chain on this has run", "[source1] Data count: 1", source1Data.get(1).toString()); + assertEquals("source1Data", source1Data.get(0).toString()); + assertEquals("[source1] Data count: 1", source1Data.get(1).toString(), "Completion listener chain on this has run"); // source2 & main completion - assertEquals("Main completion listener has not run", 3, response.data().asList().size()); + assertEquals(3, response.data().asList().size(), "Main completion listener has not run"); futureSource2.incomingData.get(0).addLast(new StringData(request, "source2Data")); - assertEquals("Main completion listener has not run", 3, response.data().asList().size()); + assertEquals(3, response.data().asList().size(), "Main completion listener has not run"); Response.recursiveFuture(response.data()).get(); - assertEquals("Main completion listener has run", 4, response.data().asList().size()); - assertEquals("The main data counter saw all sync data, but not source2 data as it executes after this", - "[main] Data count: " + (2 + 0 + 3), response.data().get(3).toString()); + assertEquals(4, response.data().asList().size(), "Main completion listener has run"); + assertEquals("[main] Data count: " + (2 + 0 + 3), response.data().get(3).toString(), "The main data counter saw all sync data, but not source2 data as it executes after this"); } } diff --git a/container-core/src/test/java/com/yahoo/processing/execution/test/StreamingTestCase.java b/container-core/src/test/java/com/yahoo/processing/execution/test/StreamingTestCase.java index d494e774f8e..557bef39276 100644 --- a/container-core/src/test/java/com/yahoo/processing/execution/test/StreamingTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/execution/test/StreamingTestCase.java @@ -10,13 +10,13 @@ import com.yahoo.processing.execution.Execution; import com.yahoo.processing.response.Data; import com.yahoo.processing.response.IncomingData; import com.yahoo.processing.test.ProcessorLibrary; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Tests listening on every available new piece of data in a response @@ -28,48 +28,48 @@ public class StreamingTestCase { /** Tests adding a chain which is called every time new data is added to a data list */ @SuppressWarnings({"unchecked"}) @Test - public void testStreamingData() throws InterruptedException, ExecutionException, TimeoutException { + void testStreamingData() throws InterruptedException, ExecutionException, TimeoutException { // Set up StreamProcessor streamProcessor = new StreamProcessor(); Chain streamProcessing = new Chain(streamProcessor); - ProcessorLibrary.FutureDataSource futureDataSource=new ProcessorLibrary.FutureDataSource(); - Chain main=new Chain<>(new ProcessorLibrary.DataCounter(), - new ProcessorLibrary.StreamProcessingInitiator(streamProcessing), - futureDataSource); + ProcessorLibrary.FutureDataSource futureDataSource = new ProcessorLibrary.FutureDataSource(); + Chain main = new Chain<>(new ProcessorLibrary.DataCounter(), + new ProcessorLibrary.StreamProcessingInitiator(streamProcessing), + futureDataSource); // Execute - Request request=new Request(); - Response response= Execution.createRoot(main, 0, Execution.Environment.createEmpty()).process(request); + Request request = new Request(); + Response response = Execution.createRoot(main, 0, Execution.Environment.createEmpty()).process(request); IncomingData incomingData = futureDataSource.incomingData.get(0); // State prior to receiving any additional data - assertEquals(1,response.data().asList().size()); - assertEquals("Data count: 0",response.data().get(0).toString()); - assertEquals("Add data listener invoked also for DataCounter", 1, streamProcessor.invocationCount); - assertEquals("Initial data count", 1, response.data().asList().size()); + assertEquals(1, response.data().asList().size()); + assertEquals("Data count: 0", response.data().get(0).toString()); + assertEquals(1, streamProcessor.invocationCount, "Add data listener invoked also for DataCounter"); + assertEquals(1, response.data().asList().size(), "Initial data count"); // add first data - we have no listener so the data is held in the incoming buffer incomingData.add(new ProcessorLibrary.StringData(request, "d1")); - assertEquals("Data add listener not invoked as we are not listening on new data yet",1, streamProcessor.invocationCount); - assertEquals("New data is not consumed", 1, response.data().asList().size()); + assertEquals(1, streamProcessor.invocationCount, "Data add listener not invoked as we are not listening on new data yet"); + assertEquals(1, response.data().asList().size(), "New data is not consumed"); // start listening on incoming data - this is what a renderer will do incomingData.addNewDataListener(new MockNewDataListener(incomingData), MoreExecutors.directExecutor()); - assertEquals("We got a data add event for the data which was already added", 2, streamProcessor.invocationCount); - assertEquals("New data is consumed", 2, response.data().asList().size()); + assertEquals(2, streamProcessor.invocationCount, "We got a data add event for the data which was already added"); + assertEquals(2, response.data().asList().size(), "New data is consumed"); incomingData.add(new ProcessorLibrary.StringData(request, "d2")); - assertEquals("We are now getting data add events each time", 3, streamProcessor.invocationCount); - assertEquals("New data is consumed", 3, response.data().asList().size()); + assertEquals(3, streamProcessor.invocationCount, "We are now getting data add events each time"); + assertEquals(3, response.data().asList().size(), "New data is consumed"); incomingData.addLast(new ProcessorLibrary.StringData(request, "d3")); - assertEquals("We are getting data add events also the last time", 4, streamProcessor.invocationCount); - assertEquals("New data is consumed", 4, response.data().asList().size()); + assertEquals(4, streamProcessor.invocationCount, "We are getting data add events also the last time"); + assertEquals(4, response.data().asList().size(), "New data is consumed"); response.data().completeFuture().get(1000, TimeUnit.MILLISECONDS); // no-op here - assertEquals("d1",response.data().get(1).toString().toString()); - assertEquals("d2",response.data().get(2).toString().toString()); - assertEquals("d3",response.data().get(3).toString().toString()); + assertEquals("d1", response.data().get(1).toString().toString()); + assertEquals("d2", response.data().get(2).toString().toString()); + assertEquals("d3", response.data().get(3).toString().toString()); } private static class MockNewDataListener implements Runnable { diff --git a/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java b/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java index baed2ccdcc8..70bae6c97b1 100644 --- a/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java @@ -21,9 +21,9 @@ import com.yahoo.processing.rendering.Renderer; import com.yahoo.processing.request.ErrorMessage; import com.yahoo.processing.response.Data; import com.yahoo.processing.test.ProcessorLibrary; -import org.junit.After; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.io.InputStream; @@ -39,12 +39,7 @@ import java.util.concurrent.ExecutionException; import static com.yahoo.jdisc.http.server.jetty.AccessLoggingRequestHandler.CONTEXT_KEY_ACCESS_LOG_ENTRY; import static com.yahoo.processing.test.ProcessorLibrary.MapData; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * Tests processing handler scenarios end to end. @@ -74,13 +69,13 @@ public class ProcessingHandlerTestCase { new Chain<>("log-value", new ProcessorLibrary.LogValueAdder(LOG_KEY, LOG_VALUE)); - @After + @AfterEach public void shutDown() { driver.close(); } @Test - public void processing_handler_stores_trace_log_values_in_the_access_log_entry() { + void processing_handler_stores_trace_log_values_in_the_access_log_entry() { driver = new ProcessingTestDriver(logValueChain); Request request = HttpRequest.newServerRequest(driver.jDiscDriver(), URI.create("http://localhost/?chain=log-value"), HttpRequest.Method.GET); AccessLogEntry entry = new AccessLogEntry(); @@ -95,7 +90,7 @@ public class ProcessingHandlerTestCase { } @Test - public void testProcessingHandlerResolvesChains() { + void testProcessingHandlerResolvesChains() { List> chains = new ArrayList<>(); chains.add(defaultChain); chains.add(simpleChain); @@ -106,16 +101,16 @@ public class ProcessingHandlerTestCase { } @Test - public void testProcessingHandlerPropagatesRequestParametersAndContext() { + void testProcessingHandlerPropagatesRequestParametersAndContext() { List> chains = new ArrayList<>(); chains.add(new Chain<>("default", new RequestPropertyTracer())); driver = new ProcessingTestDriver(chains); - assertTrue("JDisc request context is propagated to properties()", - driver.sendRequest("http://localhost/?chain=default&tracelevel=4").readAll().contains("context.contextVariable: '37'")); + assertTrue(driver.sendRequest("http://localhost/?chain=default&tracelevel=4").readAll().contains("context.contextVariable: '37'"), + "JDisc request context is propagated to properties()"); } @Test - public void testProcessingHandlerOutputsTrace() { + void testProcessingHandlerOutputsTrace() { List> chains = new ArrayList<>(); chains.add(defaultChain); driver = new ProcessingTestDriver(chains); @@ -128,28 +123,28 @@ public class ProcessingHandlerTestCase { } @Test - public void testProcessingHandlerTransfersErrorsToHttpStatusCodesNoData() { + void testProcessingHandlerTransfersErrorsToHttpStatusCodesNoData() { List> chains = new ArrayList<>(); chains.add(simpleChain); - chains.add(new Chain<>("moved_permanently", new ProcessorLibrary.ErrorAdder(new ErrorMessage(301,"Message")))); - chains.add(new Chain<>("unauthorized", new ProcessorLibrary.ErrorAdder(new ErrorMessage(401,"Message")))); - chains.add(new Chain<>("unauthorized_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.UNAUTHORIZED.code,"Message")))); - chains.add(new Chain<>("forbidden", new ProcessorLibrary.ErrorAdder(new ErrorMessage(403,"Message")))); - chains.add(new Chain<>("forbidden_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code,"Message")))); - chains.add(new Chain<>("not_found", new ProcessorLibrary.ErrorAdder(new ErrorMessage(404,"Message")))); - chains.add(new Chain<>("not_found_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NOT_FOUND.code,"Message")))); - chains.add(new Chain<>("too_many_requests", new ProcessorLibrary.ErrorAdder(new ErrorMessage(429,"Message")))); - chains.add(new Chain<>("bad_request", new ProcessorLibrary.ErrorAdder(new ErrorMessage(400,"Message")))); - chains.add(new Chain<>("bad_request_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BAD_REQUEST.code,"Message")))); - chains.add(new Chain<>("internal_server_error", new ProcessorLibrary.ErrorAdder(new ErrorMessage(500,"Message")))); - chains.add(new Chain<>("internal_server_error_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.INTERNAL_SERVER_ERROR.code,"Message")))); - chains.add(new Chain<>("service_unavailable", new ProcessorLibrary.ErrorAdder(new ErrorMessage(503,"Message")))); - chains.add(new Chain<>("service_unavailable_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NO_BACKENDS_IN_SERVICE.code,"Message")))); - chains.add(new Chain<>("gateway_timeout", new ProcessorLibrary.ErrorAdder(new ErrorMessage(504,"Message")))); - chains.add(new Chain<>("gateway_timeout_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.TIMEOUT.code,"Message")))); - chains.add(new Chain<>("bad_gateway", new ProcessorLibrary.ErrorAdder(new ErrorMessage(502,"Message")))); - chains.add(new Chain<>("bad_gateway_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BACKEND_COMMUNICATION_ERROR.code,"Message")))); - chains.add(new Chain<>("unknown_code", new ProcessorLibrary.ErrorAdder(new ErrorMessage(1234567,"Message")))); + chains.add(new Chain<>("moved_permanently", new ProcessorLibrary.ErrorAdder(new ErrorMessage(301, "Message")))); + chains.add(new Chain<>("unauthorized", new ProcessorLibrary.ErrorAdder(new ErrorMessage(401, "Message")))); + chains.add(new Chain<>("unauthorized_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.UNAUTHORIZED.code, "Message")))); + chains.add(new Chain<>("forbidden", new ProcessorLibrary.ErrorAdder(new ErrorMessage(403, "Message")))); + chains.add(new Chain<>("forbidden_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code, "Message")))); + chains.add(new Chain<>("not_found", new ProcessorLibrary.ErrorAdder(new ErrorMessage(404, "Message")))); + chains.add(new Chain<>("not_found_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NOT_FOUND.code, "Message")))); + chains.add(new Chain<>("too_many_requests", new ProcessorLibrary.ErrorAdder(new ErrorMessage(429, "Message")))); + chains.add(new Chain<>("bad_request", new ProcessorLibrary.ErrorAdder(new ErrorMessage(400, "Message")))); + chains.add(new Chain<>("bad_request_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BAD_REQUEST.code, "Message")))); + chains.add(new Chain<>("internal_server_error", new ProcessorLibrary.ErrorAdder(new ErrorMessage(500, "Message")))); + chains.add(new Chain<>("internal_server_error_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.INTERNAL_SERVER_ERROR.code, "Message")))); + chains.add(new Chain<>("service_unavailable", new ProcessorLibrary.ErrorAdder(new ErrorMessage(503, "Message")))); + chains.add(new Chain<>("service_unavailable_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NO_BACKENDS_IN_SERVICE.code, "Message")))); + chains.add(new Chain<>("gateway_timeout", new ProcessorLibrary.ErrorAdder(new ErrorMessage(504, "Message")))); + chains.add(new Chain<>("gateway_timeout_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.TIMEOUT.code, "Message")))); + chains.add(new Chain<>("bad_gateway", new ProcessorLibrary.ErrorAdder(new ErrorMessage(502, "Message")))); + chains.add(new Chain<>("bad_gateway_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BACKEND_COMMUNICATION_ERROR.code, "Message")))); + chains.add(new Chain<>("unknown_code", new ProcessorLibrary.ErrorAdder(new ErrorMessage(1234567, "Message")))); driver = new ProcessingTestDriver(chains); assertEqualStatus(200, "http://localhost/?chain=simple"); assertEqualStatus(301, "http://localhost/?chain=moved_permanently"); @@ -174,28 +169,28 @@ public class ProcessingHandlerTestCase { } @Test - public void testProcessingHandlerTransfersErrorsToHttpStatusCodesWithData() { + void testProcessingHandlerTransfersErrorsToHttpStatusCodesWithData() { List> chains = new ArrayList<>(); chains.add(simpleChain); - chains.add(new Chain<>("moved_permanently", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(301,"Message")))); - chains.add(new Chain<>("unauthorized", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(401,"Message")))); - chains.add(new Chain<>("unauthorized_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.UNAUTHORIZED.code,"Message")))); - chains.add(new Chain<>("forbidden", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(403,"Message")))); - chains.add(new Chain<>("forbidden_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code,"Message")))); - chains.add(new Chain<>("not_found", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(404,"Message")))); - chains.add(new Chain<>("not_found_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NOT_FOUND.code,"Message")))); - chains.add(new Chain<>("too_many_requests", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(429,"Message")))); - chains.add(new Chain<>("bad_request", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(400,"Message")))); - chains.add(new Chain<>("bad_request_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BAD_REQUEST.code,"Message")))); - chains.add(new Chain<>("internal_server_error", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(500,"Message")))); - chains.add(new Chain<>("internal_server_error_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.INTERNAL_SERVER_ERROR.code,"Message")))); - chains.add(new Chain<>("service_unavailable", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(503,"Message")))); - chains.add(new Chain<>("service_unavailable_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NO_BACKENDS_IN_SERVICE.code,"Message")))); - chains.add(new Chain<>("gateway_timeout", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(504,"Message")))); - chains.add(new Chain<>("gateway_timeout_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.TIMEOUT.code,"Message")))); - chains.add(new Chain<>("bad_gateway", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(502,"Message")))); - chains.add(new Chain<>("bad_gateway_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BACKEND_COMMUNICATION_ERROR.code,"Message")))); - chains.add(new Chain<>("unknown_code", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(1234567,"Message")))); + chains.add(new Chain<>("moved_permanently", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(301, "Message")))); + chains.add(new Chain<>("unauthorized", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(401, "Message")))); + chains.add(new Chain<>("unauthorized_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.UNAUTHORIZED.code, "Message")))); + chains.add(new Chain<>("forbidden", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(403, "Message")))); + chains.add(new Chain<>("forbidden_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code, "Message")))); + chains.add(new Chain<>("not_found", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(404, "Message")))); + chains.add(new Chain<>("not_found_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NOT_FOUND.code, "Message")))); + chains.add(new Chain<>("too_many_requests", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(429, "Message")))); + chains.add(new Chain<>("bad_request", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(400, "Message")))); + chains.add(new Chain<>("bad_request_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BAD_REQUEST.code, "Message")))); + chains.add(new Chain<>("internal_server_error", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(500, "Message")))); + chains.add(new Chain<>("internal_server_error_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.INTERNAL_SERVER_ERROR.code, "Message")))); + chains.add(new Chain<>("service_unavailable", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(503, "Message")))); + chains.add(new Chain<>("service_unavailable_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NO_BACKENDS_IN_SERVICE.code, "Message")))); + chains.add(new Chain<>("gateway_timeout", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(504, "Message")))); + chains.add(new Chain<>("gateway_timeout_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.TIMEOUT.code, "Message")))); + chains.add(new Chain<>("bad_gateway", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(502, "Message")))); + chains.add(new Chain<>("bad_gateway_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BACKEND_COMMUNICATION_ERROR.code, "Message")))); + chains.add(new Chain<>("unknown_code", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(1234567, "Message")))); driver = new ProcessingTestDriver(chains); assertEqualStatus(200, "http://localhost/?chain=simple"); assertEqualStatus(301, "http://localhost/?chain=moved_permanently"); @@ -220,27 +215,27 @@ public class ProcessingHandlerTestCase { } @Test - public void testProcessorSetsResponseHeaders() throws InterruptedException { + void testProcessorSetsResponseHeaders() throws InterruptedException { ProcessingTestDriver.MockResponseHandler responseHandler = null; try { - Map> responseHeaders = new HashMap<>(); + Map> responseHeaders = new HashMap<>(); responseHeaders.put("foo", List.of("fooValue")); responseHeaders.put("bar", List.of("barValue", "bazValue")); - Map> otherResponseHeaders = new HashMap<>(); + Map> otherResponseHeaders = new HashMap<>(); otherResponseHeaders.put("foo", List.of("fooValue2")); otherResponseHeaders.put("bax", List.of("baxValue")); List> chains = new ArrayList<>(); - chains.add(new Chain<>("default",new ResponseHeaderSetter(responseHeaders), - new ResponseHeaderSetter(otherResponseHeaders))); + chains.add(new Chain<>("default", new ResponseHeaderSetter(responseHeaders), + new ResponseHeaderSetter(otherResponseHeaders))); driver = new ProcessingTestDriver(chains); responseHandler = driver.sendRequest("http://localhost/?chain=default").awaitResponse(); Response response = responseHandler.getResponse(); - assertEquals("[fooValue2, fooValue]",response.headers().get("foo").toString()); + assertEquals("[fooValue2, fooValue]", response.headers().get("foo").toString()); assertEquals("[barValue, bazValue]", response.headers().get("bar").toString()); assertEquals("[baxValue]", response.headers().get("bax").toString()); - assertEquals("ResponseHeaders are not rendered", "{\"datalist\":[]}", responseHandler.read()); + assertEquals("{\"datalist\":[]}", responseHandler.read(), "ResponseHeaders are not rendered"); } finally { if (responseHandler != null) @@ -249,7 +244,7 @@ public class ProcessingHandlerTestCase { } @Test - public void testResponseDataStatus() throws InterruptedException { + void testResponseDataStatus() throws InterruptedException { ProcessingTestDriver.MockResponseHandler responseHandler = null; try { List> chains = new ArrayList<>(); @@ -258,7 +253,7 @@ public class ProcessingHandlerTestCase { responseHandler = driver.sendRequest("http://localhost/?chain=default").awaitResponse(); Response response = responseHandler.getResponse(); assertEquals(429, response.getStatus()); - assertEquals("ResponseHeaders are not rendered", "{\"datalist\":[]}", responseHandler.read()); + assertEquals("{\"datalist\":[]}", responseHandler.read(), "ResponseHeaders are not rendered"); } finally { if (responseHandler != null) @@ -268,13 +263,13 @@ public class ProcessingHandlerTestCase { /** Tests that the ResponseStatus takes precedence over errors */ @Test - public void testResponseDataStatusOverridesErrors() throws InterruptedException { + void testResponseDataStatusOverridesErrors() throws InterruptedException { ProcessingTestDriver.MockResponseHandler responseHandler = null; try { List> chains = new ArrayList<>(); chains.add(new Chain<>("default", new ResponseStatusSetter(200), - new ProcessorLibrary.StringDataAdder("Hello"), - new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code,"Message")))); + new ProcessorLibrary.StringDataAdder("Hello"), + new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code, "Message")))); driver = new ProcessingTestDriver(chains); responseHandler = driver.sendRequest("http://localhost/?chain=default").awaitResponse(); Response response = responseHandler.getResponse(); @@ -304,14 +299,14 @@ public class ProcessingHandlerTestCase { @SuppressWarnings("unchecked") @Test - public void testProcessingHandlerSupportsAsyncRendering() { + void testProcessingHandlerSupportsAsyncRendering() { // Set up ProcessorLibrary.FutureDataSource futureDataSource = new ProcessorLibrary.FutureDataSource(); Chain asyncCompletionChain = new Chain<>("asyncCompletion", new ProcessorLibrary.DataCounter("async")); Chain chain = new Chain<>("federation", new ProcessorLibrary.DataCounter("sync"), - new ProcessorLibrary.Federator(new Chain(new ProcessorLibrary.DataSource()), - new Chain<>(new ProcessorLibrary.AsyncDataProcessingInitiator(asyncCompletionChain),futureDataSource))); + new ProcessorLibrary.Federator(new Chain(new ProcessorLibrary.DataSource()), + new Chain<>(new ProcessorLibrary.AsyncDataProcessingInitiator(asyncCompletionChain), futureDataSource))); List> chains = new ArrayList<>(); chains.add(chain); driver = new ProcessingTestDriver(chains); @@ -320,46 +315,46 @@ public class ProcessingHandlerTestCase { String synchronousResponse = responseHandler.read(); assertEquals( "{\"datalist\":[" + - "{\"datalist\":[" + - "{\"data\":\"first.null\"}," + - "{\"data\":\"second.null\"}," + - "{\"data\":\"third.null\"}" + - "]}", + "{\"datalist\":[" + + "{\"data\":\"first.null\"}," + + "{\"data\":\"second.null\"}," + + "{\"data\":\"third.null\"}" + + "]}", synchronousResponse); - assertEquals("No more data is available at this point", 0, responseHandler.available()); + assertEquals(0, responseHandler.available(), "No more data is available at this point"); // Now, complete async data futureDataSource.incomingData.get(0).add(new ProcessorLibrary.StringData(null, "d1")); assertEquals( - "," + - "{\"datalist\":[" + - "{\"data\":\"d1\"}", - responseHandler.read()); + "," + + "{\"datalist\":[" + + "{\"data\":\"d1\"}", + responseHandler.read()); futureDataSource.incomingData.get(0).addLast(new ProcessorLibrary.StringData(null, "d2")); // ... which leads to the rest of the response becoming available assertEquals( - "," + - "{\"data\":\"d2\"}," + - "{\"data\":\"[async] Data count: 2\"}" + - "]}", + "," + + "{\"data\":\"d2\"}," + + "{\"data\":\"[async] Data count: 2\"}" + + "]}", responseHandler.read()); assertEquals(",{\"data\":\"[sync] Data count: 3\"}" + // Async items not counted as they arrive after chain completion - "]}", - responseHandler.read()); - assertNull("Transmission completed", responseHandler.read()); + "]}", + responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } @SuppressWarnings("unchecked") @Test - public void testProcessingHandlerSupportsAsyncUnorderedRendering() { + void testProcessingHandlerSupportsAsyncUnorderedRendering() { // Set up ProcessorLibrary.FutureDataSource futureDataSource1 = new ProcessorLibrary.FutureDataSource(); ProcessorLibrary.FutureDataSource futureDataSource2 = new ProcessorLibrary.FutureDataSource(); Chain chain = new Chain<>("federation", - new ProcessorLibrary.Federator(false,new Chain(futureDataSource1), - new Chain(futureDataSource2))); + new ProcessorLibrary.Federator(false, new Chain(futureDataSource1), + new Chain(futureDataSource2))); List> chains = new ArrayList<>(); chains.add(chain); driver = new ProcessingTestDriver(chains); @@ -368,69 +363,69 @@ public class ProcessingHandlerTestCase { assertEquals( "{\"datalist\":[", responseHandler.read()); - assertEquals("No more data is available at this point", 0, responseHandler.available()); + assertEquals(0, responseHandler.available(), "No more data is available at this point"); // Complete second async data first futureDataSource2.incomingData.get(0).addLast(new ProcessorLibrary.StringData(null, "d2")); assertEquals( - "{\"datalist\":[" + - "{\"data\":\"d2\"}"+ - "]}", - responseHandler.read()); + "{\"datalist\":[" + + "{\"data\":\"d2\"}" + + "]}", + responseHandler.read()); // Now complete first async data (which is therefore rendered last) futureDataSource1.incomingData.get(0).addLast(new ProcessorLibrary.StringData(null, "d1")); assertEquals( - "," + - "{\"datalist\":[" + - "{\"data\":\"d1\"}"+ - "]}", - responseHandler.read()); + "," + + "{\"datalist\":[" + + "{\"data\":\"d1\"}" + + "]}", + responseHandler.read()); assertEquals( - "]}", - responseHandler.read()); + "]}", + responseHandler.read()); - assertNull("Transmission completed", responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } @SuppressWarnings("unchecked") @Test - public void testAsyncOnlyRendering() throws Exception { + void testAsyncOnlyRendering() throws Exception { // Set up ProcessorLibrary.ListenableFutureDataSource futureDataSource = new ProcessorLibrary.ListenableFutureDataSource(); Chain chain = new Chain<>("main", List.of(futureDataSource)); driver = new ProcessingTestDriver(chain); ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main"); - assertEquals("No data is available at this point", 0, responseHandler.available()); + assertEquals(0, responseHandler.available(), "No data is available at this point"); futureDataSource.incomingData.get().add(new ProcessorLibrary.StringData(null, "d1")); assertEquals( - "{\"datalist\":[" + - "{\"data\":\"d1\"}", - responseHandler.read()); + "{\"datalist\":[" + + "{\"data\":\"d1\"}", + responseHandler.read()); futureDataSource.incomingData.get().addLast(new ProcessorLibrary.StringData(null, "d2")); assertEquals( "," + - "{\"data\":\"d2\"}" + - "]}", + "{\"data\":\"d2\"}" + + "]}", responseHandler.read()); assertEquals(200, responseHandler.getStatus()); - assertNull("Transmission completed", responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } @SuppressWarnings("unchecked") @Test - public void testAsyncRenderingWithClientClose() throws Exception { + void testAsyncRenderingWithClientClose() throws Exception { // Set up ProcessorLibrary.ListenableFutureDataSource futureDataSource = new ProcessorLibrary.ListenableFutureDataSource(); Chain chain = new Chain<>("main", List.of(futureDataSource)); driver = new ProcessingTestDriver(chain); ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main"); - assertEquals("No data is available at this point", 0, responseHandler.available()); + assertEquals(0, responseHandler.available(), "No data is available at this point"); futureDataSource.incomingData.get().add(new ProcessorLibrary.StringData(null, "d1")); assertEquals( @@ -443,24 +438,24 @@ public class ProcessingHandlerTestCase { assertNull(responseHandler.read()); assertEquals(200, responseHandler.getStatus()); - assertNull("Transmission completed", responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } @SuppressWarnings("unchecked") @Test - public void testAsyncOnlyRenderingWithAsyncPostData() throws Exception { + void testAsyncOnlyRenderingWithAsyncPostData() throws Exception { // Set up ProcessorLibrary.ListenableFutureDataSource futureDataSource = new ProcessorLibrary.ListenableFutureDataSource(); PostReader postReader = new PostReader(); Chain chain = new Chain<>("main", - new ProcessorLibrary.AsyncDataProcessingInitiator(new Chain<>(postReader)), - futureDataSource); + new ProcessorLibrary.AsyncDataProcessingInitiator(new Chain<>(postReader)), + futureDataSource); driver = new ProcessingTestDriver(chain); RequestHandlerTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main", HttpRequest.Method.POST, "Hello, world!"); - assertFalse("Post data is read later, on async completion", postReader.bodyDataFuture.isDone()); - assertEquals("No data is available at this point", 0, responseHandler.available()); + assertFalse(postReader.bodyDataFuture.isDone(), "Post data is read later, on async completion"); + assertEquals(0, responseHandler.available(), "No data is available at this point"); futureDataSource.incomingData.get().add(new ProcessorLibrary.StringData(null, "d1")); assertEquals( @@ -476,10 +471,10 @@ public class ProcessingHandlerTestCase { "]}", responseHandler.read() ); - assertEquals("Data is completed, so post data is read", "Hello, world!", postReader.bodyDataFuture.get().trim()); + assertEquals("Hello, world!", postReader.bodyDataFuture.get().trim(), "Data is completed, so post data is read"); assertEquals(200, responseHandler.getStatus()); - assertNull("Transmission completed", responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } private static class PostReader extends Processor { @@ -506,8 +501,8 @@ public class ProcessingHandlerTestCase { @SuppressWarnings("unchecked") @Test - public void testStatusAndHeadersCanBeSetAsynchronously() throws Exception { - Map> responseHeaders = new HashMap<>(); + void testStatusAndHeadersCanBeSetAsynchronously() throws Exception { + Map> responseHeaders = new HashMap<>(); responseHeaders.put("foo", List.of("fooValue")); responseHeaders.put("bar", List.of("barValue", "bazValue")); @@ -517,7 +512,7 @@ public class ProcessingHandlerTestCase { driver = new ProcessingTestDriver(chain); ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main"); - assertEquals("No data is available at this point", 0, responseHandler.available()); + assertEquals(0, responseHandler.available(), "No data is available at this point"); com.yahoo.processing.Request request = futureDataSource.incomingData.get().getOwner().request(); futureDataSource.incomingData.get().addLast(new ProcessorLibrary.StringData(request, "d1")); @@ -527,12 +522,12 @@ public class ProcessingHandlerTestCase { assertEquals(500, responseHandler.getStatus()); assertEquals("[fooValue]", responseHandler.getResponse().headers().get("foo").toString()); assertEquals("[barValue, bazValue]", responseHandler.getResponse().headers().get("bar").toString()); - assertNull("Transmission completed", responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } @SuppressWarnings("unchecked") @Test - public void testAsyncRenderingDoesNotHoldThreads() { + void testAsyncRenderingDoesNotHoldThreads() { // Set up ProcessorLibrary.FutureDataSource futureDataSource = new ProcessorLibrary.FutureDataSource(); // Add some sync data as well to cause rendering to start before async data is added. @@ -545,11 +540,11 @@ public class ProcessingHandlerTestCase { ProcessingTestDriver.MockResponseHandler[] responseHandler = new ProcessingTestDriver.MockResponseHandler[requestCount]; for (int i = 0; i < requestCount; i++) { responseHandler[i] = driver.sendRequest("http://localhost/?chain=main"); - assertEquals("Sync data is available", - "{\"datalist\":[{\"datalist\":[{\"data\":\"first.null\"},{\"data\":\"second.null\"},{\"data\":\"third.null\"}]}", - responseHandler[i].read()); + assertEquals("{\"datalist\":[{\"datalist\":[{\"data\":\"first.null\"},{\"data\":\"second.null\"},{\"data\":\"third.null\"}]}", + responseHandler[i].read(), + "Sync data is available"); } - assertEquals("All requests was processed", requestCount, futureDataSource.incomingData.size()); + assertEquals(requestCount, futureDataSource.incomingData.size(), "All requests was processed"); // Complete all for (int i = 0; i < requestCount; i++) { @@ -558,13 +553,13 @@ public class ProcessingHandlerTestCase { futureDataSource.incomingData.get(i).addLast(new ProcessorLibrary.StringData(null, "d2")); assertEquals(",{\"data\":\"d2\"}]}", responseHandler[i].read()); assertEquals("]}", responseHandler[i].read()); - assertNull("Transmission completed", responseHandler[i].read()); + assertNull(responseHandler[i].read(), "Transmission completed"); } } @SuppressWarnings("unchecked") @Test - public void testStreamedRendering() throws Exception { + void testStreamedRendering() throws Exception { // Set up Chain streamChain = new Chain<>(new StreamProcessor()); @@ -593,26 +588,27 @@ public class ProcessingHandlerTestCase { ",{\"data\":\"map data: {streamProcessed=true}\"}]}", responseHandler.read()); - assertNull("Transmission completed", responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } @Test - public void testEagerStreamedRenderingOnFreeze() { + void testEagerStreamedRenderingOnFreeze() { FreezingDataSource source = new FreezingDataSource(); Chain mainChain = new Chain<>("main", source); driver = new ProcessingTestDriver(mainChain); ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main"); - assertEquals("No data is available at this point", 0, responseHandler.available()); + assertEquals(0, responseHandler.available(), "No data is available at this point"); source.freeze.set(true); assertEquals("{\"datalist\":[{\"data\":\"d1\"}", responseHandler.read()); source.addLastData.set(true); // signal completion assertEquals(",{\"data\":\"d2\"}]}", responseHandler.read()); - assertNull("Transmission completed", responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } + // TODO @Test - @Ignore // TODO - public void testNestedEagerStreamedRenderingOnFreeze() { + @Disabled + void testNestedEagerStreamedRenderingOnFreeze() { try { FreezingDataSource source1 = new FreezingDataSource("s1"); FreezingDataSource source2 = new FreezingDataSource("s2"); @@ -625,16 +621,15 @@ public class ProcessingHandlerTestCase { new Chain(source3))); driver = new ProcessingTestDriver(mainChain); ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main"); - assertEquals("No data is available at this point", 0, responseHandler.available()); + assertEquals(0, responseHandler.available(), "No data is available at this point"); source1.freeze.set(true); - assertEquals("Received because the parent list and source1 list is frozen", - "{\"datalist\":[{\"datalist\":[{\"data\":\"s1d1\"}", responseHandler.read()); + assertEquals("{\"datalist\":[{\"datalist\":[{\"data\":\"s1d1\"}", responseHandler.read(), "Received because the parent list and source1 list is frozen"); source2.addLastData.set(true); // No effect as we are working on source1, which is not completed yet assertEquals("{\"datalist\":[{\"data\":\"s1d1\"}", responseHandler.read()); source1.addLastData.set(true); // Make source 1 and 2 available assertEquals(",{\"data\":\"d2\"}]}", responseHandler.read()); - assertNull("Transmission completed", responseHandler.read()); + assertNull(responseHandler.read(), "Transmission completed"); } catch (Throwable t) { t.printStackTrace(); @@ -642,14 +637,16 @@ public class ProcessingHandlerTestCase { } } - @Test(expected = IllegalArgumentException.class) - public void testRetrievingNonExistingRendererThrows() { - driver = new ProcessingTestDriver(List.of()); - driver.processingHandler().getRendererCopy(ComponentSpecification.fromString("non-existent")); + @Test + void testRetrievingNonExistingRendererThrows() { + assertThrows(IllegalArgumentException.class, () -> { + driver = new ProcessingTestDriver(List.of()); + driver.processingHandler().getRendererCopy(ComponentSpecification.fromString("non-existent")); + }); } @Test - public void testDefaultRendererIsAddedToRegistryWhenNoneIsGivenByUser() { + void testDefaultRendererIsAddedToRegistryWhenNoneIsGivenByUser() { String defaultId = AbstractProcessingHandler.DEFAULT_RENDERER_ID; driver = new ProcessingTestDriver(List.of()); @@ -659,7 +656,7 @@ public class ProcessingHandlerTestCase { } @Test - public void testUserSpecifiedDefaultRendererIsNotReplacedInRegistry() { + void testUserSpecifiedDefaultRendererIsNotReplacedInRegistry() { String defaultId = AbstractProcessingHandler.DEFAULT_RENDERER_ID; Renderer myDefaultRenderer = new ProcessingRenderer(); ComponentRegistry renderers = new ComponentRegistry<>(); diff --git a/container-core/src/test/java/com/yahoo/processing/processors/MockUserDatabaseClientTest.java b/container-core/src/test/java/com/yahoo/processing/processors/MockUserDatabaseClientTest.java index 8de08189f7a..58a490b8e80 100644 --- a/container-core/src/test/java/com/yahoo/processing/processors/MockUserDatabaseClientTest.java +++ b/container-core/src/test/java/com/yahoo/processing/processors/MockUserDatabaseClientTest.java @@ -11,30 +11,29 @@ import com.yahoo.processing.Request; import com.yahoo.processing.Response; import com.yahoo.processing.execution.Execution; import com.yahoo.processing.execution.chain.ChainRegistry; -import org.junit.After; -import org.junit.Test; -import static org.junit.Assert.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; import java.io.ByteArrayInputStream; import java.net.URI; import java.util.Collection; import java.util.Collections; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; public class MockUserDatabaseClientTest { private TestDriver driver; @Test - public void testClientExampleProcessor() { - Request request=null; + void testClientExampleProcessor() { + Request request = null; try { - Chain chain = new Chain<>("default",new MockUserDatabaseClient()); + Chain chain = new Chain<>("default", new MockUserDatabaseClient()); setupJDisc(Collections.singletonList(chain)); request = createRequest(); Response response = Execution.createRoot(chain, 0, Execution.Environment.createEmpty()).process(request); - MockUserDatabaseClient.User user = (MockUserDatabaseClient.User)response.data().request().properties().get("User"); + MockUserDatabaseClient.User user = (MockUserDatabaseClient.User) response.data().request().properties().get("User"); assertNotNull(user); assertEquals("foo", user.getId()); } @@ -71,7 +70,7 @@ public class MockUserDatabaseClientTest { driver.activateContainer(builder); } - @After + @AfterEach public void shutDownDisc() { assertTrue(driver.close()); } diff --git a/container-core/src/test/java/com/yahoo/processing/rendering/AsynchronousSectionedRendererTest.java b/container-core/src/test/java/com/yahoo/processing/rendering/AsynchronousSectionedRendererTest.java index 5dfe29dd4a1..fb8aca95d9a 100644 --- a/container-core/src/test/java/com/yahoo/processing/rendering/AsynchronousSectionedRendererTest.java +++ b/container-core/src/test/java/com/yahoo/processing/rendering/AsynchronousSectionedRendererTest.java @@ -13,7 +13,7 @@ import com.yahoo.processing.response.Data; import com.yahoo.processing.response.DataList; import com.yahoo.processing.response.IncomingData; import com.yahoo.text.Utf8; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.io.OutputStream; @@ -23,9 +23,7 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; +import static org.junit.jupiter.api.Assertions.*; /** * @author Einar M R Rosenvinge @@ -35,27 +33,27 @@ public class AsynchronousSectionedRendererTest { private static final Charset CHARSET = Utf8.getCharset(); @Test - public void testRenderersOfTheSamePrototypeUseTheSameExecutor() { + void testRenderersOfTheSamePrototypeUseTheSameExecutor() { TestRenderer rendererPrototype = new TestRenderer(); - TestRenderer rendererCopy1 = (TestRenderer)rendererPrototype.clone(); + TestRenderer rendererCopy1 = (TestRenderer) rendererPrototype.clone(); rendererCopy1.init(); assertSame(rendererPrototype.getRenderingExecutor(), rendererCopy1.getRenderingExecutor()); } @Test - public void testRenderersOfDifferentPrototypesUseDifferentExecutors() { + void testRenderersOfDifferentPrototypesUseDifferentExecutors() { TestRenderer rendererPrototype1 = new TestRenderer(); - TestRenderer rendererCopy1 = (TestRenderer)rendererPrototype1.clone(); + TestRenderer rendererCopy1 = (TestRenderer) rendererPrototype1.clone(); rendererCopy1.init(); TestRenderer rendererPrototype2 = new TestRenderer(); - TestRenderer rendererCopy2 = (TestRenderer)rendererPrototype2.clone(); + TestRenderer rendererCopy2 = (TestRenderer) rendererPrototype2.clone(); rendererCopy2.init(); assertNotSame(rendererPrototype1.getRenderingExecutor(), rendererCopy2.getRenderingExecutor()); } @Test - public void testAsyncSectionedRenderer() throws IOException, InterruptedException { + void testAsyncSectionedRenderer() throws IOException, InterruptedException { StringDataList dataList = createDataListWithStrangeStrings(); TestRenderer renderer = new TestRenderer(); @@ -69,7 +67,7 @@ public class AsynchronousSectionedRendererTest { } @Test - public void testEmptyProcessingRendering() throws IOException, InterruptedException { + void testEmptyProcessingRendering() throws IOException, InterruptedException { Request request = new Request(); DataList dataList = ArrayDataList.create(request); @@ -77,117 +75,117 @@ public class AsynchronousSectionedRendererTest { } @Test - public void testProcessingRendering() throws IOException, InterruptedException { + void testProcessingRendering() throws IOException, InterruptedException { StringDataList dataList = createDataListWithStrangeStrings(); assertEquals("{\"datalist\":[" + - "{\"data\":\"f\\\\o\\\"o\"}," + - "{\"datalist\":[" + - "{\"data\":\"b/a\\br\"}," + - "{\"data\":\"f\\f\\no\\ro\\tbar\\u0005\"}" + - "]}" + - "]}", + "{\"data\":\"f\\\\o\\\"o\"}," + + "{\"datalist\":[" + + "{\"data\":\"b/a\\br\"}," + + "{\"data\":\"f\\f\\no\\ro\\tbar\\u0005\"}" + + "]}" + + "]}", render(dataList)); } @Test - public void testProcessingRenderingWithErrors() throws IOException, InterruptedException { + void testProcessingRenderingWithErrors() throws IOException, InterruptedException { StringDataList dataList = createDataList(); // Add errors - dataList.request().errors().add(new ErrorMessage("m1","d1")); - dataList.request().errors().add(new ErrorMessage("m2","d2")); + dataList.request().errors().add(new ErrorMessage("m1", "d1")); + dataList.request().errors().add(new ErrorMessage("m2", "d2")); assertEquals("{\"errors\":[" + - "\"m1: d1\"," + - "\"m2: d2\"" + - "]," + - "\"datalist\":[" + - "{\"data\":\"l1\"}," + - "{\"datalist\":[" + - "{\"data\":\"l11\"}," + - "{\"data\":\"l12\"}" + - "]}" + - "]}", + "\"m1: d1\"," + + "\"m2: d2\"" + + "]," + + "\"datalist\":[" + + "{\"data\":\"l1\"}," + + "{\"datalist\":[" + + "{\"data\":\"l11\"}," + + "{\"data\":\"l12\"}" + + "]}" + + "]}", render(dataList)); } @Test - public void testProcessingRenderingWithStackTraces() throws IOException, InterruptedException { + void testProcessingRenderingWithStackTraces() throws IOException, InterruptedException { Exception exception; // Create thrown exception try { throw new RuntimeException("Thrown"); } catch (RuntimeException e) { - exception=e; + exception = e; } StringDataList dataList = createDataList(); // Add errors - dataList.request().errors().add(new ErrorMessage("m1","d1",exception)); - dataList.request().errors().add(new ErrorMessage("m2","d2")); + dataList.request().errors().add(new ErrorMessage("m1", "d1", exception)); + dataList.request().errors().add(new ErrorMessage("m2", "d2")); assertEquals( "{\"errors\":[" + - "{" + - "\"error\":\"m1: d1: Thrown\"," + - "\"stacktrace\":\"java.lang.RuntimeException: Thrown\\n\\tat com.yahoo.processing.rendering.AsynchronousSectionedRendererTest.", - render(dataList).substring(0,157)); + "{" + + "\"error\":\"m1: d1: Thrown\"," + + "\"stacktrace\":\"java.lang.RuntimeException: Thrown\\n\\tat com.yahoo.processing.rendering.AsynchronousSectionedRendererTest.", + render(dataList).substring(0, 157)); } @Test - public void testProcessingRenderingWithClonedErrorRequest() throws IOException, InterruptedException { + void testProcessingRenderingWithClonedErrorRequest() throws IOException, InterruptedException { StringDataList dataList = createDataList(); // Add errors - dataList.request().errors().add(new ErrorMessage("m1","d1")); - dataList.request().errors().add(new ErrorMessage("m2","d2")); + dataList.request().errors().add(new ErrorMessage("m1", "d1")); + dataList.request().errors().add(new ErrorMessage("m2", "d2")); dataList.add(new StringDataList(dataList.request().clone())); // Cloning a request which contains errors // ... should not cause repetition of those errors assertEquals("{\"errors\":[" + - "\"m1: d1\"," + - "\"m2: d2\"" + - "]," + - "\"datalist\":[" + - "{\"data\":\"l1\"}," + - "{\"datalist\":[" + - "{\"data\":\"l11\"}," + - "{\"data\":\"l12\"}" + - "]}," + - "{\"datalist\":[]}" + - "]}", + "\"m1: d1\"," + + "\"m2: d2\"" + + "]," + + "\"datalist\":[" + + "{\"data\":\"l1\"}," + + "{\"datalist\":[" + + "{\"data\":\"l11\"}," + + "{\"data\":\"l12\"}" + + "]}," + + "{\"datalist\":[]}" + + "]}", render(dataList)); } @Test - public void testProcessingRenderingWithClonedErrorRequestContainingNewErrors() throws IOException, InterruptedException { + void testProcessingRenderingWithClonedErrorRequestContainingNewErrors() throws IOException, InterruptedException { StringDataList dataList = createDataList(); // Add errors - dataList.request().errors().add(new ErrorMessage("m1","d1")); - dataList.request().errors().add(new ErrorMessage("m2","d2")); + dataList.request().errors().add(new ErrorMessage("m1", "d1")); + dataList.request().errors().add(new ErrorMessage("m2", "d2")); dataList.add(new StringDataList(dataList.request().clone())); // Cloning a request containing errors // and adding new errors to it - dataList.asList().get(2).request().errors().add(new ErrorMessage("m3","d3")); + dataList.asList().get(2).request().errors().add(new ErrorMessage("m3", "d3")); assertEquals("{\"errors\":[" + - "\"m1: d1\"," + - "\"m2: d2\"" + - "]," + - "\"datalist\":[" + - "{\"data\":\"l1\"}," + - "{\"datalist\":[" + - "{\"data\":\"l11\"}," + - "{\"data\":\"l12\"}" + - "]}," + - "{\"errors\":[" + - "\"m3: d3\"" + - "]," + - "\"datalist\":[]}" + - "]}", + "\"m1: d1\"," + + "\"m2: d2\"" + + "]," + + "\"datalist\":[" + + "{\"data\":\"l1\"}," + + "{\"datalist\":[" + + "{\"data\":\"l11\"}," + + "{\"data\":\"l12\"}" + + "]}," + + "{\"errors\":[" + + "\"m3: d3\"" + + "]," + + "\"datalist\":[]}" + + "]}", render(dataList)); } diff --git a/container-core/src/test/java/com/yahoo/processing/request/CompoundNameTestCase.java b/container-core/src/test/java/com/yahoo/processing/request/CompoundNameTestCase.java index a8a2c76a609..055dbf77371 100644 --- a/container-core/src/test/java/com/yahoo/processing/request/CompoundNameTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/request/CompoundNameTestCase.java @@ -6,12 +6,9 @@ import com.yahoo.text.Lowercase; import java.util.Iterator; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * Module local test of the basic property name building block. @@ -30,23 +27,24 @@ public class CompoundNameTestCase { void verifyStrict(String expected, CompoundName actual) { verifyStrict(new CompoundName(expected), actual); } + @Test - public final void testLast() { + final void testLast() { assertEquals(NAME.substring(NAME.lastIndexOf('.') + 1), cn.last()); } @Test - public final void testFirst() { + final void testFirst() { assertEquals(NAME.substring(0, NAME.indexOf('.')), cn.first()); } @Test - public final void testRest() { + final void testRest() { verifyStrict(NAME.substring(NAME.indexOf('.') + 1), cn.rest()); } @Test - public final void testRestN() { + final void testRestN() { verifyStrict("a.b.c.d.e", new CompoundName("a.b.c.d.e").rest(0)); verifyStrict("b.c.d.e", new CompoundName("a.b.c.d.e").rest(1)); verifyStrict("c.d.e", new CompoundName("a.b.c.d.e").rest(2)); @@ -56,7 +54,7 @@ public class CompoundNameTestCase { } @Test - public final void testPrefix() { + final void testPrefix() { assertTrue(new CompoundName("a.b.c").hasPrefix(new CompoundName(""))); assertTrue(new CompoundName("a.b.c").hasPrefix(new CompoundName("a"))); assertTrue(new CompoundName("a.b.c").hasPrefix(new CompoundName("a.b"))); @@ -67,13 +65,13 @@ public class CompoundNameTestCase { } @Test - public void testFromComponents() { + void testFromComponents() { verifyStrict("a", CompoundName.fromComponents("a")); verifyStrict("a.b", CompoundName.fromComponents("a", "b")); } @Test - public final void testSize() { + final void testSize() { Splitter s = Splitter.on('.'); Iterable i = s.split(NAME); int n = 0; @@ -84,23 +82,23 @@ public class CompoundNameTestCase { } @Test - public final void testGet() { + final void testGet() { String s = cn.get(0); assertEquals(NAME.substring(0, NAME.indexOf('.')), s); } @Test - public final void testIsCompound() { + final void testIsCompound() { assertTrue(cn.isCompound()); } @Test - public final void testIsEmpty() { + final void testIsEmpty() { assertFalse(cn.isEmpty()); } @Test - public final void testAsList() { + final void testAsList() { List l = cn.asList(); Splitter peoplesFront = Splitter.on('.'); Iterable answer = peoplesFront.split(NAME); @@ -112,15 +110,15 @@ public class CompoundNameTestCase { } @Test - public final void testEqualsObject() { - assertFalse(cn.equals(NAME)); - assertFalse(cn.equals(null)); + final void testEqualsObject() { + assertNotEquals(cn, NAME); + assertNotEquals(cn, null); verifyStrict(cn, cn); verifyStrict(cn, new CompoundName(NAME)); } @Test - public final void testEmptyNonEmpty() { + final void testEmptyNonEmpty() { assertTrue(new CompoundName("").isEmpty()); assertEquals(0, new CompoundName("").size()); assertFalse(new CompoundName("a").isEmpty()); @@ -131,12 +129,12 @@ public class CompoundNameTestCase { } @Test - public final void testGetLowerCasedName() { + final void testGetLowerCasedName() { assertEquals(Lowercase.toLowerCase(NAME), cn.getLowerCasedName()); } @Test - public void testAppendCompound() { + void testAppendCompound() { verifyStrict("a.b.c.d", new CompoundName("").append(new CompoundName("a.b.c.d"))); verifyStrict("a.b.c.d", new CompoundName("a").append(new CompoundName("b.c.d"))); verifyStrict("a.b.c.d", new CompoundName("a.b").append(new CompoundName("c.d"))); @@ -145,7 +143,7 @@ public class CompoundNameTestCase { } @Test - public void empty_CompoundName_is_prefix_of_any_CompoundName() { + void empty_CompoundName_is_prefix_of_any_CompoundName() { CompoundName empty = new CompoundName(""); assertTrue(empty.hasPrefix(empty)); @@ -153,7 +151,7 @@ public class CompoundNameTestCase { } @Test - public void whole_components_must_match_to_be_prefix() { + void whole_components_must_match_to_be_prefix() { CompoundName stringPrefix = new CompoundName("a"); CompoundName name = new CompoundName("aa"); @@ -161,28 +159,28 @@ public class CompoundNameTestCase { } @Test - public void testFirstRest() { + void testFirstRest() { verifyStrict(CompoundName.empty, CompoundName.empty.rest()); - CompoundName n=new CompoundName("on.two.three"); + CompoundName n = new CompoundName("on.two.three"); assertEquals("on", n.first()); verifyStrict("two.three", n.rest()); - n=n.rest(); + n = n.rest(); assertEquals("two", n.first()); verifyStrict("three", n.rest()); - n=n.rest(); + n = n.rest(); assertEquals("three", n.first()); verifyStrict("", n.rest()); - n=n.rest(); + n = n.rest(); assertEquals("", n.first()); verifyStrict("", n.rest()); - n=n.rest(); + n = n.rest(); assertEquals("", n.first()); verifyStrict("", n.rest()); } @Test - public void testHashCodeAndEquals() { + void testHashCodeAndEquals() { CompoundName n1 = new CompoundName("venn.d.a"); CompoundName n2 = new CompoundName(n1.asList()); assertEquals(n1.hashCode(), n2.hashCode()); @@ -190,7 +188,7 @@ public class CompoundNameTestCase { } @Test - public void testAppendString() { + void testAppendString() { verifyStrict("a", new CompoundName("a").append("")); verifyStrict("a", new CompoundName("").append("a")); verifyStrict("a.b", new CompoundName("a").append("b")); @@ -203,14 +201,14 @@ public class CompoundNameTestCase { } @Test - public void testEmpty() { - CompoundName empty=new CompoundName(""); + void testEmpty() { + CompoundName empty = new CompoundName(""); assertEquals("", empty.toString()); assertEquals(0, empty.asList().size()); } @Test - public void testAsList2() { + void testAsList2() { assertEquals("[one]", new CompoundName("one").asList().toString()); assertEquals("[one, two, three]", new CompoundName("one.two.three").asList().toString()); } diff --git a/container-core/src/test/java/com/yahoo/processing/request/test/ErrorMessageTestCase.java b/container-core/src/test/java/com/yahoo/processing/request/test/ErrorMessageTestCase.java index fd152dccb96..1d4208fd356 100644 --- a/container-core/src/test/java/com/yahoo/processing/request/test/ErrorMessageTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/request/test/ErrorMessageTestCase.java @@ -2,10 +2,10 @@ package com.yahoo.processing.request.test; import com.yahoo.processing.request.ErrorMessage; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; /** * @author bratseth @@ -13,49 +13,49 @@ import static org.junit.Assert.assertNotEquals; public class ErrorMessageTestCase { @Test - public void testToString() { - assertEquals("message",new ErrorMessage("message").toString()); - assertEquals("message: hello",new ErrorMessage("message",new Exception("hello")).toString()); - assertEquals("message: detail",new ErrorMessage("message","detail").toString()); - assertEquals("37: message: detail",new ErrorMessage(37,"message","detail").toString()); - assertEquals("message: detail: hello",new ErrorMessage("message","detail",new Exception("hello")).toString()); - assertEquals("message: detail: hello: world",new ErrorMessage("message","detail",new Exception("hello",new Exception("world"))).toString()); - assertEquals("message: detail: hello: Exception",new ErrorMessage("message","detail",new Exception("hello",new Exception())).toString()); - assertEquals("message: detail: hello",new ErrorMessage("message","detail",new Exception(new Exception("hello"))).toString()); - assertEquals("message: detail: java.lang.Exception: Exception",new ErrorMessage("message","detail",new Exception(new Exception())).toString()); + void testToString() { + assertEquals("message", new ErrorMessage("message").toString()); + assertEquals("message: hello", new ErrorMessage("message", new Exception("hello")).toString()); + assertEquals("message: detail", new ErrorMessage("message", "detail").toString()); + assertEquals("37: message: detail", new ErrorMessage(37, "message", "detail").toString()); + assertEquals("message: detail: hello", new ErrorMessage("message", "detail", new Exception("hello")).toString()); + assertEquals("message: detail: hello: world", new ErrorMessage("message", "detail", new Exception("hello", new Exception("world"))).toString()); + assertEquals("message: detail: hello: Exception", new ErrorMessage("message", "detail", new Exception("hello", new Exception())).toString()); + assertEquals("message: detail: hello", new ErrorMessage("message", "detail", new Exception(new Exception("hello"))).toString()); + assertEquals("message: detail: java.lang.Exception: Exception", new ErrorMessage("message", "detail", new Exception(new Exception())).toString()); } @Test - public void testAccessors() { - ErrorMessage m = new ErrorMessage(37,"message","detail",new Exception("hello")); - assertEquals(37,m.getCode()); - assertEquals("message",m.getMessage()); - assertEquals("detail",m.getDetailedMessage()); - assertEquals("hello",m.getCause().getMessage()); + void testAccessors() { + ErrorMessage m = new ErrorMessage(37, "message", "detail", new Exception("hello")); + assertEquals(37, m.getCode()); + assertEquals("message", m.getMessage()); + assertEquals("detail", m.getDetailedMessage()); + assertEquals("hello", m.getCause().getMessage()); } @Test - public void testEquality() { - assertEquals(new ErrorMessage(37,"message","detail",new Exception("hello")), - new ErrorMessage(37,"message","detail",new Exception("hello"))); - assertEquals(new ErrorMessage("message","detail",new Exception("hello")), - new ErrorMessage("message","detail",new Exception("hello"))); - assertEquals(new ErrorMessage("message",new Exception("hello")), - new ErrorMessage("message",new Exception("hello"))); + void testEquality() { + assertEquals(new ErrorMessage(37, "message", "detail", new Exception("hello")), + new ErrorMessage(37, "message", "detail", new Exception("hello"))); + assertEquals(new ErrorMessage("message", "detail", new Exception("hello")), + new ErrorMessage("message", "detail", new Exception("hello"))); + assertEquals(new ErrorMessage("message", new Exception("hello")), + new ErrorMessage("message", new Exception("hello"))); assertEquals(new ErrorMessage("message"), - new ErrorMessage("message")); - assertEquals(new ErrorMessage("message",new Exception()), - new ErrorMessage("message")); + new ErrorMessage("message")); + assertEquals(new ErrorMessage("message", new Exception()), + new ErrorMessage("message")); assertNotEquals(new ErrorMessage("message"), - new ErrorMessage("message","detail")); - assertNotEquals(new ErrorMessage(37,"message"), - new ErrorMessage("message")); - assertNotEquals(new ErrorMessage(37,"message"), - new ErrorMessage(38,"message")); - assertNotEquals(new ErrorMessage("message","detail1"), - new ErrorMessage("message","detail2")); + new ErrorMessage("message", "detail")); + assertNotEquals(new ErrorMessage(37, "message"), + new ErrorMessage("message")); + assertNotEquals(new ErrorMessage(37, "message"), + new ErrorMessage(38, "message")); + assertNotEquals(new ErrorMessage("message", "detail1"), + new ErrorMessage("message", "detail2")); assertNotEquals(new ErrorMessage("message1"), - new ErrorMessage("message2")); + new ErrorMessage("message2")); } } diff --git a/container-core/src/test/java/com/yahoo/processing/request/test/PropertyMapTestCase.java b/container-core/src/test/java/com/yahoo/processing/request/test/PropertyMapTestCase.java index 5d7d1e63b21..de5437ab658 100644 --- a/container-core/src/test/java/com/yahoo/processing/request/test/PropertyMapTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/request/test/PropertyMapTestCase.java @@ -3,15 +3,13 @@ package com.yahoo.processing.request.test; import com.yahoo.processing.request.properties.PropertyMap; import com.yahoo.processing.request.properties.PublicCloneable; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.Collections; import java.util.List; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @author bratseth @@ -19,40 +17,40 @@ import static org.junit.Assert.assertTrue; public class PropertyMapTestCase { @Test - public void testObjectCloning() { + void testObjectCloning() { PropertyMap map = new PropertyMap(); map.set("clonable", new ClonableObject()); map.set("publicClonable", new PublicClonableObject()); map.set("nonclonable", new NonClonableObject()); - map.set("clonableArray", new ClonableObject[] {new ClonableObject()}); - map.set("publicClonableArray", new ClonableObject[] {new ClonableObject()}); - map.set("nonclonableArray", new NonClonableObject[] {new NonClonableObject()}); + map.set("clonableArray", new ClonableObject[]{new ClonableObject()}); + map.set("publicClonableArray", new ClonableObject[]{new ClonableObject()}); + map.set("nonclonableArray", new NonClonableObject[]{new NonClonableObject()}); map.set("clonableList", Collections.singletonList(new ClonableObject())); map.set("nonclonableList", Collections.singletonList(new NonClonableObject())); assertNotNull(map.get("clonable")); assertNotNull(map.get("nonclonable")); - PropertyMap mapClone=map.clone(); + PropertyMap mapClone = map.clone(); assertTrue(map.get("clonable") != mapClone.get("clonable")); - assertTrue(map.get("publicClonable")!= mapClone.get("publicClonable")); - assertTrue(map.get("nonclonable") == mapClone.get("nonclonable")); + assertTrue(map.get("publicClonable") != mapClone.get("publicClonable")); + assertEquals(map.get("nonclonable"), mapClone.get("nonclonable")); assertTrue(map.get("clonableArray") != mapClone.get("clonableArray")); assertTrue(first(map.get("clonableArray")) != first(mapClone.get("clonableArray"))); assertTrue(map.get("publicClonableArray") != mapClone.get("publicClonableArray")); assertTrue(first(map.get("publicClonableArray")) != first(mapClone.get("publicClonableArray"))); - assertTrue(first(map.get("nonclonableArray")) == first(mapClone.get("nonclonableArray"))); + assertEquals(first(map.get("nonclonableArray")), first(mapClone.get("nonclonableArray"))); } - + @Test - public void testArrayCloning() { + void testArrayCloning() { PropertyMap map = new PropertyMap(); - byte[] byteArray = new byte[] {2, 4, 7}; + byte[] byteArray = new byte[]{2, 4, 7}; map.set("byteArray", byteArray); PropertyMap mapClone = map.clone(); - assertArrayEquals(byteArray, (byte[])mapClone.get("byteArray")); - assertTrue("Array was cloned", mapClone.get("byteArray") != byteArray); + assertArrayEquals(byteArray, (byte[]) mapClone.get("byteArray")); + assertTrue(mapClone.get("byteArray") != byteArray, "Array was cloned"); } private Object first(Object object) { diff --git a/container-core/src/test/java/com/yahoo/processing/request/test/RequestTestCase.java b/container-core/src/test/java/com/yahoo/processing/request/test/RequestTestCase.java index a791c535b5d..c82b85d84d9 100644 --- a/container-core/src/test/java/com/yahoo/processing/request/test/RequestTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/request/test/RequestTestCase.java @@ -6,10 +6,10 @@ import com.yahoo.processing.request.CompoundName; import com.yahoo.processing.request.ErrorMessage; import com.yahoo.processing.request.Properties; import com.yahoo.processing.request.properties.PropertyMap; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; /** * Tests using requests @@ -21,7 +21,7 @@ public class RequestTestCase { private static final double delta = 0.0000000001; @Test - public void testProperties() { + void testProperties() { Properties p = new PropertyMap(); p.set("a", "a1"); Request r = new Request(p); @@ -39,52 +39,52 @@ public class RequestTestCase { assertNull(r.properties().get(new CompoundName("c"))); assertEquals("b1", r.properties().getString("b")); - assertEquals("b1", r.properties().getString("b","default")); - assertEquals("default", r.properties().getString("c","default")); - assertEquals(null, r.properties().getString("c")); + assertEquals("b1", r.properties().getString("b", "default")); + assertEquals("default", r.properties().getString("c", "default")); + assertNull(r.properties().getString("c")); assertEquals("b1", r.properties().getString(new CompoundName("b"))); - assertEquals("b1", r.properties().getString(new CompoundName("b"),"default")); - assertEquals("default", r.properties().getString(new CompoundName("c"),"default")); - assertEquals(null, r.properties().getString(new CompoundName("c"))); - - r.properties().set("i",7); - assertEquals(7, (int)r.properties().getInteger("i")); - assertEquals(7, (int)r.properties().getInteger("i",3)); - assertEquals(3, (int)r.properties().getInteger("n",3)); + assertEquals("b1", r.properties().getString(new CompoundName("b"), "default")); + assertEquals("default", r.properties().getString(new CompoundName("c"), "default")); + assertNull(r.properties().getString(new CompoundName("c"))); + + r.properties().set("i", 7); + assertEquals(7, (int) r.properties().getInteger("i")); + assertEquals(7, (int) r.properties().getInteger("i", 3)); + assertEquals(3, (int) r.properties().getInteger("n", 3)); assertNull(r.properties().getInteger("n")); - assertEquals(7, (int)r.properties().getInteger(new CompoundName("i"))); - assertEquals(7, (int)r.properties().getInteger(new CompoundName("i"),3)); - assertEquals(3, (int)r.properties().getInteger(new CompoundName("n"),3)); + assertEquals(7, (int) r.properties().getInteger(new CompoundName("i"))); + assertEquals(7, (int) r.properties().getInteger(new CompoundName("i"), 3)); + assertEquals(3, (int) r.properties().getInteger(new CompoundName("n"), 3)); assertNull(r.properties().getInteger("n")); r.properties().set(new CompoundName("l"), 7); assertEquals(7, (long) r.properties().getLong("l")); - assertEquals(7, (long)r.properties().getLong("l",3l)); - assertEquals(3, (long)r.properties().getLong("m",3l)); + assertEquals(7, (long) r.properties().getLong("l", 3l)); + assertEquals(3, (long) r.properties().getLong("m", 3l)); assertNull(r.properties().getInteger("m")); - assertEquals(7, (long)r.properties().getLong(new CompoundName("l"))); - assertEquals(7, (long)r.properties().getLong(new CompoundName("l"),3l)); - assertEquals(3, (long)r.properties().getLong(new CompoundName("m"),3l)); + assertEquals(7, (long) r.properties().getLong(new CompoundName("l"))); + assertEquals(7, (long) r.properties().getLong(new CompoundName("l"), 3l)); + assertEquals(3, (long) r.properties().getLong(new CompoundName("m"), 3l)); assertNull(r.properties().getInteger("m")); r.properties().set("d", 7.3); assertEquals(7.3, r.properties().getDouble("d"), delta); - assertEquals(7.3, r.properties().getDouble("d",3.4d), delta); - assertEquals(3.4, r.properties().getDouble("f",3.4d), delta); + assertEquals(7.3, r.properties().getDouble("d", 3.4d), delta); + assertEquals(3.4, r.properties().getDouble("f", 3.4d), delta); assertNull(r.properties().getDouble("f")); assertEquals(7.3, r.properties().getDouble(new CompoundName("d")), delta); - assertEquals(7.3, r.properties().getDouble(new CompoundName("d"),3.4d), delta); - assertEquals(3.4, r.properties().getDouble(new CompoundName("f"),3.4d), delta); + assertEquals(7.3, r.properties().getDouble(new CompoundName("d"), 3.4d), delta); + assertEquals(3.4, r.properties().getDouble(new CompoundName("f"), 3.4d), delta); assertNull(r.properties().getDouble("f")); - r.properties().set("o",true); + r.properties().set("o", true); assertEquals(true, r.properties().getBoolean("o")); - assertEquals(true, r.properties().getBoolean("o",true)); - assertEquals(true, r.properties().getBoolean("g",true)); + assertEquals(true, r.properties().getBoolean("o", true)); + assertEquals(true, r.properties().getBoolean("g", true)); assertEquals(false, r.properties().getBoolean("g")); assertEquals(true, r.properties().getBoolean(new CompoundName("o"))); - assertEquals(true, r.properties().getBoolean(new CompoundName("o"),true)); - assertEquals(true, r.properties().getBoolean(new CompoundName("g"),true)); + assertEquals(true, r.properties().getBoolean(new CompoundName("o"), true)); + assertEquals(true, r.properties().getBoolean(new CompoundName("g"), true)); assertEquals(false, r.properties().getBoolean("g")); r.properties().set(new CompoundName("x.y"), "x1.y1"); @@ -99,20 +99,20 @@ public class RequestTestCase { } @Test - public void testErrorMessages() { + void testErrorMessages() { Request r = new Request(); r.errors().add(new ErrorMessage("foo")); r.errors().add(new ErrorMessage("bar")); - assertEquals(2,r.errors().size()); + assertEquals(2, r.errors().size()); assertEquals("foo", r.errors().get(0).getMessage()); assertEquals("bar", r.errors().get(1).getMessage()); } @Test - public void testCloning() { + void testCloning() { Request request = new Request(); - request.properties().set("a","a1"); - request.properties().set("b","b1"); + request.properties().set("a", "a1"); + request.properties().set("b", "b1"); request.errors().add(new ErrorMessage("foo")); request.errors().add(new ErrorMessage("bar")); Request rcloned = request.clone(); @@ -125,17 +125,17 @@ public class RequestTestCase { assertEquals("a1", rcloned.properties().get("a")); assertEquals("b1", request.properties().get("b")); assertEquals("b1", rcloned.properties().get("b")); - assertEquals(null, request.properties().get("c")); + assertNull(request.properties().get("c")); assertEquals("c1", rcloned.properties().get("c")); assertEquals("d1", request.properties().get("d")); - assertEquals(null, rcloned.properties().get("d")); + assertNull(rcloned.properties().get("d")); assertEquals(3, request.errors().size()); assertEquals(1, rcloned.errors().size()); - assertEquals("foo",request.errors().get(0).getMessage()); - assertEquals("bar",request.errors().get(1).getMessage()); - assertEquals("boz",request.errors().get(2).getMessage()); - assertEquals("baz",rcloned.errors().get(0).getMessage()); + assertEquals("foo", request.errors().get(0).getMessage()); + assertEquals("bar", request.errors().get(1).getMessage()); + assertEquals("boz", request.errors().get(2).getMessage()); + assertEquals("baz", rcloned.errors().get(0).getMessage()); } } diff --git a/container-core/src/test/java/com/yahoo/processing/test/DocumentationTestCase.java b/container-core/src/test/java/com/yahoo/processing/test/DocumentationTestCase.java index 2028d39f973..8716b858696 100644 --- a/container-core/src/test/java/com/yahoo/processing/test/DocumentationTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/test/DocumentationTestCase.java @@ -1,11 +1,10 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.processing.test; -import static org.junit.Assert.*; - -import org.junit.Test; - +import org.junit.jupiter.api.Test; import com.yahoo.component.chain.Chain; + +import static org.junit.jupiter.api.Assertions.assertEquals; import com.yahoo.processing.Processor; import com.yahoo.processing.Request; import com.yahoo.processing.Response; @@ -24,7 +23,7 @@ public class DocumentationTestCase { @SuppressWarnings("unchecked") @Test - public final void test() { + final void test() { Processor p = new ExampleProcessor(); Chain basic = new Chain<>(p); Processor initiator = new AsyncDataProcessingInitiator(basic); diff --git a/container-core/src/test/java/com/yahoo/processing/test/ProcessingTestCase.java b/container-core/src/test/java/com/yahoo/processing/test/ProcessingTestCase.java index 3f11663a1d7..da1b406927f 100644 --- a/container-core/src/test/java/com/yahoo/processing/test/ProcessingTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/test/ProcessingTestCase.java @@ -6,10 +6,10 @@ import com.yahoo.processing.Processor; import com.yahoo.processing.Request; import com.yahoo.processing.Response; import com.yahoo.processing.execution.Execution; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static com.yahoo.processing.test.ProcessorLibrary.*; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Tests the basic of the processing framework @@ -18,43 +18,43 @@ public class ProcessingTestCase { /** Execute three simple processors doing some phony processing */ @Test - public void testChainedProcessing1() { + void testChainedProcessing1() { // Create a chain - Chain chain=new Chain<>(new CombineData(),new Get6DataItems(), new DataSource()); + Chain chain = new Chain<>(new CombineData(), new Get6DataItems(), new DataSource()); // Execute it - Request request=new Request(); - request.properties().set("appendage",1); - Response response=Execution.createRoot(chain,0,Execution.Environment.createEmpty()).process(request); + Request request = new Request(); + request.properties().set("appendage", 1); + Response response = Execution.createRoot(chain, 0, Execution.Environment.createEmpty()).process(request); // Verify the result - assertEquals(6-1,response.data().asList().size()); - assertEquals("first.2, third.2",response.data().get(0).toString()); - assertEquals("second.2",response.data().get(1).toString()); - assertEquals("first.3",response.data().get(2).toString()); - assertEquals("second.3",response.data().get(3).toString()); - assertEquals("third.3",response.data().get(4).toString()); + assertEquals(6 - 1, response.data().asList().size()); + assertEquals("first.2, third.2", response.data().get(0).toString()); + assertEquals("second.2", response.data().get(1).toString()); + assertEquals("first.3", response.data().get(2).toString()); + assertEquals("second.3", response.data().get(3).toString()); + assertEquals("third.3", response.data().get(4).toString()); } /** Execute the same processors in a different order */ @Test - public void testChainedProcessing2() { + void testChainedProcessing2() { // Create a chain - Chain chain=new Chain<>(new Get6DataItems(),new CombineData(), new DataSource()); + Chain chain = new Chain<>(new Get6DataItems(), new CombineData(), new DataSource()); // Execute it - Request request=new Request(); - request.properties().set("appendage",1); - Response response=Execution.createRoot(chain,0,Execution.Environment.createEmpty()).process(request); + Request request = new Request(); + request.properties().set("appendage", 1); + Response response = Execution.createRoot(chain, 0, Execution.Environment.createEmpty()).process(request); // Check the result - assertEquals(6,response.data().asList().size()); - assertEquals("first.2, third.2",response.data().get(0).toString()); - assertEquals("second.2",response.data().get(1).toString()); - assertEquals("first.4, third.4",response.data().get(2).toString()); - assertEquals("second.4",response.data().get(3).toString()); - assertEquals("first.6, third.6",response.data().get(4).toString()); - assertEquals("second.6",response.data().get(5).toString()); + assertEquals(6, response.data().asList().size()); + assertEquals("first.2, third.2", response.data().get(0).toString()); + assertEquals("second.2", response.data().get(1).toString()); + assertEquals("first.4, third.4", response.data().get(2).toString()); + assertEquals("second.4", response.data().get(3).toString()); + assertEquals("first.6, third.6", response.data().get(4).toString()); + assertEquals("second.6", response.data().get(5).toString()); } } diff --git a/container-core/src/test/java/com/yahoo/restapi/PathTest.java b/container-core/src/test/java/com/yahoo/restapi/PathTest.java index b0392c16e2e..60d4f3b9831 100644 --- a/container-core/src/test/java/com/yahoo/restapi/PathTest.java +++ b/container-core/src/test/java/com/yahoo/restapi/PathTest.java @@ -1,16 +1,12 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.restapi; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.net.URI; import java.util.List; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; /** * @author bratseth @@ -18,7 +14,7 @@ import static org.junit.Assert.fail; public class PathTest { @Test - public void testPath() { + void testPath() { assertFalse(new Path(URI.create("")).matches("/a/{foo}/bar/{b}")); assertFalse(new Path(URI.create("///")).matches("/a/{foo}/bar/{b}")); assertFalse(new Path(URI.create("///foo")).matches("/a/{foo}/bar/{b}")); @@ -30,7 +26,7 @@ public class PathTest { } @Test - public void testPathWithRest() { + void testPathWithRest() { { Path path = new Path(URI.create("/a/1/bar/fuz/")); assertTrue(path.matches("/a/{foo}/bar/{b}/{*}")); @@ -65,21 +61,23 @@ public class PathTest { } @Test - public void testUrlEncodedPath() { + void testUrlEncodedPath() { assertTrue(new Path(URI.create("/a/%62/c")).matches("/a/b/c")); - assertFalse(new Path(URI.create("/a/b%2fc"), __ -> { }).matches("/a/b/c")); + assertFalse(new Path(URI.create("/a/b%2fc"), __ -> { + }).matches("/a/b/c")); assertEquals("path segments cannot be \"\", \".\", or \"..\", but got: '..'", - assertThrows(IllegalArgumentException.class, - () -> new Path(URI.create("/foo")).matches("/foo/bar/%2e%2e")).getMessage()); + assertThrows(IllegalArgumentException.class, + () -> new Path(URI.create("/foo")).matches("/foo/bar/%2e%2e")).getMessage()); - Path path = new Path(URI.create("/%61/%2f/%63"), __ -> { }); + Path path = new Path(URI.create("/%61/%2f/%63"), __ -> { + }); assertTrue(path.matches("/a/{slash}/{c}")); assertEquals("/", path.get("slash")); assertEquals("c", path.get("c")); } @Test - public void testInvalidPaths() { + void testInvalidPaths() { assertInvalid(URI.create("/foo/../bar")); assertInvalid(URI.create("/foo/%2e%2e/bar")); assertInvalidPathSpec(URI.create("/foo/bar"), "/foo/bar/.."); -- cgit v1.2.3