Skip to content
Snippets Groups Projects
Commit 0eb2fc8b authored by Goik Martin's avatar Goik Martin
Browse files

Clean up the mess

parent 296d1d04
No related branches found
No related tags found
No related merge requests found
Showing
with 90 additions and 289 deletions
/.classpath
/.project
/.settings
/A1.log
...@@ -3,22 +3,30 @@ ...@@ -3,22 +3,30 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.hdm-stuttgart.sw1.klausur</groupId> <groupId>de.hdm-stuttgart.sw1.klausur</groupId>
<artifactId>sw1klausur</artifactId> <artifactId>sw1_2015sommer</artifactId>
<version>0.9</version> <version>0.9</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>sw1klausur</name> <name>sw1_2015sommer</name>
<url>http://maven.apache.org</url> <url>https://freedocs.mi.hdm-stuttgart.de</url>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<repositories>
<repository>
<id>hdm-mi-internal-maven-repo</id>
<url>https://maven.mi.hdm-stuttgart.de/artifacts</url>
</repository>
</repositories>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <version>3.5.1</version>
<configuration> <configuration>
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
...@@ -31,20 +39,27 @@ ...@@ -31,20 +39,27 @@
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>4.11</version> <version>4.12</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.1</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.logging.log4j</groupId> <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId> <artifactId>log4j-core</artifactId>
<version>2.1</version> <version>2.1</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId> <dependency>
<artifactId>log4j-core</artifactId> <groupId>de.hdm_stuttgart.mi.exam</groupId>
<version>2.1</version> <artifactId>unitmarking</artifactId>
</dependency> <version>0.9</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
...@@ -4,7 +4,7 @@ import org.apache.logging.log4j.LogManager; ...@@ -4,7 +4,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
/** /**
* @author goik * Ersetzungen in Zeichenketten.
* *
*/ */
public class StringTransforms { public class StringTransforms {
...@@ -30,7 +30,7 @@ public class StringTransforms { ...@@ -30,7 +30,7 @@ public class StringTransforms {
log.info("Bei Bedarf zur Fehlersuche logging Statements nutzen"); log.info("Bei Bedarf zur Fehlersuche logging Statements nutzen");
return "Blödsinn";// TODO implement me return "Blödsinn";// TODO implementiere mich
} }
/** /**
......
package de.hdm_stuttgart.mi.bitte_ignorieren;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention( value = RetentionPolicy.RUNTIME)
@Target( value = { ElementType.METHOD})
public @interface Marking {
int points ();
}
package de.hdm_stuttgart.mi.bitte_ignorieren;
import org.junit.AfterClass;
import org.junit.Rule;
import org.junit.runner.Description;
public class MarkingTest {
static public Description currentTestClass = null;
static public boolean provideExtraInfo = false;
public final static ResultCollector globalresultCollector = new ResultCollector();
@Rule
public ResultCollector collectedResults = globalresultCollector;
@AfterClass public static void showResults() {
if (provideExtraInfo) {
System.out.println("Local:----------------------------------");
System.out.println(globalresultCollector.currentToString());
System.out.println("Global:++++++++++++++++++++++++++++++++++");
System.out.println("Global:++++++++++++++++++++++++++++++++++");
System.out.println(globalresultCollector.toString());
System.out.println("Global:++++++++++++++++++++++++++++++++++");
System.out.println("Global:++++++++++++++++++++++++++++++++++");
}
}
}
package de.hdm_stuttgart.mi.bitte_ignorieren;
import java.lang.annotation.Annotation;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Vector;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
public class ResultCollector extends TestWatcher {
public final Map<String, List<TestResult>>
failedByDescription = new HashMap<String, List<TestResult>>(),
successByDescription = new HashMap<String, List<TestResult>>();
@Override
protected void starting(Description description) {
MarkingTest.currentTestClass = description;
}
@Override
protected void failed(final Throwable e, final Description description) {
putAppend(failedByDescription, description.getClassName(), new TestResult(description,
getMarking(description), false));
}
@Override
protected void succeeded(final Description description) {
putAppend(successByDescription, description.getClassName(), new TestResult(description,
getMarking(description), true));
}
private static void putAppend(final Map<String, List<TestResult>> map, final String key, final TestResult testresult) {
List<TestResult> results = map.get(key);
if (null == results) {
results = new Vector<TestResult>();
map.put(key, results);
}
results.add(testresult);
}
private static Marking getMarking(final Description description) {
final Marking marking = description.getAnnotation(Marking.class);
if (null == marking) { // Default values: 1 point
return new Marking() {
@Override
public Class<? extends Annotation> annotationType() {
return Marking.class;
}
@Override
public int points() {
return 1;
}
};
}
return marking;
}
public String currentToString() {
final String currentTestClassName = MarkingTest.currentTestClass.getClassName();
int reachablePoints = 0, reachedPoints = 0, numSuccessfulTests = 0;
final List<TestResult> successfulTestResults = successByDescription.get(currentTestClassName);
if (null != successfulTestResults) {
for (final TestResult t : successfulTestResults) {
reachablePoints += t.marking.points();
reachedPoints += t.marking.points();
numSuccessfulTests++;
}
}
final StringBuffer failBuffer = new StringBuffer();
final List<TestResult> failedTestResults = failedByDescription.get(currentTestClassName);
if (null != failedTestResults) {
for (final TestResult t : failedTestResults) {
reachablePoints += t.marking.points();
failBuffer.append(" -" + t.testMethodDisplayName + "\n");
}
}
final StringBuffer buffer = new StringBuffer();
buffer.append(currentTestClassName + ":\nYou have reached " + reachedPoints + " of "
+ reachablePoints + " possible points in " + numSuccessfulTests + " successful tests. ");
if (null != failedTestResults) {
final int numFailed = failedTestResults.size();
if (1 == numFailed) {
buffer.append(" The following test still fails:\n");
} else if (1 < numFailed) {
buffer.append("\n\nThe following " + numFailed + " tests still fail:\n");
}
buffer.append(failBuffer + "\n");
}
buffer.append("\n");
return buffer.toString();
}
@Override
public String toString() {
int reachablePoints = 0, reachedPoints = 0, successfulTests = 0, failedTests = 0;
for (final Entry<String, List<TestResult>> successEntries: successByDescription.entrySet()) {
for (final TestResult t : successEntries.getValue()) {
successfulTests++;
reachablePoints += t.marking.points();
reachedPoints += t.marking.points();
}
}
final StringBuffer failBuffer = new StringBuffer();
for (final Entry<String, List<TestResult>> failEntries: failedByDescription.entrySet()) {
for (final TestResult t : failEntries.getValue()) {
failedTests++;
reachablePoints += t.marking.points();
failBuffer.append(" -" + t.testMethodDisplayName + "\n");
}
}
final StringBuffer buffer = new StringBuffer();
buffer.append("You have reached " + reachedPoints + " of "
+ reachablePoints + " possible points in "
+ successfulTests + " successful tests\n");
if (1 == failedTests) {
buffer.append("\n\nThe following test still fails:\n");
} else if (1 < failedTests) {
buffer.append("\n\nThe following " + failedTests
+ " tests still fail:\n");
}
buffer.append(failBuffer + "\n");
return buffer.toString();
}
}
\ No newline at end of file
package de.hdm_stuttgart.mi.bitte_ignorieren;
import org.junit.runner.Description;
public class TestResult {
public final Description testMethodDisplayName;
public final Marking marking;
public final boolean success;
public TestResult(final Description testMethodDisplayName,
final Marking marking,
final boolean success) {
this.testMethodDisplayName = testMethodDisplayName;
this.marking = marking;
this.success = success;
}
}
package de.hdm_stuttgart.mi.bitte_ignorieren.eval;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import de.hdm_stuttgart.mi.bitte_ignorieren.MarkingTest;
import de.hdm_stuttgart.sw1.klausur.test.Test_MorseExceptions;
import de.hdm_stuttgart.sw1.klausur.test.Test_StringTransforms;
@RunWith(Suite.class)
@Suite.SuiteClasses({
Test_StringTransforms.class,
Test_MorseExceptions.class,
})
public class Aufgabe {
@BeforeClass public static void init() {
MarkingTest.provideExtraInfo = true;
}
@AfterClass public static void showResults() {
System.out.println("---final------------------");
System.out.println(MarkingTest.globalresultCollector.toString());
}
}
package de.hdm_stuttgart.sw1.klausur.test;
import de.hdm_stuttgart.mi.exam.unitmarking.RunTests;
public class GetMarks {
public static void main(String[] args) {
RunTests.exec(Test_StringTransforms.class, Test_MorseExceptions.class);
}
}
package de.hdm_stuttgart.sw1.klausur.test; package de.hdm_stuttgart.sw1.klausur.test;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.Timeout;
import de.hdm_stuttgart.mi.exam.unitmarking.Marking;
import de.hdm_stuttgart.mi.bitte_ignorieren.Marking;
import de.hdm_stuttgart.mi.bitte_ignorieren.MarkingTest;
import static de.hdm_stuttgart.sw1.klausur.StringTransforms.morsen; import static de.hdm_stuttgart.sw1.klausur.StringTransforms.morsen;
@SuppressWarnings({"static-method", "javadoc"}) @SuppressWarnings({"static-method", "javadoc"})
public class Test_MorseExceptions extends MarkingTest { public class Test_MorseExceptions {
@Rule // Kill test if lasting longer than 1000 milliseconds
public Timeout globalTimeout = Timeout.seconds(1);
@Test @Test
@Marking(points=5) @Marking(points=5)
public void morsen_Exception () { public void morsen_Exception () {
......
package de.hdm_stuttgart.sw1.klausur.test; package de.hdm_stuttgart.sw1.klausur.test;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.Timeout;
import de.hdm_stuttgart.mi.exam.unitmarking.Marking;
import de.hdm_stuttgart.mi.bitte_ignorieren.Marking;
import de.hdm_stuttgart.mi.bitte_ignorieren.MarkingTest;
import static de.hdm_stuttgart.sw1.klausur.StringTransforms.chinesischerAkzent; import static de.hdm_stuttgart.sw1.klausur.StringTransforms.chinesischerAkzent;
import static de.hdm_stuttgart.sw1.klausur.StringTransforms.entferneVokale; import static de.hdm_stuttgart.sw1.klausur.StringTransforms.entferneVokale;
import static de.hdm_stuttgart.sw1.klausur.StringTransforms.morsen; import static de.hdm_stuttgart.sw1.klausur.StringTransforms.morsen;
@SuppressWarnings({"static-method", "javadoc"}) @SuppressWarnings({"javadoc"})
public class Test_StringTransforms extends MarkingTest { public class Test_StringTransforms {
@Rule // Kill test if lasting longer than 1000 milliseconds
public Timeout globalTimeout = Timeout.seconds(1);
// Tests zu chinesischerAkzent(final String input) // Tests zu chinesischerAkzent(final String input)
// //
......
...@@ -13,6 +13,14 @@ ...@@ -13,6 +13,14 @@
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<repositories>
<repository>
<id>hdm-mi-internal-maven-repo</id>
<url>https://maven.mi.hdm-stuttgart.de/artifacts</url>
</repository>
</repositories>
<build> <build>
<plugins> <plugins>
......
...@@ -3,29 +3,22 @@ ...@@ -3,29 +3,22 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.hdm-stuttgart.sw1.klausur</groupId> <groupId>de.hdm-stuttgart.sw1.klausur</groupId>
<artifactId>sw1_ws2015</artifactId> <artifactId>sw1_2015winter</artifactId>
<version>0.9</version> <version>0.9</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>sw1_ws2015</name> <name>sw1_2015winter</name>
<url>http://maven.apache.org</url> <url>https://freedocs.mi.hdm-stuttgart.de</url>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<repositories> <repositories>
<repository> <repository>
<releases> <id>hdm-mi-internal-maven-repo</id>
<enabled>true</enabled> <url>https://maven.mi.hdm-stuttgart.de/artifacts</url>
<updatePolicy>always</updatePolicy> </repository>
<checksumPolicy>fail</checksumPolicy>
</releases>
<id>YourId</id>
<name>YourName</name>
<url>https://maven.mi.hdm-stuttgart.de/artifacts</url>
<layout>default</layout>
</repository>
</repositories> </repositories>
<build> <build>
...@@ -56,7 +49,7 @@ ...@@ -56,7 +49,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version> <version>2.4.3</version>
<executions> <executions>
<execution> <execution>
<phase>package</phase> <phase>package</phase>
...@@ -78,7 +71,7 @@ ...@@ -78,7 +71,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <version>3.5.1</version>
<configuration> <configuration>
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
...@@ -92,7 +85,7 @@ ...@@ -92,7 +85,7 @@
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>4.11</version> <version>4.12</version>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -12,7 +12,7 @@ import static de.hdm_stuttgart.sw1.klausur.Helper.*; ...@@ -12,7 +12,7 @@ import static de.hdm_stuttgart.sw1.klausur.Helper.*;
public class Test_Helper { public class Test_Helper {
@Rule // Kill test if lasting longer than 1000 milliseconds @Rule // Kill test if lasting longer than 1000 milliseconds
public Timeout globalTimeout = new Timeout(1000); public Timeout globalTimeout = Timeout.seconds(1);
// Abschnitt getHaeufigkeit // Abschnitt getHaeufigkeit
@Test @Test
......
...@@ -13,7 +13,7 @@ import de.hdm_stuttgart.mi.exam.unitmarking.Marking; ...@@ -13,7 +13,7 @@ import de.hdm_stuttgart.mi.exam.unitmarking.Marking;
public class Test_SpielNaechsteRunde { public class Test_SpielNaechsteRunde {
@Rule // Kill test if lasting longer than 1000 milliseconds @Rule // Kill test if lasting longer than 1000 milliseconds
public Timeout globalTimeout = new Timeout(1000); public Timeout globalTimeout = Timeout.seconds(1);
@Test @Test
public void nullBehandlung () { public void nullBehandlung () {
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.hdm-stuttgart.sw1.klausur</groupId> <groupId>de.hdm-stuttgart.sw1.klausur</groupId>
<artifactId>sw1Solution</artifactId> <artifactId>sw1_2015winter_solve</artifactId>
<version>0.9</version> <version>0.9</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>sw1Solution</name> <name>sw1_2015winter_solve</name>
<url>http://maven.apache.org</url> <url>https://freedocs.mi.hdm-stuttgart.de</url>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version> <version>2.4.3</version>
<executions> <executions>
<execution> <execution>
<phase>package</phase> <phase>package</phase>
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <version>3.5.1</version>
<configuration> <configuration>
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment