Skip to content

Commit

Permalink
Issue eclipse-ee4j#23507 rest-service now uses junit5 instead of test-ng
Browse files Browse the repository at this point in the history
  • Loading branch information
dmatej committed Aug 1, 2021
1 parent e92b6ac commit 38321fb
Show file tree
Hide file tree
Showing 8 changed files with 128 additions and 84 deletions.
14 changes: 7 additions & 7 deletions nucleus/admin/rest/rest-service/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,14 @@
<artifactId>jersey-media-multipart</artifactId>
<scope>provided</scope>
</dependency>
<!-- <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId>
<scope>provided</scope> </dependency> -->


<dependency><!-- for FindBugs -->
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<scope>provided</scope>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
</dependency>
<dependency>
<groupId>jakarta.el</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,27 @@
package org.glassfish.admin.rest;

import com.sun.enterprise.v3.common.ActionReporter;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Properties;
import jakarta.ws.rs.core.MediaType;

import org.glassfish.admin.rest.provider.ActionReportJson2Provider;
import org.glassfish.admin.rest.utils.xml.RestActionReporter;
import org.glassfish.api.ActionReport;
import org.glassfish.api.ActionReport.MessagePart;
import static org.testng.Assert.*;
import org.testng.annotations.Test;
import org.junit.jupiter.api.Test;

import jakarta.ws.rs.core.MediaType;

import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;

