diff --git a/up-controller/src/test/java/com/github/restup/controller/interceptor/RequestInterceptorChainTest.java b/up-controller/src/test/java/com/github/restup/controller/interceptor/RequestInterceptorChainTest.java
index 2bacb57..94802d4 100644
--- a/up-controller/src/test/java/com/github/restup/controller/interceptor/RequestInterceptorChainTest.java
+++ b/up-controller/src/test/java/com/github/restup/controller/interceptor/RequestInterceptorChainTest.java
@@ -1,13 +1,11 @@
package com.github.restup.controller.interceptor;
-import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-
-import com.github.restup.controller.model.ParsedResourceControllerRequest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import com.github.restup.controller.model.ParsedResourceControllerRequest;
@RunWith(MockitoJUnitRunner.class)
public class RequestInterceptorChainTest {
@@ -25,13 +23,13 @@ public void testNull() {
@Test
public void testBefore() {
new RequestInterceptorChain(interceptor).before(request);
- verify(interceptor, times(1)).before(request);
+ verify(interceptor).before(request);
}
@Test
public void testAfter() {
new RequestInterceptorChain(interceptor).after(request);
- verify(interceptor, times(1)).after(request);
+ verify(interceptor).after(request);
}
}
diff --git a/up-http/pom.xml b/up-http/pom.xml
index 2f4a3e9..5766683 100644
--- a/up-http/pom.xml
+++ b/up-http/pom.xml
@@ -31,6 +31,18 @@
${project.version}
+
+ junit
+ junit
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
diff --git a/up-http/src/test/java/com/github/restup/http/model/HttpServletResourceControllerRequestTest.java b/up-http/src/test/java/com/github/restup/http/model/HttpServletResourceControllerRequestTest.java
new file mode 100644
index 0000000..10f5198
--- /dev/null
+++ b/up-http/src/test/java/com/github/restup/http/model/HttpServletResourceControllerRequestTest.java
@@ -0,0 +1,36 @@
+package com.github.restup.http.model;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import com.github.restup.errors.ErrorObjectException;
+import com.github.restup.registry.ResourceRegistry;
+import static org.mockito.Mockito.*;
+
+@RunWith(MockitoJUnitRunner.class)
+public class HttpServletResourceControllerRequestTest {
+
+ @Mock
+ HttpServletRequest httpRequest;
+
+ ResourceRegistry registry = new ResourceRegistry();
+
+
+ @Test(expected=ErrorObjectException.class)
+ public void testResponse() {
+ when(httpRequest.getRequestURL()).thenReturn(new StringBuffer("http://www.foo.com/a/b/c"));
+ when(httpRequest.getRequestURI()).thenReturn("/a/b/c");
+
+ HttpServletResourceControllerRequest request = HttpServletResourceControllerRequest.builder(httpRequest).setRegistry(registry).build();
+ request.getParameterNames();
+ request.getParameter("foo");
+ request.getHeaders("bar");
+ verify(httpRequest).getParameterNames();
+ verify(httpRequest).getParameter("foo");
+ verify(httpRequest).getHeaders("bar");
+ }
+
+}
diff --git a/up-http/src/test/java/com/github/restup/http/model/HttpServletResourceControllerResponseTest.java b/up-http/src/test/java/com/github/restup/http/model/HttpServletResourceControllerResponseTest.java
new file mode 100644
index 0000000..c64748f
--- /dev/null
+++ b/up-http/src/test/java/com/github/restup/http/model/HttpServletResourceControllerResponseTest.java
@@ -0,0 +1,28 @@
+package com.github.restup.http.model;
+
+import javax.servlet.http.HttpServletResponse;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import static org.mockito.Mockito.verify;
+
+@RunWith(MockitoJUnitRunner.class)
+public class HttpServletResourceControllerResponseTest {
+
+ @Mock
+ HttpServletResponse httpServletResponse;
+
+ @Test
+ public void testResponse() {
+ HttpServletResourceControllerResponse response = new HttpServletResourceControllerResponse(httpServletResponse);
+ String name = "foo";
+ String value = "bar";
+ int status = 123;
+ response.setHeader(name, value);
+ response.setStatus(status);
+
+ verify(httpServletResponse).setHeader(name, value);
+ verify(httpServletResponse).setStatus(status);
+ }
+}
diff --git a/up-test-model/pom.xml b/up-test-model/pom.xml
index 437117b..cd31e5d 100644
--- a/up-test-model/pom.xml
+++ b/up-test-model/pom.xml
@@ -54,6 +54,18 @@
true
+
+ com.openpojo
+ openpojo
+ 0.8.7
+ test
+
+
+
+ junit
+ junit
+ test
+
diff --git a/up-test-model/src/main/java/com/many/fields/A2J.java b/up-test-model/src/main/java/com/many/fields/A2J.java
index b395b34..bd360d4 100644
--- a/up-test-model/src/main/java/com/many/fields/A2J.java
+++ b/up-test-model/src/main/java/com/many/fields/A2J.java
@@ -40,4 +40,92 @@ public A2J(Long id, String a, String b, String c, String d, String e, String f,
this.j = j;
}
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getA() {
+ return a;
+ }
+
+ public void setA(String a) {
+ this.a = a;
+ }
+
+ public String getB() {
+ return b;
+ }
+
+ public void setB(String b) {
+ this.b = b;
+ }
+
+ public String getC() {
+ return c;
+ }
+
+ public void setC(String c) {
+ this.c = c;
+ }
+
+ public String getD() {
+ return d;
+ }
+
+ public void setD(String d) {
+ this.d = d;
+ }
+
+ public String getE() {
+ return e;
+ }
+
+ public void setE(String e) {
+ this.e = e;
+ }
+
+ public String getF() {
+ return f;
+ }
+
+ public void setF(String f) {
+ this.f = f;
+ }
+
+ public String getG() {
+ return g;
+ }
+
+ public void setG(String g) {
+ this.g = g;
+ }
+
+ public String getH() {
+ return h;
+ }
+
+ public void setH(String h) {
+ this.h = h;
+ }
+
+ public String getI() {
+ return i;
+ }
+
+ public void setI(String i) {
+ this.i = i;
+ }
+
+ public String getJ() {
+ return j;
+ }
+
+ public void setJ(String j) {
+ this.j = j;
+ }
+
}
diff --git a/up-test-model/src/main/java/com/model/test/company/Contractor.java b/up-test-model/src/main/java/com/model/test/company/Contractor.java
index 4a30bad..877af82 100644
--- a/up-test-model/src/main/java/com/model/test/company/Contractor.java
+++ b/up-test-model/src/main/java/com/model/test/company/Contractor.java
@@ -7,4 +7,12 @@ public class Contractor extends Person {
@Relationship(resource = Company.class)
private Long companyId;
+ public Long getCompanyId() {
+ return companyId;
+ }
+
+ public void setCompanyId(Long companyId) {
+ this.companyId = companyId;
+ }
+
}
diff --git a/up-test-model/src/main/java/com/model/test/company/Employee.java b/up-test-model/src/main/java/com/model/test/company/Employee.java
index ed3b0f1..a34d2a9 100644
--- a/up-test-model/src/main/java/com/model/test/company/Employee.java
+++ b/up-test-model/src/main/java/com/model/test/company/Employee.java
@@ -9,4 +9,20 @@ public class Employee extends Person {
private Long id;
private String department;
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getDepartment() {
+ return department;
+ }
+
+ public void setDepartment(String department) {
+ this.department = department;
+ }
+
}
diff --git a/up-test-model/src/main/java/com/test/model/animals/Animal.java b/up-test-model/src/main/java/com/test/model/animals/Animal.java
index 7977a5d..6fc5e55 100644
--- a/up-test-model/src/main/java/com/test/model/animals/Animal.java
+++ b/up-test-model/src/main/java/com/test/model/animals/Animal.java
@@ -3,20 +3,27 @@
import com.github.restup.annotations.ApiName;
@ApiName("animal")
-@SuppressWarnings("unused")
public class Animal {
private final Long id;
private final String name;
- public Animal(Long id, String name) {
- super();
- this.id = id;
- this.name = name;
- }
+ public Animal(Long id, String name) {
+ super();
+ this.id = id;
+ this.name = name;
+ }
- public Animal() {
- this(null, null);
- }
+ public Animal() {
+ this(null, null);
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
}
diff --git a/up-test-model/src/main/java/com/test/model/animals/Zebra.java b/up-test-model/src/main/java/com/test/model/animals/Zebra.java
index 0cf3103..957179b 100644
--- a/up-test-model/src/main/java/com/test/model/animals/Zebra.java
+++ b/up-test-model/src/main/java/com/test/model/animals/Zebra.java
@@ -2,10 +2,17 @@
import com.github.restup.annotations.ApiName;
-@SuppressWarnings("unused")
@ApiName("animal")
public class Zebra extends Animal {
private int numStripes;
+ public int getNumStripes() {
+ return numStripes;
+ }
+
+ public void setNumStripes(int numStripes) {
+ this.numStripes = numStripes;
+ }
+
}
diff --git a/up-test-model/src/main/java/com/university/University.java b/up-test-model/src/main/java/com/university/University.java
index 533e89b..5b27760 100644
--- a/up-test-model/src/main/java/com/university/University.java
+++ b/up-test-model/src/main/java/com/university/University.java
@@ -3,11 +3,6 @@
import static com.university.University.PLURAL_NAME;
import static com.university.University.RESOURCE_NAME;
import static com.university.University.TABLE_NAME;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.github.restup.annotations.ApiName;
-import com.github.restup.annotations.Plural;
-import com.github.restup.annotations.field.CaseInsensitive;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@@ -16,6 +11,10 @@
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.SafeHtml;
import org.hibernate.validator.constraints.SafeHtml.WhiteListType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.github.restup.annotations.ApiName;
+import com.github.restup.annotations.Plural;
+import com.github.restup.annotations.field.CaseInsensitive;
@Entity(name = TABLE_NAME)
@ApiName(value = RESOURCE_NAME)
diff --git a/up-test-model/src/test/java/com/test/model/DeepTest.java b/up-test-model/src/test/java/com/test/model/DeepTest.java
new file mode 100644
index 0000000..1fa4b4c
--- /dev/null
+++ b/up-test-model/src/test/java/com/test/model/DeepTest.java
@@ -0,0 +1,21 @@
+package com.test.model;
+
+import static org.junit.Assert.assertNotNull;
+import org.junit.Test;
+import com.deep.Shallow;
+import com.many.fields.A2J;
+
+public class DeepTest {
+
+ @Test
+ public void deep() {
+ Shallow graph = Shallow.graph();
+ assertNotNull(graph);
+ }
+
+ @Test
+ public void a2j() {
+ new A2J(1l,"a","b","c","d","e","f","g","h","i","j");
+ }
+
+}
diff --git a/up-test-model/src/test/java/com/test/model/PojoTest.java b/up-test-model/src/test/java/com/test/model/PojoTest.java
new file mode 100644
index 0000000..7367917
--- /dev/null
+++ b/up-test-model/src/test/java/com/test/model/PojoTest.java
@@ -0,0 +1,61 @@
+package com.test.model;
+
+
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import com.openpojo.reflection.PojoClass;
+import com.openpojo.reflection.filters.FilterPackageInfo;
+import com.openpojo.reflection.impl.PojoClassFactory;
+import com.openpojo.validation.Validator;
+import com.openpojo.validation.ValidatorBuilder;
+import com.openpojo.validation.affirm.Affirm;
+import com.openpojo.validation.rule.impl.GetterMustExistRule;
+import com.openpojo.validation.rule.impl.SetterMustExistRule;
+import com.openpojo.validation.test.impl.GetterTester;
+import com.openpojo.validation.test.impl.SetterTester;
+
+public class PojoTest {
+ // Configured for expectation, so we know when a class gets added or removed.
+ private static final int EXPECTED_CLASS_COUNT = 31;
+
+ // The package to test
+ private static final String[] POJO_PACKAGES = {
+ "com.deep",
+ "com.many",
+ "com.model",
+ "com.music",
+ "com.petstore",
+ "com.test",
+ "com.university"
+ };
+
+ @Test
+ public void ensureExpectedPojoCount() {
+ List pojoClasses =
+ Stream.of(POJO_PACKAGES)
+ .flatMap(a-> PojoClassFactory.getPojoClassesRecursively(a,
+ new FilterPackageInfo()).stream())
+ .collect(Collectors.toList());
+ Affirm.affirmEquals("Classes added / removed?", EXPECTED_CLASS_COUNT, pojoClasses.size());
+ }
+
+ @Test
+ public void testPojoStructureAndBehavior() {
+ Validator validator = ValidatorBuilder.create()
+ // Add Rules to validate structure for POJO_PACKAGE
+ // See com.openpojo.validation.rule.impl for more ...
+ .with(new GetterMustExistRule())
+ .with(new SetterMustExistRule())
+ // Add Testers to validate behaviour for POJO_PACKAGE
+ // See com.openpojo.validation.test.impl for more ...
+ .with(new SetterTester())
+ .with(new GetterTester())
+ .build();
+
+ for ( String pkg : POJO_PACKAGES ) {
+ validator.validateRecursively(pkg, new FilterPackageInfo());
+ }
+ }
+}