HelloWorldTest.java
/*
* Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.glassfish.jersey.examples.configured.client;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
import org.glassfish.jersey.test.TestProperties;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
import org.junit.jupiter.api.parallel.ResourceAccessMode;
import org.junit.jupiter.api.parallel.ResourceLock;
import static org.glassfish.jersey.examples.configured.client.App.ENTITY_PROPERTY;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class HelloWorldTest extends JerseyTest {
@Override
protected ResourceConfig configure() {
// mvn test -Djersey.config.test.container.factory=org.glassfish.jersey.test.inmemory.InMemoryTestContainerFactory
// mvn test -Djersey.config.test.container.factory=org.glassfish.jersey.test.grizzly.GrizzlyTestContainerFactory
// mvn test -Djersey.config.test.container.factory=org.glassfish.jersey.test.jdkhttp.JdkHttpServerTestContainerFactory
// mvn test -Djersey.config.test.container.factory=org.glassfish.jersey.test.simple.SimpleTestContainerFactory
enable(TestProperties.LOG_TRAFFIC);
// enable(TestProperties.DUMP_ENTITY);
return new ResourceConfig(HelloWorldResource.class);
}
@Test
@Execution(ExecutionMode.CONCURRENT)
@ResourceLock(value = "dummy", mode = ResourceAccessMode.READ)
public void testEntity() {
WebTarget target = target("helloworld");
Object entity = target.getConfiguration().getProperty(ENTITY_PROPERTY);
try (Response response = target.request().post(Entity.entity(entity, MediaType.TEXT_PLAIN_TYPE))) {
Assertions.assertEquals(200, response.getStatus());
String readEntity = response.readEntity(String.class);
System.out.println(entity);
Assertions.assertEquals(entity, readEntity);
}
}
@Test
@Execution(ExecutionMode.CONCURRENT)
@ResourceLock(value = "dummy", mode = ResourceAccessMode.READ)
public void testConnector() {
try (Response response = target("helloworld").path("agent").request().get()) {
Assertions.assertEquals(200, response.getStatus());
String entity = response.readEntity(String.class);
System.out.println(entity);
Assertions.assertTrue(entity.contains("Apache HttpClient 5"));
}
}
}