/**
*
* @author mmares
*/
public class ActionReportTest {
private ActionReportJson2Provider provider = new ActionReportJson2Provider();
private final ActionReportJson2Provider provider = new ActionReportJson2Provider();

private String marshall(RestActionReporter ar) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.List;
import java.util.Map;
import java.util.Properties;

import org.glassfish.admin.rest.client.utils.MarshallingUtils;
import org.glassfish.admin.rest.provider.ActionReportResultHtmlProvider;
import org.glassfish.admin.rest.provider.ActionReportResultJsonProvider;
Expand All @@ -32,8 +33,13 @@
import org.glassfish.api.ActionReport;
import org.glassfish.api.ActionReport.ExitCode;
import org.glassfish.api.ActionReport.MessagePart;
import static org.testng.AssertJUnit.*;
import org.testng.annotations.Test;
import org.junit.jupiter.api.Test;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.aMapWithSize;
import static org.hamcrest.Matchers.stringContainsInOrder;
import static org.hamcrest.core.IsInstanceOf.instanceOf;
import static org.junit.jupiter.api.Assertions.assertAll;

/**
*
Expand All @@ -46,11 +52,13 @@ public void encodeAsJson() {
ActionReportResultJsonProvider provider = new ActionReportResultJsonProvider();
ActionReportResult result = new ActionReportResult("test", ar);
String json = provider.getContent(result);
Map responseMap = MarshallingUtils.buildMapFromDocument(json);
assertEquals(7, responseMap.size());
assertEquals(4, ((Map)responseMap.get("extraProperties")).size());
assertTrue(responseMap.get("children") instanceof List);
assertTrue(responseMap.get("subReports") instanceof List);
Map<?, ?> responseMap = MarshallingUtils.buildMapFromDocument(json);
assertAll(
() -> assertThat(responseMap, aMapWithSize(7)),
() -> assertThat((Map<?, ?>) responseMap.get("extraProperties"), aMapWithSize(4)),
() -> assertThat(responseMap.get("children"), instanceOf(List.class)),
() -> assertThat(responseMap.get("subReports"), instanceOf(List.class))
);
}

@Test
Expand All @@ -59,12 +67,13 @@ public void encodeAsXml() {
ActionReportResultXmlProvider provider = new ActionReportResultXmlProvider();
ActionReportResult result = new ActionReportResult("test", ar);
String xml = provider.getContent(result);

Map responseMap = MarshallingUtils.buildMapFromDocument(xml);
assertEquals(7, responseMap.size());
assertEquals(4, ((Map)responseMap.get("extraProperties")).size());
assertTrue(responseMap.get("children") instanceof List);
assertTrue(responseMap.get("subReports") instanceof List);
Map<?, ?> responseMap = MarshallingUtils.buildMapFromDocument(xml);
assertAll(
() -> assertThat(responseMap, aMapWithSize(7)),
() -> assertThat((Map<?, ?>) responseMap.get("extraProperties"), aMapWithSize(4)),
() -> assertThat(responseMap.get("children"), instanceOf(List.class)),
() -> assertThat(responseMap.get("subReports"), instanceOf(List.class))
);
}

@Test
Expand All @@ -73,7 +82,12 @@ public void encodeAsHtml() {
ActionReportResultHtmlProvider provider = new ActionReportResultHtmlProvider();
ActionReportResult result = new ActionReportResult("test", ar);
String html = provider.getContent(result);
// How to test this?
assertThat(html, stringContainsInOrder(
"<html><head>",
"<h3>test message",
"sub report 1 message",
"sub report 2 message</h3></div></body></html>"
));
}

private RestActionReporter buildActionReport() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,21 @@
package org.glassfish.admin.rest;

import java.util.Locale;

import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.glassfish.admin.rest.composite.CompositeUtil;
import org.glassfish.admin.rest.model.BaseModel;
import org.glassfish.admin.rest.utils.JsonUtil;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.junit.jupiter.api.Test;

import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.arrayWithSize;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

/**
*
Expand All @@ -37,18 +44,17 @@ public void testArrayEncoding() throws JSONException {
BaseModel model = CompositeUtil.instance().getModel(BaseModel.class);
model.setStringArray(new String[] {"one", "two"});
JSONObject json = (JSONObject)JsonUtil.getJsonObject(model);
Assert.assertNotNull(json);
assertNotNull(json);
Object o = json.get("stringArray");
Assert.assertTrue(o instanceof JSONArray);
assertThat(o, instanceOf(JSONArray.class));
JSONArray array = (JSONArray)o;
Assert.assertEquals(array.length(), 2);
Assert.assertTrue(contains(array, "one"));
Assert.assertTrue(contains(array, "two"));
assertEquals(array.length(), 2);
assertTrue(contains(array, "one"));
assertTrue(contains(array, "two"));

BaseModel model2 = CompositeUtil.instance().unmarshallClass(locale, BaseModel.class, json);
Assert.assertNotNull(model2);
Assert.assertNotNull(model2.getStringArray());
Assert.assertEquals(2, model2.getStringArray().length);
assertNotNull(model2);
assertThat(model2.getStringArray(), arrayWithSize(2));
}

private boolean contains(JSONArray array, String text) throws JSONException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,26 @@

import com.sun.enterprise.config.serverbeans.Cluster;
import com.sun.enterprise.config.serverbeans.customvalidators.ReferenceConstraint;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.Locale;
import java.util.Set;
import jakarta.validation.ConstraintViolation;

import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.glassfish.admin.rest.composite.metadata.AttributeReference;
import org.glassfish.admin.rest.model.BaseModel;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.junit.jupiter.api.Test;

import jakarta.validation.ConstraintViolation;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.StringStartsWith.startsWith;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

/**
*
Expand All @@ -42,7 +50,7 @@ public class CompositeUtilTest {
@Test
public void modelGeneration() {
BaseModel model = CompositeUtil.instance().getModel(BaseModel.class);
Assert.assertNotNull(model);
assertNotNull(model);
}

@Test
Expand All @@ -51,9 +59,11 @@ public void readInJson() throws Exception {
JSONObject o = new JSONObject(json);
BaseModel model = CompositeUtil.instance().unmarshallClass(locale, BaseModel.class, o);

Assert.assertEquals(model.getName(), "testModel");
Assert.assertEquals(model.getRelated().size(), 2);
Assert.assertTrue(model.getRelated().get(0).getDescription().startsWith("description "));
assertAll(
() -> assertEquals(model.getName(), "testModel"),
() -> assertEquals(model.getRelated().size(), 2)
);
assertThat(model.getRelated().get(0).getDescription(), startsWith("description "));
}

@Test
Expand All @@ -66,7 +76,7 @@ public void testBeanValidationSupport() {
model.setConfigRef(null); // Not null. Validation pulled in from the ConfigBean

Set<ConstraintViolation<BaseModel>> violations = cu.validateRestModel(locale, model);
Assert.assertEquals(3, violations.size());
assertEquals(3, violations.size());
}

@Test
Expand All @@ -80,8 +90,8 @@ public void testAttributeReferenceProcessing() throws Exception {
Annotation[] fromCluster = clusterMethod.getAnnotations();
Annotation[] fromRestModel = modelMethod.getAnnotations();

Assert.assertEquals(fromCluster.length, fromRestModel.length);
Assert.assertEquals(clusterMethod.getAnnotation(ReferenceConstraint.RemoteKey.class).message(),
assertEquals(fromCluster.length, fromRestModel.length);
assertEquals(clusterMethod.getAnnotation(ReferenceConstraint.RemoteKey.class).message(),
modelMethod.getAnnotation(ReferenceConstraint.RemoteKey.class).message());
}

Expand All @@ -90,11 +100,13 @@ public void testDirtyFieldDetection() throws JSONException {
Locale locale = null;
JSONObject o = new JSONObject(json);
BaseModel model = CompositeUtil.instance().unmarshallClass(locale, BaseModel.class, o);
RestModel rmi = (RestModel)model;
RestModel<?> rmi = model;

Assert.assertTrue(rmi.isSet("name"));
Assert.assertTrue(rmi.isSet("count"));
Assert.assertTrue(rmi.isSet("related"));
Assert.assertFalse(rmi.isSet("size"));
assertAll(
() -> assertTrue(rmi.isSet("name"), "name"),
() -> assertTrue(rmi.isSet("count"), "count"),
() -> assertTrue(rmi.isSet("related"), "related"),
() -> assertFalse(rmi.isSet("size"), "size")
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
import java.util.List;
import jakarta.ws.rs.GET;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.glassfish.admin.rest.composite.metadata.Default;
Expand All @@ -30,57 +35,54 @@
import org.glassfish.admin.rest.model.ModelExt1;
import org.glassfish.admin.rest.model.ModelExt2;
import org.glassfish.admin.rest.model.RelatedModel;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.junit.jupiter.api.Test;

/**
*
* @author jdlee
*/
@Test
public class ModelExtensionTest {
@Test
public void testNestedModels() {
BaseModel model = CompositeUtil.instance().getModel(BaseModel.class);
List<RelatedModel> related = model.getRelated();
Assert.assertNull(related);
assertNull(related);

RelatedModel rm = CompositeUtil.instance().getModel(RelatedModel.class);
rm.setId("1");
rm.setDescription("test");
related = new ArrayList<RelatedModel>();
related = new ArrayList<>();
related.add(rm);
model.setRelated(related);

related = model.getRelated();
Assert.assertEquals(related.size(), 1);
assertEquals(related.size(), 1);
}

@Test
public void testModelExtension() {
BaseModel model = CompositeUtil.instance().getModel(BaseModel.class);
Assert.assertTrue(ModelExt1.class.isAssignableFrom(model.getClass()));
Assert.assertTrue(ModelExt2.class.isAssignableFrom(model.getClass()));
assertTrue(ModelExt1.class.isAssignableFrom(model.getClass()));
assertTrue(ModelExt2.class.isAssignableFrom(model.getClass()));
}

public void testModelInheritance() throws JSONException {
Model1 m1 = CompositeUtil.instance().getModel(Model1.class);
Model2 m2 = CompositeUtil.instance().getModel(Model2.class);

Assert.assertNotNull(m1);
Assert.assertNotNull(m2);
assertNotNull(m1);
assertNotNull(m2);

RestResourceMetadata rrmd = new RestResourceMetadata(new TestResource());
final List<RestMethodMetadata> getMethods = rrmd.getResourceMethods().get("GET");
JSONObject name = getJsonObject(getMethods.get(0).toJson(), "response.properties.name");

Assert.assertNotNull(name, "'name' should not be null. Inherited methods are not showing up in generated class");
Assert.assertNotNull(name.get("default"), "The field 'name' should have a default value.");
assertNotNull(name, "'name' should not be null. Inherited methods are not showing up in generated class");
assertNotNull(name.get("default"), "The field 'name' should have a default value.");
}

// Works with no dot?
private JSONObject getJsonObject(JSONObject current, String dottedName) {
Assert.assertNotNull(dottedName);
assertNotNull(dottedName);
String[] parts = dottedName.split("\\.");

for (String part : parts) {
Expand All @@ -104,13 +106,13 @@ public Model2 getModel() {
}
}

public static interface Model1 extends RestModel {
public interface Model1 extends RestModel {
@Default(generator=ModelDefaultGenerator.class)
String getName();
void setName(String name);
}

public static interface Model2 extends Model1 {
public interface Model2 extends Model1 {
@Default(generator=ModelDefaultGenerator.class)
String getName2();
void setName2(String name);
Expand Down
Loading

0 comments on commit 38321fb

Please sign in to comment.