From d9c83992efe43152bebb656ce4d0e3781aa7ee53 Mon Sep 17 00:00:00 2001 From: Andy Buttaro Date: Fri, 26 Jan 2018 21:21:46 -0500 Subject: [PATCH] up test coverage --- .../RequestInterceptorChainTest.java | 8 +- up-http/pom.xml | 12 +++ ...pServletResourceControllerRequestTest.java | 36 ++++++++ ...ServletResourceControllerResponseTest.java | 28 ++++++ up-test-model/pom.xml | 12 +++ .../src/main/java/com/many/fields/A2J.java | 88 +++++++++++++++++++ .../com/model/test/company/Contractor.java | 8 ++ .../java/com/model/test/company/Employee.java | 16 ++++ .../java/com/test/model/animals/Animal.java | 25 ++++-- .../java/com/test/model/animals/Zebra.java | 9 +- .../main/java/com/university/University.java | 9 +- .../test/java/com/test/model/DeepTest.java | 21 +++++ .../test/java/com/test/model/PojoTest.java | 61 +++++++++++++ 13 files changed, 313 insertions(+), 20 deletions(-) create mode 100644 up-http/src/test/java/com/github/restup/http/model/HttpServletResourceControllerRequestTest.java create mode 100644 up-http/src/test/java/com/github/restup/http/model/HttpServletResourceControllerResponseTest.java create mode 100644 up-test-model/src/test/java/com/test/model/DeepTest.java create mode 100644 up-test-model/src/test/java/com/test/model/PojoTest.java 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()); + } + } +}