From c21739b3e34c3b77f27147e0f39be2d8feac2589 Mon Sep 17 00:00:00 2001
From: Eike Cochu <eike@cochu.com>
Date: Wed, 9 Dec 2015 00:29:04 +0100
Subject: [PATCH] added junit tests and slf4j framework

added example junit tests to rest backend
added slf4j bindings to log4j for logging, currently not picked up by tomcat or mongodb
---
 .../org.eclipse.core.resources.prefs          |  1 -
 tmbs-rest-backend/.classpath                  |  2 ++
 .../org.eclipse.wst.common.component          |  2 ++
 tmbs-rest-backend/pom.xml                     | 25 +++++++++++++++++++
 .../src/main/resources/log4j2.xml             |  2 +-
 .../backend/rest/resource/ArticlesTest.java   | 25 +++++++++++++++++++
 .../src/test/resources/log4j2.xml             | 13 ++++++++++
 tmbs-rest-backend/target/classes/log4j2.xml   |  2 +-
 8 files changed, 69 insertions(+), 3 deletions(-)
 create mode 100644 tmbs-rest-backend/src/test/java/de/cochu/backend/rest/resource/ArticlesTest.java
 create mode 100644 tmbs-rest-backend/src/test/resources/log4j2.xml

diff --git a/tmbs-processor-backend/.settings/org.eclipse.core.resources.prefs b/tmbs-processor-backend/.settings/org.eclipse.core.resources.prefs
index db326978..99f26c02 100644
--- a/tmbs-processor-backend/.settings/org.eclipse.core.resources.prefs
+++ b/tmbs-processor-backend/.settings/org.eclipse.core.resources.prefs
@@ -1,3 +1,2 @@
 eclipse.preferences.version=1
-encoding//src/main/resources=UTF-8
 encoding/<project>=UTF-8
diff --git a/tmbs-rest-backend/.classpath b/tmbs-rest-backend/.classpath
index 0ea5b457..09d933fb 100644
--- a/tmbs-rest-backend/.classpath
+++ b/tmbs-rest-backend/.classpath
@@ -2,6 +2,8 @@
 <classpath>
 	<classpathentry kind="src" path="src/main/java"/>
 	<classpathentry kind="src" path="src/main/resources"/>
+	<classpathentry kind="src" path="src/test/java"/>
+	<classpathentry kind="src" path="src/test/resources"/>
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
diff --git a/tmbs-rest-backend/.settings/org.eclipse.wst.common.component b/tmbs-rest-backend/.settings/org.eclipse.wst.common.component
index 7ffe805e..95b175ed 100644
--- a/tmbs-rest-backend/.settings/org.eclipse.wst.common.component
+++ b/tmbs-rest-backend/.settings/org.eclipse.wst.common.component
@@ -4,6 +4,8 @@
         <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
         <property name="java-output-path" value="/tmbs-rest-backend/target/classes"/>
         <property name="context-root" value="tmbs"/>
     </wb-module>
diff --git a/tmbs-rest-backend/pom.xml b/tmbs-rest-backend/pom.xml
index 8841b573..c8178215 100644
--- a/tmbs-rest-backend/pom.xml
+++ b/tmbs-rest-backend/pom.xml
@@ -21,6 +21,16 @@
 			<artifactId>jersey-media-moxy</artifactId>
 			<version>2.22.1</version>
 		</dependency>
+		<dependency>
+			<groupId>org.glassfish.jersey.test-framework</groupId>
+			<artifactId>jersey-test-framework-core</artifactId>
+			<version>2.22.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.glassfish.jersey.test-framework.providers</groupId>
+			<artifactId>jersey-test-framework-provider-simple</artifactId>
+			<version>2.22.1</version>
+		</dependency>
 		<dependency>
 			<groupId>javax.servlet</groupId>
 			<artifactId>javax.servlet-api</artifactId>
@@ -31,10 +41,25 @@
 			<artifactId>log4j-core</artifactId>
 			<version>2.4.1</version>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>2.4.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-slf4j-impl</artifactId>
+			<version>2.4.1</version>
+		</dependency>
 		<dependency>
 			<groupId>org.mongodb</groupId>
 			<artifactId>mongodb-driver</artifactId>
 			<version>3.0.4</version>
 		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+		</dependency>
 	</dependencies>
 </project>
diff --git a/tmbs-rest-backend/src/main/resources/log4j2.xml b/tmbs-rest-backend/src/main/resources/log4j2.xml
index e43e1b99..fe4f3e8a 100644
--- a/tmbs-rest-backend/src/main/resources/log4j2.xml
+++ b/tmbs-rest-backend/src/main/resources/log4j2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Configuration status="WARN">
+<Configuration status="OFF">
 	<Appenders>
 		<Console name="Console" target="SYSTEM_OUT">
 			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
diff --git a/tmbs-rest-backend/src/test/java/de/cochu/backend/rest/resource/ArticlesTest.java b/tmbs-rest-backend/src/test/java/de/cochu/backend/rest/resource/ArticlesTest.java
new file mode 100644
index 00000000..924b1308
--- /dev/null
+++ b/tmbs-rest-backend/src/test/java/de/cochu/backend/rest/resource/ArticlesTest.java
@@ -0,0 +1,25 @@
+package de.cochu.backend.rest.resource;
+
+import static org.junit.Assert.*;
+
+import javax.ws.rs.core.Application;
+import javax.ws.rs.core.Response;
+
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.test.JerseyTest;
+import org.junit.Test;
+
+public class ArticlesTest extends JerseyTest {
+
+	@Override
+	protected Application configure() {
+		return new ResourceConfig(Articles.class);
+	}
+
+	@Test
+	public void getArticles() {
+		Response response = target("articles").request().get();
+		assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
+	}
+
+}
diff --git a/tmbs-rest-backend/src/test/resources/log4j2.xml b/tmbs-rest-backend/src/test/resources/log4j2.xml
new file mode 100644
index 00000000..e43e1b99
--- /dev/null
+++ b/tmbs-rest-backend/src/test/resources/log4j2.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+	<Appenders>
+		<Console name="Console" target="SYSTEM_OUT">
+			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
+		</Console>
+	</Appenders>
+	<Loggers>
+		<Root level="error">
+			<AppenderRef ref="Console" />
+		</Root>
+	</Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/tmbs-rest-backend/target/classes/log4j2.xml b/tmbs-rest-backend/target/classes/log4j2.xml
index e43e1b99..fe4f3e8a 100644
--- a/tmbs-rest-backend/target/classes/log4j2.xml
+++ b/tmbs-rest-backend/target/classes/log4j2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Configuration status="WARN">
+<Configuration status="OFF">
 	<Appenders>
 		<Console name="Console" target="SYSTEM_OUT">
 			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
-- 
GitLab