From 139dc943c3b64e48e487b64f7dbf693e2f8e764c Mon Sep 17 00:00:00 2001 From: - <-> Date: Thu, 14 Mar 2019 16:58:17 -0600 Subject: [PATCH 1/8] PAN-16 finished --- build.gradle | 142 +-------- gradlew~Stashed changes | 295 ++++++++---------- ...damonium-theorem-prover.main.kotlin_module | Bin 16 -> 0 bytes persistence/build.gradle | 6 +- services/build.gradle | 6 +- .../msudenver/tsp/website/Application.java | 17 +- .../msudenver/tsp/website/ProofsDriver.java | 1 + .../tsp/website/TheoremEntryController.java | 43 +++ .../msudenver/tsp/website/forms/Theorem.java | 19 ++ .../tsp/website/service/ProofDriver.java | 16 + src/main/resources/application.properties | 2 + src/main/webapp/WEB-INF/jsp/Theorem.jsp | 15 + src/main/webapp/WEB-INF/jsp/success.jsp | 6 + src/main/webapp/WEB-INF/jsp/welcome.jsp | 12 + src/main/webapp/index.jsp | 16 - utilities/build.gradle | 6 +- 16 files changed, 275 insertions(+), 327 deletions(-) delete mode 100644 out/production/classes/META-INF/edu.msudenver.tsp.pandamonium-theorem-prover.main.kotlin_module create mode 100644 src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java create mode 100644 src/main/java/edu/msudenver/tsp/website/forms/Theorem.java create mode 100644 src/main/java/edu/msudenver/tsp/website/service/ProofDriver.java create mode 100644 src/main/resources/application.properties create mode 100644 src/main/webapp/WEB-INF/jsp/Theorem.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/success.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/welcome.jsp delete mode 100644 src/main/webapp/index.jsp diff --git a/build.gradle b/build.gradle index 6690226..4e8c15d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,97 +1,23 @@ buildscript { + ext { + springBootVersion = '1.4.3.RELEASE' + } repositories { mavenCentral() } dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE") + classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } -plugins { - id 'groovy' - id 'java' - id 'org.jetbrains.kotlin.jvm' version '1.3.11' - id 'net.ltgt.apt' version '0.10' - id "org.sonarqube" version "2.6" - id 'org.unbroken-dome.test-sets' version '1.4.5' - id 'war' -} - +apply plugin: 'java' +apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' -description = 'Pandamonium Theorem Prover' - -group 'edu.msudenver.tsp' -version '1.0' - -ext['slf4j.version'] = '1.7.22' -ext['classmate.version'] = '1.3.1' -ext['joda-time.version'] = '2.9.7' - -def branch = 'git symbolic-ref --short HEAD'.execute().text.trim() - -sonarqube { - properties { - property "sonar.projectName", 'Pandamonium Theorem Prover' - } +jar { + baseName = 'boot-gradle' + version = '0.0.1-SNAPSHOT' } - -allprojects { - sonarqube { - properties { - property "sonar.host.url", "https://sonarcloud.io" - property "sonar.projectKey", "atusa17_ptp" - property "sonar.organization", "atusa17-github" - property "sonar.login", "9dcc611cd79f175459248b053b25450e36e38463" - } - } - apply plugin: 'java' - apply plugin: 'jacoco' - apply plugin: 'org.unbroken-dome.test-sets' - apply plugin: 'idea' - apply plugin: 'io.spring.dependency-management' -} - -subprojects { - apply plugin: 'java' - repositories { - mavenCentral() - } - - dependencies { - compile 'org.apache.commons:commons-lang3:3.5' - // The production code uses the SLF4J logging API at compile time - compile 'org.slf4j:slf4j-api:1.7.21' - compile "joda-time:joda-time:2.2" - compile('org.springframework:spring-context:5.0.9.RELEASE') - - compileOnly 'org.projectlombok:lombok:1.18.4' - - testCompile group: 'junit', name: 'junit', version: '4.11' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} - - } - - test { - if (System.properties['test.profile'] != 'integrationTest') { - exclude '**/*integrationTest*' - } else { - exclude '**/*edu/*' - } - } - - testSets { - unitTest - integrationTest - } -} - -bootJar { - baseName = 'gs-spring-boot' - version = '0.1.0' -} - sourceCompatibility = 1.8 targetCompatibility = 1.8 @@ -99,51 +25,9 @@ repositories { mavenCentral() } + dependencies { - compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" - compile 'org.codehaus.groovy:groovy-all:2.3.11' - compile 'org.apache.commons:commons-lang3:3.5' - // The production code uses the SLF4J logging API at compile time - compile 'org.slf4j:slf4j-api:1.7.22' - compile "joda-time:joda-time:2.2" - compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.5.RELEASE' - - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile "org.springframework:spring-test:5.0.9.RELEASE" - testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} - - compileOnly 'org.projectlombok:lombok:1.18.4' - - apt 'org.projectlombok:lombok:1.18.4' -} - -project(':persistence') { - dependencies { - compile project(':utilities') - } -} - -test { - if (System.properties['test.profile'] != 'integrationTest') { - exclude '**/*integrationTest*' - } else { - exclude '**/*edu/*' - } -} - -testSets { - unitTest - integrationTest -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" -} - -wrapper { - gradleVersion = '5.2.1' - distributionType = Wrapper.DistributionType.ALL + compile('org.springframework.boot:spring-boot-starter-web','org.apache.tomcat.embed:tomcat-embed-jasper' + ,'javax.servlet:jstl') + testCompile('org.springframework.boot:spring-boot-starter-test') } \ No newline at end of file diff --git a/gradlew~Stashed changes b/gradlew~Stashed changes index 4453cce..6690226 100755 --- a/gradlew~Stashed changes +++ b/gradlew~Stashed changes @@ -1,172 +1,149 @@ -#!/usr/bin/env sh - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE") + } } -die ( ) { - echo - echo "$*" - echo - exit 1 +plugins { + id 'groovy' + id 'java' + id 'org.jetbrains.kotlin.jvm' version '1.3.11' + id 'net.ltgt.apt' version '0.10' + id "org.sonarqube" version "2.6" + id 'org.unbroken-dome.test-sets' version '1.4.5' + id 'war' } -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac +apply plugin: 'org.springframework.boot' -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +description = 'Pandamonium Theorem Prover' -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME +group 'edu.msudenver.tsp' +version '1.0' -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +ext['slf4j.version'] = '1.7.22' +ext['classmate.version'] = '1.3.1' +ext['joda-time.version'] = '2.9.7' -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi +def branch = 'git symbolic-ref --short HEAD'.execute().text.trim() -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save ( ) { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " +sonarqube { + properties { + property "sonar.projectName", 'Pandamonium Theorem Prover' + } } -APP_ARGS=$(save "$@") -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +allprojects { + sonarqube { + properties { + property "sonar.host.url", "https://sonarcloud.io" + property "sonar.projectKey", "atusa17_ptp" + property "sonar.organization", "atusa17-github" + property "sonar.login", "9dcc611cd79f175459248b053b25450e36e38463" + } + } + apply plugin: 'java' + apply plugin: 'jacoco' + apply plugin: 'org.unbroken-dome.test-sets' + apply plugin: 'idea' + apply plugin: 'io.spring.dependency-management' +} -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi +subprojects { + apply plugin: 'java' + repositories { + mavenCentral() + } -exec "$JAVACMD" "$@" + dependencies { + compile 'org.apache.commons:commons-lang3:3.5' + // The production code uses the SLF4J logging API at compile time + compile 'org.slf4j:slf4j-api:1.7.21' + compile "joda-time:joda-time:2.2" + compile('org.springframework:spring-context:5.0.9.RELEASE') + + compileOnly 'org.projectlombok:lombok:1.18.4' + + testCompile group: 'junit', name: 'junit', version: '4.11' + testCompile group: 'junit', name: 'junit', version: '4.12' + testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} + + } + + test { + if (System.properties['test.profile'] != 'integrationTest') { + exclude '**/*integrationTest*' + } else { + exclude '**/*edu/*' + } + } + + testSets { + unitTest + integrationTest + } +} + +bootJar { + baseName = 'gs-spring-boot' + version = '0.1.0' +} + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +repositories { + mavenCentral() +} + +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" + compile 'org.codehaus.groovy:groovy-all:2.3.11' + compile 'org.apache.commons:commons-lang3:3.5' + // The production code uses the SLF4J logging API at compile time + compile 'org.slf4j:slf4j-api:1.7.22' + compile "joda-time:joda-time:2.2" + compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.5.RELEASE' + + testCompile group: 'junit', name: 'junit', version: '4.12' + testCompile "org.springframework:spring-test:5.0.9.RELEASE" + testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} + + compileOnly 'org.projectlombok:lombok:1.18.4' + + apt 'org.projectlombok:lombok:1.18.4' +} + +project(':persistence') { + dependencies { + compile project(':utilities') + } +} + +test { + if (System.properties['test.profile'] != 'integrationTest') { + exclude '**/*integrationTest*' + } else { + exclude '**/*edu/*' + } +} + +testSets { + unitTest + integrationTest +} + +compileKotlin { + kotlinOptions.jvmTarget = "1.8" +} +compileTestKotlin { + kotlinOptions.jvmTarget = "1.8" +} + +wrapper { + gradleVersion = '5.2.1' + distributionType = Wrapper.DistributionType.ALL +} \ No newline at end of file diff --git a/out/production/classes/META-INF/edu.msudenver.tsp.pandamonium-theorem-prover.main.kotlin_module b/out/production/classes/META-INF/edu.msudenver.tsp.pandamonium-theorem-prover.main.kotlin_module deleted file mode 100644 index 8fb60192d378759239a3ecbf60eac8c8de446e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 RcmZQzU|?ooU|@t|UH|}6022TJ diff --git a/persistence/build.gradle b/persistence/build.gradle index b832e7e..52341ee 100644 --- a/persistence/build.gradle +++ b/persistence/build.gradle @@ -9,11 +9,7 @@ version '1.0' sourceCompatibility = 1.8 -sonarqube { - properties { - property "sonar.projectName", 'Pandamonium Persistence Tier' - } -} + repositories { mavenCentral() diff --git a/services/build.gradle b/services/build.gradle index 05efbeb..ff4cffd 100644 --- a/services/build.gradle +++ b/services/build.gradle @@ -7,11 +7,7 @@ version '1.0' sourceCompatibility = 1.8 -sonarqube { - properties { - property "sonar.projectName", 'Theorem Prover Services' - } -} + repositories { mavenCentral() diff --git a/src/main/java/edu/msudenver/tsp/website/Application.java b/src/main/java/edu/msudenver/tsp/website/Application.java index c8f0854..1d5b42e 100644 --- a/src/main/java/edu/msudenver/tsp/website/Application.java +++ b/src/main/java/edu/msudenver/tsp/website/Application.java @@ -1,23 +1,21 @@ package edu.msudenver.tsp.website; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.CommandLineRunner; + import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import java.util.Arrays; -@Slf4j +//import lombok.extern.slf4j.Slf4j; + @SpringBootApplication public class Application { public static void main(final String[] args) { SpringApplication.run(Application.class, args); } +} - @Bean + /*@Bean public CommandLineRunner commandLineRunner(final ApplicationContext ctx) { return args -> { @@ -28,6 +26,9 @@ public class Application { for (final String beanName : beanNames) { LOG.info(beanName); } - }; + } } } +*/ + + diff --git a/src/main/java/edu/msudenver/tsp/website/ProofsDriver.java b/src/main/java/edu/msudenver/tsp/website/ProofsDriver.java index a6d4715..a8a5de0 100644 --- a/src/main/java/edu/msudenver/tsp/website/ProofsDriver.java +++ b/src/main/java/edu/msudenver/tsp/website/ProofsDriver.java @@ -1,4 +1,5 @@ package edu.msudenver.tsp.website; public class ProofsDriver { + //Business Logic will go here } diff --git a/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java b/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java new file mode 100644 index 0000000..c62f84a --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java @@ -0,0 +1,43 @@ +package edu.msudenver.tsp.website; + +import edu.msudenver.tsp.website.forms.Theorem; +import edu.msudenver.tsp.website.service.ProofDriver; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + + +@Controller +public class TheoremEntryController { + + @Autowired + ProofDriver proofDriver; + + @RequestMapping("/welcome") + public ModelAndView firstPage() + { + return new ModelAndView("welcome"); + } + + @RequestMapping("/theorem") + public ModelAndView theoremPage() + { + return new ModelAndView("Theorem"); + } + + + @RequestMapping(value = "/save", method = RequestMethod.POST) + public String saveTheorem(@Validated Theorem theorem, Model model) { + proofDriver.processProof(theorem.getTheoremName()); + model.addAttribute("theromName", theorem.getTheoremName()); + return "success"; + } + + +} + + diff --git a/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java b/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java new file mode 100644 index 0000000..07524df --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java @@ -0,0 +1,19 @@ +package edu.msudenver.tsp.website.forms; + +public class Theorem { + private String theoremName ; + + + public String getTheoremName() { + return theoremName; + } + + public void setTheoremName(String theoremName) { + this.theoremName = theoremName; + } + + + + + +} diff --git a/src/main/java/edu/msudenver/tsp/website/service/ProofDriver.java b/src/main/java/edu/msudenver/tsp/website/service/ProofDriver.java new file mode 100644 index 0000000..b95c206 --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/service/ProofDriver.java @@ -0,0 +1,16 @@ +package edu.msudenver.tsp.website.service; + +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class ProofDriver { + List theromList = new ArrayList(); + public String processProof(String theoremName){ + //Business Logic + return theoremName + "Accepted"; + } + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..f3ce324 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,2 @@ +spring.mvc.view.prefix:/WEB-INF/jsp/ +spring.mvc.view.suffix:.jsp \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/Theorem.jsp b/src/main/webapp/WEB-INF/jsp/Theorem.jsp new file mode 100644 index 0000000..d9f580b --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/Theorem.jsp @@ -0,0 +1,15 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +Theroem Page + + +
+Enter Theroem Name
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/success.jsp b/src/main/webapp/WEB-INF/jsp/success.jsp new file mode 100644 index 0000000..6919cde --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/success.jsp @@ -0,0 +1,6 @@ + + +Name:<%= request.getParameter("theoremName")%> + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/welcome.jsp b/src/main/webapp/WEB-INF/jsp/welcome.jsp new file mode 100644 index 0000000..c3d088f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/welcome.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + Guru Success Page + + +Welcome User!!!! + + \ No newline at end of file diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp deleted file mode 100644 index f8d618c..0000000 --- a/src/main/webapp/index.jsp +++ /dev/null @@ -1,16 +0,0 @@ -<%-- - Created by IntelliJ IDEA. - User: atusa - Date: 2/1/19 - Time: 8:03 PM - To change this template use File | Settings | File Templates. ---%> -<%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - $Title$ - - - $END$ - - diff --git a/utilities/build.gradle b/utilities/build.gradle index b9e2ce9..24beb45 100644 --- a/utilities/build.gradle +++ b/utilities/build.gradle @@ -7,11 +7,7 @@ version '1.0' sourceCompatibility = 1.8 -sonarqube { - properties { - property "sonar.projectName", 'Parsing and Proofs Utilities' - } -} + repositories { mavenCentral() From c45c0a61080487efdcc2f3ab20df07f5e4f4565e Mon Sep 17 00:00:00 2001 From: - <-> Date: Thu, 14 Mar 2019 17:04:10 -0600 Subject: [PATCH 2/8] add to PAN-16 --- .../resources/application.properties | 2 + .../persistence/TheoremsIntegrationTest.java | 84 +++++ .../tsp/persistence/dto/TheoremType.java | 5 + .../controller/TheoremControllerTest.java | 314 ++++++++++++++++++ src/main/webapp/index.jsp | 16 + 5 files changed, 421 insertions(+) create mode 100644 out/production/resources/application.properties create mode 100644 persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/TheoremsIntegrationTest.java create mode 100644 persistence/src/main/java/edu/msudenver/tsp/persistence/dto/TheoremType.java create mode 100644 persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java create mode 100644 src/main/webapp/index.jsp diff --git a/out/production/resources/application.properties b/out/production/resources/application.properties new file mode 100644 index 0000000..f3ce324 --- /dev/null +++ b/out/production/resources/application.properties @@ -0,0 +1,2 @@ +spring.mvc.view.prefix:/WEB-INF/jsp/ +spring.mvc.view.suffix:.jsp \ No newline at end of file diff --git a/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/TheoremsIntegrationTest.java b/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/TheoremsIntegrationTest.java new file mode 100644 index 0000000..a6109f2 --- /dev/null +++ b/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/TheoremsIntegrationTest.java @@ -0,0 +1,84 @@ +package edu.msudenver.tsp.persistence; + +import edu.msudenver.tsp.persistence.dto.TheoremDto; +import edu.msudenver.tsp.persistence.dto.TheoremType; +import edu.msudenver.tsp.persistence.repository.TheoremRepository; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import static org.junit.Assert.*; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = PersistenceTestConfig.class) +public class TheoremsIntegrationTest { + @Autowired private TheoremRepository theoremRepository; + + @Test + public void testCRUDFunctionality() { + final TheoremDto theoremDto = createTheorem(); + final TheoremDto savedTheorem = theoremRepository.save(theoremDto); + + assertNotNull(savedTheorem); + assertEquals(Integer.valueOf(0), savedTheorem.getVersion()); + + final int id = savedTheorem.getId(); + + assertEquals("Test theorem", savedTheorem.getName()); + assertEquals("Test branch", savedTheorem.getBranch()); + assertTrue(savedTheorem.getProvenStatus()); + assertEquals(2, savedTheorem.getReferencedTheorems().size()); + assertEquals(2, savedTheorem.getReferencedDefinitions().size()); + assertEquals("test theorem 1", savedTheorem.getReferencedTheorems().get(0)); + assertEquals("test theorem 2", savedTheorem.getReferencedTheorems().get(1)); + assertEquals("test definition 1", savedTheorem.getReferencedDefinitions().get(0)); + assertEquals("test definition 2", savedTheorem.getReferencedDefinitions().get(1)); + + savedTheorem.setBranch("Test Update"); + + final TheoremDto updatedTheorem = theoremRepository.save(savedTheorem); + + assertNotNull(updatedTheorem); + assertEquals(Integer.valueOf(0), updatedTheorem.getVersion()); + assertEquals("Test theorem", updatedTheorem.getName()); + assertEquals("Test Update", updatedTheorem.getBranch()); + assertTrue(updatedTheorem.getProvenStatus()); + assertEquals(2, updatedTheorem.getReferencedTheorems().size()); + assertEquals(2, updatedTheorem.getReferencedDefinitions().size()); + assertEquals("test theorem 1", updatedTheorem.getReferencedTheorems().get(0)); + assertEquals("test theorem 2", updatedTheorem.getReferencedTheorems().get(1)); + assertEquals("test definition 1", updatedTheorem.getReferencedDefinitions().get(0)); + assertEquals("test definition 2", updatedTheorem.getReferencedDefinitions().get(1)); + assertEquals(updatedTheorem.getId(), id); + + theoremRepository.delete(theoremDto); + final Optional deletedTheorem = theoremRepository.findById(id); + assertFalse(deletedTheorem.isPresent()); + } + + private TheoremDto createTheorem() { + final List referencedTheoremsList = new ArrayList<>(); + referencedTheoremsList.add("test theorem 1"); + referencedTheoremsList.add("test theorem 2"); + + final List referencedDefinitionsList = new ArrayList<>(); + referencedDefinitionsList.add("test definition 1"); + referencedDefinitionsList.add("test definition 2"); + + final TheoremDto theoremDto = new TheoremDto(); + theoremDto.setName("Test theorem"); + theoremDto.setBranch("Test branch"); + theoremDto.setProvenStatus(true); + theoremDto.setTheoremType(TheoremType.THEOREM); + theoremDto.setReferencedTheorems(referencedTheoremsList); + theoremDto.setReferencedDefinitions(referencedDefinitionsList); + + return theoremDto; + } +} diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/TheoremType.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/TheoremType.java new file mode 100644 index 0000000..c69b4e7 --- /dev/null +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/TheoremType.java @@ -0,0 +1,5 @@ +package edu.msudenver.tsp.persistence.dto; + +public enum TheoremType { + THEOREM, PROPOSITION, LEMMA, COROLLARY +} diff --git a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java new file mode 100644 index 0000000..f3993cc --- /dev/null +++ b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java @@ -0,0 +1,314 @@ +package edu.msudenver.tsp.persistence.controller; + +import edu.msudenver.tsp.persistence.dto.TheoremDto; +import edu.msudenver.tsp.persistence.dto.TheoremType; +import edu.msudenver.tsp.persistence.repository.TheoremRepository; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +import static junit.framework.TestCase.assertTrue; +import static org.junit.Assert.*; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.*; + +@RunWith(MockitoJUnitRunner.class) +@WebMvcTest(controllers = TheoremController.class) +public class TheoremControllerTest { + @Mock private TheoremRepository theoremRepository; + @InjectMocks private TheoremController theoremController; + @Mock private BindingResult bindingResult; + + @Test + public void testGetAllTheorems() { + final TheoremDto theoremDto = createTheorem(); + final List listOfTheorems = new ArrayList<>(); + listOfTheorems.add(theoremDto); + listOfTheorems.add(theoremDto); + + when(theoremRepository.findAll()).thenReturn(listOfTheorems); + + final ResponseEntity> responseEntity = theoremController.getAllTheorems(); + + assertNotNull(responseEntity); + assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); + assertTrue(responseEntity.hasBody()); + assertNotNull(responseEntity.getBody()); + + responseEntity.getBody().forEach(theorem -> assertEquals(theoremDto, theorem)); + } + + @Test + public void testGetTheoremById() { + final TheoremDto theoremDto = createTheorem(); + when(theoremRepository.findById(anyInt())).thenReturn(Optional.ofNullable(theoremDto)); + + final ResponseEntity responseEntity = theoremController.getTheoremById(1); + + assertNotNull(responseEntity); + assertTrue(responseEntity.hasBody()); + assertNotNull(responseEntity.getBody()); + assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); + assertEquals(theoremDto, responseEntity.getBody()); + verify(theoremRepository).findById(anyInt()); + } + + @Test + public void testGetTheoremById_nullId() { + final ResponseEntity responseEntity = theoremController.getTheoremById(null); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.BAD_REQUEST, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + @Test + public void testGetTheoremById_noTheoremFound() { + when(theoremRepository.findById(anyInt())).thenReturn(Optional.empty()); + + final ResponseEntity responseEntity = theoremController.getTheoremById(1); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.NOT_FOUND, responseEntity.getStatusCode()); + verify(theoremRepository).findById(anyInt()); + } + + @Test + public void testGetAllTheoremsByBranch() { + final TheoremDto theoremDto = createTheorem(); + final List listOfTheorems = new ArrayList<>(); + listOfTheorems.add(theoremDto); + listOfTheorems.add(theoremDto); + + when(theoremRepository.findByBranch(anyString())).thenReturn(listOfTheorems); + + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByBranch("test"); + + assertNotNull(responseEntity); + assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); + assertTrue(responseEntity.hasBody()); + assertNotNull(responseEntity.getBody()); + + responseEntity.getBody().forEach(theorem -> assertEquals(theoremDto, theorem)); + } + + @Test + public void testGetAllTheoremsByBranch_nullBranch() { + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByBranch(null); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.BAD_REQUEST, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + @Test + public void testGetAllTheoremsByBranch_noTheoremsFound() { + when(theoremRepository.findByBranch(anyString())).thenReturn(Collections.emptyList()); + + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByBranch("test nonexistent branch"); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.NOT_FOUND, responseEntity.getStatusCode()); + } + + @Test + public void testGetAllTheoremsByProvenStatus() { + final TheoremDto theoremDto = createTheorem(); + final List listOfTheorems = new ArrayList<>(); + listOfTheorems.add(theoremDto); + listOfTheorems.add(theoremDto); + + when(theoremRepository.findByProvenStatus(anyBoolean())).thenReturn(listOfTheorems); + + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByProvenStatus(true); + + assertNotNull(responseEntity); + assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); + assertTrue(responseEntity.hasBody()); + assertNotNull(responseEntity.getBody()); + + responseEntity.getBody().forEach(theorem -> assertEquals(theoremDto, theorem)); + } + + @Test + public void testGetAllTheoremsByProvenStatus_nullProvenStatus() { + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByProvenStatus(null); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.BAD_REQUEST, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + @Test + public void testGetAllTheoremsByProvenStatus_noTheoremsFound() { + when(theoremRepository.findByProvenStatus(anyBoolean())).thenReturn(Collections.emptyList()); + + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByProvenStatus(false); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.NOT_FOUND, responseEntity.getStatusCode()); + } + + @Test + public void testInsertTheorem() { + final TheoremDto theoremDto = createTheorem(); + when(theoremRepository.save(any(TheoremDto.class))).thenReturn(theoremDto); + + final ResponseEntity responseEntity = theoremController.insertTheorem(theoremDto, bindingResult); + + assertNotNull(responseEntity); + assertTrue(responseEntity.hasBody()); + assertNotNull(responseEntity.getBody()); + assertEquals(HttpStatus.CREATED, responseEntity.getStatusCode()); + assertEquals(theoremDto, responseEntity.getBody()); + verify(theoremRepository).save(any(TheoremDto.class)); + } + + @Test + public void testInsertTheorem_theoremDtoIsNull() { + final ResponseEntity responseEntity = theoremController.insertTheorem(null, bindingResult); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.BAD_REQUEST, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + @Test + public void testInsertTheorem_bindingResultHasErrors() { + final TheoremDto theoremDto = createTheorem(); + when(bindingResult.hasErrors()).thenReturn(true); + + final ResponseEntity responseEntity = theoremController.insertTheorem(theoremDto, bindingResult); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.UNPROCESSABLE_ENTITY, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + @Test + public void testUpdateTheorem() { + final TheoremDto existingTheorem = createTheorem(); + existingTheorem.setId(1); + existingTheorem.setVersion(1); + final TheoremDto theoremUpdate = new TheoremDto(); + theoremUpdate.setName("Test Update"); + final TheoremDto updatedTheorem = existingTheorem; + updatedTheorem.setName("Test Update"); + when(theoremRepository.findById(anyInt())).thenReturn(Optional.of(existingTheorem)); + when(theoremRepository.save(any(TheoremDto.class))).thenReturn(updatedTheorem); + + final ResponseEntity responseEntity = theoremController.updateTheorem(1, theoremUpdate, bindingResult); + + assertNotNull(responseEntity); + assertTrue(responseEntity.hasBody()); + assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); + assertEquals(updatedTheorem, responseEntity.getBody()); + verify(theoremRepository).findById(anyInt()); + verify(theoremRepository).save(any(TheoremDto.class)); + } + + @Test + public void testUpdateTheorem_bindingResultHasErrors() { + when(bindingResult.hasErrors()).thenReturn(true); + + final ResponseEntity responseEntity = theoremController.updateTheorem(1, createTheorem(), bindingResult); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.UNPROCESSABLE_ENTITY, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + @Test + public void testUpdateTheorem_theoremDtoIsNull() { + final ResponseEntity responseEntity = theoremController.updateTheorem(1, null, bindingResult); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.BAD_REQUEST, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + @Test + public void testUpdateTheorem_idIsNull() { + final ResponseEntity responseEntity = theoremController.updateTheorem(null, createTheorem(), bindingResult); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.BAD_REQUEST, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + @Test + public void testUpdateTheorem_theoremDoesNotExist() { + when(theoremRepository.findById(anyInt())).thenReturn(Optional.empty()); + + final ResponseEntity responseEntity = theoremController.updateTheorem(1, createTheorem(), bindingResult); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.BAD_REQUEST, responseEntity.getStatusCode()); + verify(theoremRepository, times(0)).save(any(TheoremDto.class)); + } + + @Test + public void testDeleteTheoremById() { + doNothing().when(theoremRepository).deleteById(anyInt()); + + final ResponseEntity responseEntity = theoremController.deleteTheoremById(1); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.NO_CONTENT, responseEntity.getStatusCode()); + verify(theoremRepository).deleteById(anyInt()); + } + + @Test + public void testDeleteTheoremById_idIsNull() { + final ResponseEntity responseEntity = theoremController.deleteTheoremById(null); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.BAD_REQUEST, responseEntity.getStatusCode()); + verifyZeroInteractions(theoremRepository); + } + + private TheoremDto createTheorem() { + final List referencedTheoremsList = new ArrayList<>(); + referencedTheoremsList.add("test theorem 1"); + referencedTheoremsList.add("test theorem 2"); + + final List referencedDefinitionsList = new ArrayList<>(); + referencedDefinitionsList.add("test definition 1"); + referencedDefinitionsList.add("test definition 2"); + + final TheoremDto theoremDto = new TheoremDto(); + theoremDto.setName("Test theorem"); + theoremDto.setBranch("Test branch"); + theoremDto.setProvenStatus(true); + theoremDto.setTheoremType(TheoremType.THEOREM); + theoremDto.setReferencedTheorems(referencedTheoremsList); + theoremDto.setReferencedDefinitions(referencedDefinitionsList); + + return theoremDto; + } +} \ No newline at end of file diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp new file mode 100644 index 0000000..f8d618c --- /dev/null +++ b/src/main/webapp/index.jsp @@ -0,0 +1,16 @@ +<%-- + Created by IntelliJ IDEA. + User: atusa + Date: 2/1/19 + Time: 8:03 PM + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + $Title$ + + + $END$ + + From 401383f5da30a076b019935d9e3f507255750665 Mon Sep 17 00:00:00 2001 From: Alex Tusa <41128169+atusa17@users.noreply.github.com> Date: Thu, 14 Mar 2019 20:45:56 -0600 Subject: [PATCH 3/8] Delete gradlew~Stashed changes --- gradlew~Stashed changes | 149 ---------------------------------------- 1 file changed, 149 deletions(-) delete mode 100755 gradlew~Stashed changes diff --git a/gradlew~Stashed changes b/gradlew~Stashed changes deleted file mode 100755 index 6690226..0000000 --- a/gradlew~Stashed changes +++ /dev/null @@ -1,149 +0,0 @@ -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE") - } -} - -plugins { - id 'groovy' - id 'java' - id 'org.jetbrains.kotlin.jvm' version '1.3.11' - id 'net.ltgt.apt' version '0.10' - id "org.sonarqube" version "2.6" - id 'org.unbroken-dome.test-sets' version '1.4.5' - id 'war' -} - -apply plugin: 'org.springframework.boot' - -description = 'Pandamonium Theorem Prover' - -group 'edu.msudenver.tsp' -version '1.0' - -ext['slf4j.version'] = '1.7.22' -ext['classmate.version'] = '1.3.1' -ext['joda-time.version'] = '2.9.7' - -def branch = 'git symbolic-ref --short HEAD'.execute().text.trim() - -sonarqube { - properties { - property "sonar.projectName", 'Pandamonium Theorem Prover' - } -} - -allprojects { - sonarqube { - properties { - property "sonar.host.url", "https://sonarcloud.io" - property "sonar.projectKey", "atusa17_ptp" - property "sonar.organization", "atusa17-github" - property "sonar.login", "9dcc611cd79f175459248b053b25450e36e38463" - } - } - apply plugin: 'java' - apply plugin: 'jacoco' - apply plugin: 'org.unbroken-dome.test-sets' - apply plugin: 'idea' - apply plugin: 'io.spring.dependency-management' -} - -subprojects { - apply plugin: 'java' - repositories { - mavenCentral() - } - - dependencies { - compile 'org.apache.commons:commons-lang3:3.5' - // The production code uses the SLF4J logging API at compile time - compile 'org.slf4j:slf4j-api:1.7.21' - compile "joda-time:joda-time:2.2" - compile('org.springframework:spring-context:5.0.9.RELEASE') - - compileOnly 'org.projectlombok:lombok:1.18.4' - - testCompile group: 'junit', name: 'junit', version: '4.11' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} - - } - - test { - if (System.properties['test.profile'] != 'integrationTest') { - exclude '**/*integrationTest*' - } else { - exclude '**/*edu/*' - } - } - - testSets { - unitTest - integrationTest - } -} - -bootJar { - baseName = 'gs-spring-boot' - version = '0.1.0' -} - -sourceCompatibility = 1.8 -targetCompatibility = 1.8 - -repositories { - mavenCentral() -} - -dependencies { - compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" - compile 'org.codehaus.groovy:groovy-all:2.3.11' - compile 'org.apache.commons:commons-lang3:3.5' - // The production code uses the SLF4J logging API at compile time - compile 'org.slf4j:slf4j-api:1.7.22' - compile "joda-time:joda-time:2.2" - compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.5.RELEASE' - - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile "org.springframework:spring-test:5.0.9.RELEASE" - testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} - - compileOnly 'org.projectlombok:lombok:1.18.4' - - apt 'org.projectlombok:lombok:1.18.4' -} - -project(':persistence') { - dependencies { - compile project(':utilities') - } -} - -test { - if (System.properties['test.profile'] != 'integrationTest') { - exclude '**/*integrationTest*' - } else { - exclude '**/*edu/*' - } -} - -testSets { - unitTest - integrationTest -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" -} - -wrapper { - gradleVersion = '5.2.1' - distributionType = Wrapper.DistributionType.ALL -} \ No newline at end of file From 0afe995950e608b89567d687f636191b25394c74 Mon Sep 17 00:00:00 2001 From: - <-> Date: Fri, 15 Mar 2019 01:44:51 -0600 Subject: [PATCH 4/8] Reverted build file changes --- build.gradle | 142 ++++++++++++++++-- persistence/build.gradle | 6 +- services/build.gradle | 8 +- .../msudenver/tsp/website/Application.java | 18 --- utilities/build.gradle | 6 +- 5 files changed, 145 insertions(+), 35 deletions(-) diff --git a/build.gradle b/build.gradle index 4e8c15d..6690226 100644 --- a/build.gradle +++ b/build.gradle @@ -1,23 +1,97 @@ buildscript { - ext { - springBootVersion = '1.4.3.RELEASE' - } repositories { mavenCentral() } dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") + classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE") } } -apply plugin: 'java' -apply plugin: 'eclipse' +plugins { + id 'groovy' + id 'java' + id 'org.jetbrains.kotlin.jvm' version '1.3.11' + id 'net.ltgt.apt' version '0.10' + id "org.sonarqube" version "2.6" + id 'org.unbroken-dome.test-sets' version '1.4.5' + id 'war' +} + apply plugin: 'org.springframework.boot' -jar { - baseName = 'boot-gradle' - version = '0.0.1-SNAPSHOT' +description = 'Pandamonium Theorem Prover' + +group 'edu.msudenver.tsp' +version '1.0' + +ext['slf4j.version'] = '1.7.22' +ext['classmate.version'] = '1.3.1' +ext['joda-time.version'] = '2.9.7' + +def branch = 'git symbolic-ref --short HEAD'.execute().text.trim() + +sonarqube { + properties { + property "sonar.projectName", 'Pandamonium Theorem Prover' + } } + +allprojects { + sonarqube { + properties { + property "sonar.host.url", "https://sonarcloud.io" + property "sonar.projectKey", "atusa17_ptp" + property "sonar.organization", "atusa17-github" + property "sonar.login", "9dcc611cd79f175459248b053b25450e36e38463" + } + } + apply plugin: 'java' + apply plugin: 'jacoco' + apply plugin: 'org.unbroken-dome.test-sets' + apply plugin: 'idea' + apply plugin: 'io.spring.dependency-management' +} + +subprojects { + apply plugin: 'java' + repositories { + mavenCentral() + } + + dependencies { + compile 'org.apache.commons:commons-lang3:3.5' + // The production code uses the SLF4J logging API at compile time + compile 'org.slf4j:slf4j-api:1.7.21' + compile "joda-time:joda-time:2.2" + compile('org.springframework:spring-context:5.0.9.RELEASE') + + compileOnly 'org.projectlombok:lombok:1.18.4' + + testCompile group: 'junit', name: 'junit', version: '4.11' + testCompile group: 'junit', name: 'junit', version: '4.12' + testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} + + } + + test { + if (System.properties['test.profile'] != 'integrationTest') { + exclude '**/*integrationTest*' + } else { + exclude '**/*edu/*' + } + } + + testSets { + unitTest + integrationTest + } +} + +bootJar { + baseName = 'gs-spring-boot' + version = '0.1.0' +} + sourceCompatibility = 1.8 targetCompatibility = 1.8 @@ -25,9 +99,51 @@ repositories { mavenCentral() } - dependencies { - compile('org.springframework.boot:spring-boot-starter-web','org.apache.tomcat.embed:tomcat-embed-jasper' - ,'javax.servlet:jstl') - testCompile('org.springframework.boot:spring-boot-starter-test') + compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" + compile 'org.codehaus.groovy:groovy-all:2.3.11' + compile 'org.apache.commons:commons-lang3:3.5' + // The production code uses the SLF4J logging API at compile time + compile 'org.slf4j:slf4j-api:1.7.22' + compile "joda-time:joda-time:2.2" + compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.5.RELEASE' + + testCompile group: 'junit', name: 'junit', version: '4.12' + testCompile "org.springframework:spring-test:5.0.9.RELEASE" + testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} + + compileOnly 'org.projectlombok:lombok:1.18.4' + + apt 'org.projectlombok:lombok:1.18.4' +} + +project(':persistence') { + dependencies { + compile project(':utilities') + } +} + +test { + if (System.properties['test.profile'] != 'integrationTest') { + exclude '**/*integrationTest*' + } else { + exclude '**/*edu/*' + } +} + +testSets { + unitTest + integrationTest +} + +compileKotlin { + kotlinOptions.jvmTarget = "1.8" +} +compileTestKotlin { + kotlinOptions.jvmTarget = "1.8" +} + +wrapper { + gradleVersion = '5.2.1' + distributionType = Wrapper.DistributionType.ALL } \ No newline at end of file diff --git a/persistence/build.gradle b/persistence/build.gradle index 52341ee..b832e7e 100644 --- a/persistence/build.gradle +++ b/persistence/build.gradle @@ -9,7 +9,11 @@ version '1.0' sourceCompatibility = 1.8 - +sonarqube { + properties { + property "sonar.projectName", 'Pandamonium Persistence Tier' + } +} repositories { mavenCentral() diff --git a/services/build.gradle b/services/build.gradle index ff4cffd..f63faa6 100644 --- a/services/build.gradle +++ b/services/build.gradle @@ -7,7 +7,11 @@ version '1.0' sourceCompatibility = 1.8 - +sonarqube { + properties { + property "sonar.projectName", 'Theorem Prover Services' + } +} repositories { mavenCentral() @@ -19,6 +23,6 @@ dependencies { compile group: 'org.apache.httpcomponents', name: 'fluent-hc', version: '4.5.7' compile group: 'com.google.code.gson', name: 'gson', version: '2.7' compile fileTree(dir: 'lib', include: '**/*.jar') - + testCompile group: 'junit', name: 'junit', version: '4.12' } diff --git a/src/main/java/edu/msudenver/tsp/website/Application.java b/src/main/java/edu/msudenver/tsp/website/Application.java index 1d5b42e..17154e8 100644 --- a/src/main/java/edu/msudenver/tsp/website/Application.java +++ b/src/main/java/edu/msudenver/tsp/website/Application.java @@ -4,9 +4,6 @@ package edu.msudenver.tsp.website; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; - -//import lombok.extern.slf4j.Slf4j; - @SpringBootApplication public class Application { @@ -15,20 +12,5 @@ public class Application { } } - /*@Bean - public CommandLineRunner commandLineRunner(final ApplicationContext ctx) { - return args -> { - - LOG.info("Beans provided by Spring Boot:"); - - final String[] beanNames = ctx.getBeanDefinitionNames(); - Arrays.sort(beanNames); - for (final String beanName : beanNames) { - LOG.info(beanName); - } - } - } -} -*/ diff --git a/utilities/build.gradle b/utilities/build.gradle index 24beb45..b9e2ce9 100644 --- a/utilities/build.gradle +++ b/utilities/build.gradle @@ -7,7 +7,11 @@ version '1.0' sourceCompatibility = 1.8 - +sonarqube { + properties { + property "sonar.projectName", 'Parsing and Proofs Utilities' + } +} repositories { mavenCentral() From 9f5d9e24f5641bf7f676e55432a51ddce5d88868 Mon Sep 17 00:00:00 2001 From: - <-> Date: Mon, 18 Mar 2019 13:52:01 -0600 Subject: [PATCH 5/8] made few changes also adding test method --- build.gradle | 4 ++++ .../msudenver/tsp/website/Application.java | 14 ++++++++++++++ .../msudenver/tsp/website/ProofsDriver.java | 5 ----- .../tsp/website/TheoremEntryController.java | 15 ++++++++------- .../msudenver/tsp/website/forms/Theorem.java | 19 +++++++++++++------ .../tsp/website/service/ProofDriver.java | 16 ---------------- src/main/webapp/WEB-INF/jsp/Theorem.jsp | 3 ++- src/main/webapp/WEB-INF/jsp/success.jsp | 3 ++- .../tsp/website/ProofsDriverTest.java | 5 ----- 9 files changed, 43 insertions(+), 41 deletions(-) delete mode 100644 src/main/java/edu/msudenver/tsp/website/ProofsDriver.java delete mode 100644 src/main/java/edu/msudenver/tsp/website/service/ProofDriver.java delete mode 100644 src/test/java/edu/msudenver/tsp/website/ProofsDriverTest.java diff --git a/build.gradle b/build.gradle index 6690226..3231c9e 100644 --- a/build.gradle +++ b/build.gradle @@ -70,6 +70,8 @@ subprojects { testCompile group: 'junit', name: 'junit', version: '4.11' testCompile group: 'junit', name: 'junit', version: '4.12' testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} + testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '2.1.2.RELEASE' + testCompile 'javax.el:javax.el-api:3.0.0' } @@ -107,6 +109,8 @@ dependencies { compile 'org.slf4j:slf4j-api:1.7.22' compile "joda-time:joda-time:2.2" compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.5.RELEASE' + compile('org.springframework.boot:spring-boot-starter-web','org.apache.tomcat.embed:tomcat-embed-jasper' + ,'javax.servlet:jstl') testCompile group: 'junit', name: 'junit', version: '4.12' testCompile "org.springframework:spring-test:5.0.9.RELEASE" diff --git a/src/main/java/edu/msudenver/tsp/website/Application.java b/src/main/java/edu/msudenver/tsp/website/Application.java index 17154e8..b700c5a 100644 --- a/src/main/java/edu/msudenver/tsp/website/Application.java +++ b/src/main/java/edu/msudenver/tsp/website/Application.java @@ -1,16 +1,30 @@ package edu.msudenver.tsp.website; +import lombok.extern.java.Log; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; + +import java.util.Arrays; @SpringBootApplication +@Slf4j + public class Application { public static void main(final String[] args) { SpringApplication.run(Application.class, args); } + } + + + diff --git a/src/main/java/edu/msudenver/tsp/website/ProofsDriver.java b/src/main/java/edu/msudenver/tsp/website/ProofsDriver.java deleted file mode 100644 index a8a5de0..0000000 --- a/src/main/java/edu/msudenver/tsp/website/ProofsDriver.java +++ /dev/null @@ -1,5 +0,0 @@ -package edu.msudenver.tsp.website; - -public class ProofsDriver { - //Business Logic will go here -} diff --git a/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java b/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java index c62f84a..53db791 100644 --- a/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java +++ b/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java @@ -1,7 +1,8 @@ package edu.msudenver.tsp.website; import edu.msudenver.tsp.website.forms.Theorem; -import edu.msudenver.tsp.website.service.ProofDriver; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -10,12 +11,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; - +@Slf4j @Controller +@AllArgsConstructor public class TheoremEntryController { - @Autowired - ProofDriver proofDriver; @RequestMapping("/welcome") public ModelAndView firstPage() @@ -26,14 +26,15 @@ public class TheoremEntryController { @RequestMapping("/theorem") public ModelAndView theoremPage() { + //System.out.println("Inside controller"); return new ModelAndView("Theorem"); } - @RequestMapping(value = "/save", method = RequestMethod.POST) public String saveTheorem(@Validated Theorem theorem, Model model) { - proofDriver.processProof(theorem.getTheoremName()); - model.addAttribute("theromName", theorem.getTheoremName()); + + model.addAttribute("theromName1", theorem.getTheoremName1()); + model.addAttribute("theromName2", theorem.getTheoremName2()); return "success"; } diff --git a/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java b/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java index 07524df..935f762 100644 --- a/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java +++ b/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java @@ -1,17 +1,24 @@ package edu.msudenver.tsp.website.forms; public class Theorem { - private String theoremName ; + private String theoremName1 ; + private String theoremName2 ; - - public String getTheoremName() { - return theoremName; + public String getTheoremName1() { + return theoremName1; } - public void setTheoremName(String theoremName) { - this.theoremName = theoremName; + public void setTheoremName1(String theoremName) { + this.theoremName1 = theoremName; } + public String getTheoremName2() { + return theoremName2; + } + + public void setTheoremName2(String theoremName) { + this.theoremName2 = theoremName; + } diff --git a/src/main/java/edu/msudenver/tsp/website/service/ProofDriver.java b/src/main/java/edu/msudenver/tsp/website/service/ProofDriver.java deleted file mode 100644 index b95c206..0000000 --- a/src/main/java/edu/msudenver/tsp/website/service/ProofDriver.java +++ /dev/null @@ -1,16 +0,0 @@ -package edu.msudenver.tsp.website.service; - -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; - -@Service -public class ProofDriver { - List theromList = new ArrayList(); - public String processProof(String theoremName){ - //Business Logic - return theoremName + "Accepted"; - } - -} diff --git a/src/main/webapp/WEB-INF/jsp/Theorem.jsp b/src/main/webapp/WEB-INF/jsp/Theorem.jsp index d9f580b..183b974 100644 --- a/src/main/webapp/WEB-INF/jsp/Theorem.jsp +++ b/src/main/webapp/WEB-INF/jsp/Theorem.jsp @@ -8,7 +8,8 @@
-Enter Theroem Name
+Enter Theorem 1: +
Enter Theorem 2:
diff --git a/src/main/webapp/WEB-INF/jsp/success.jsp b/src/main/webapp/WEB-INF/jsp/success.jsp index 6919cde..0ed9148 100644 --- a/src/main/webapp/WEB-INF/jsp/success.jsp +++ b/src/main/webapp/WEB-INF/jsp/success.jsp @@ -1,6 +1,7 @@ -Name:<%= request.getParameter("theoremName")%> +
Name1:<%= request.getParameter("theoremName1")%> +
Name2:<%= request.getParameter("theoremName2")%> \ No newline at end of file diff --git a/src/test/java/edu/msudenver/tsp/website/ProofsDriverTest.java b/src/test/java/edu/msudenver/tsp/website/ProofsDriverTest.java deleted file mode 100644 index 04a68e1..0000000 --- a/src/test/java/edu/msudenver/tsp/website/ProofsDriverTest.java +++ /dev/null @@ -1,5 +0,0 @@ -package edu.msudenver.tsp.website; - -public class ProofsDriverTest { - -} \ No newline at end of file From f0cb7633c68dbec07ccb0d7a1e9a02b1353cf357 Mon Sep 17 00:00:00 2001 From: - <-> Date: Tue, 19 Mar 2019 00:11:38 -0600 Subject: [PATCH 6/8] updated with passed tests --- build.gradle | 2 - .../msudenver/tsp/website/Application.java | 30 ----------- .../tsp/website/controller/Application.java | 23 ++++++++ .../TheoremEntryController.java | 21 ++++---- .../tsp/website/controller/forms/Theorem.java | 25 +++++++++ .../msudenver/tsp/website/forms/Theorem.java | 26 --------- src/main/webapp/WEB-INF/jsp/Theorem.jsp | 4 +- src/main/webapp/WEB-INF/jsp/success.jsp | 3 +- src/main/webapp/WEB-INF/jsp/welcome.jsp | 3 +- .../TheoremEntryControllerTest.java | 53 +++++++++++++++++++ 10 files changed, 115 insertions(+), 75 deletions(-) delete mode 100644 src/main/java/edu/msudenver/tsp/website/Application.java create mode 100644 src/main/java/edu/msudenver/tsp/website/controller/Application.java rename src/main/java/edu/msudenver/tsp/website/{ => controller}/TheoremEntryController.java (66%) create mode 100644 src/main/java/edu/msudenver/tsp/website/controller/forms/Theorem.java delete mode 100644 src/main/java/edu/msudenver/tsp/website/forms/Theorem.java create mode 100644 src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java diff --git a/build.gradle b/build.gradle index 3231c9e..b50c1d6 100644 --- a/build.gradle +++ b/build.gradle @@ -70,8 +70,6 @@ subprojects { testCompile group: 'junit', name: 'junit', version: '4.11' testCompile group: 'junit', name: 'junit', version: '4.12' testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} - testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '2.1.2.RELEASE' - testCompile 'javax.el:javax.el-api:3.0.0' } diff --git a/src/main/java/edu/msudenver/tsp/website/Application.java b/src/main/java/edu/msudenver/tsp/website/Application.java deleted file mode 100644 index b700c5a..0000000 --- a/src/main/java/edu/msudenver/tsp/website/Application.java +++ /dev/null @@ -1,30 +0,0 @@ -package edu.msudenver.tsp.website; - - -import lombok.extern.java.Log; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; - -import java.util.Arrays; - -@SpringBootApplication -@Slf4j - -public class Application { - - public static void main(final String[] args) { - SpringApplication.run(Application.class, args); - } - -} - - - - - - diff --git a/src/main/java/edu/msudenver/tsp/website/controller/Application.java b/src/main/java/edu/msudenver/tsp/website/controller/Application.java new file mode 100644 index 0000000..b165a26 --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/controller/Application.java @@ -0,0 +1,23 @@ +package edu.msudenver.tsp.website.controller; + + + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication + + +public class Application { + + public static void main(final String[] args) { + SpringApplication.run(Application.class, args); + } + +} + + + + + + diff --git a/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java b/src/main/java/edu/msudenver/tsp/website/controller/TheoremEntryController.java similarity index 66% rename from src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java rename to src/main/java/edu/msudenver/tsp/website/controller/TheoremEntryController.java index 53db791..57d2ef3 100644 --- a/src/main/java/edu/msudenver/tsp/website/TheoremEntryController.java +++ b/src/main/java/edu/msudenver/tsp/website/controller/TheoremEntryController.java @@ -1,9 +1,8 @@ -package edu.msudenver.tsp.website; +package edu.msudenver.tsp.website.controller; -import edu.msudenver.tsp.website.forms.Theorem; +import edu.msudenver.tsp.website.controller.forms.Theorem; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.annotation.Validated; @@ -17,28 +16,28 @@ import org.springframework.web.servlet.ModelAndView; public class TheoremEntryController { - @RequestMapping("/welcome") - public ModelAndView firstPage() - { - return new ModelAndView("welcome"); - } @RequestMapping("/theorem") public ModelAndView theoremPage() { - //System.out.println("Inside controller"); + + return new ModelAndView("Theorem"); } + @RequestMapping(value = "/save", method = RequestMethod.POST) public String saveTheorem(@Validated Theorem theorem, Model model) { - model.addAttribute("theromName1", theorem.getTheoremName1()); - model.addAttribute("theromName2", theorem.getTheoremName2()); + model.addAttribute("theromName", theorem.getTheoremName()); + return "success"; } + public ModelAndView firstPage() { + return new ModelAndView("welcome"); + } } diff --git a/src/main/java/edu/msudenver/tsp/website/controller/forms/Theorem.java b/src/main/java/edu/msudenver/tsp/website/controller/forms/Theorem.java new file mode 100644 index 0000000..fc9660c --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/controller/forms/Theorem.java @@ -0,0 +1,25 @@ +package edu.msudenver.tsp.website.controller.forms; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter + +public class Theorem { + private String theoremName ; + + + public String getTheoremName() { + return theoremName; + } + + public void setTheoremName1(String theoremName) { + this.theoremName = theoremName; + } + + + + + +} diff --git a/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java b/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java deleted file mode 100644 index 935f762..0000000 --- a/src/main/java/edu/msudenver/tsp/website/forms/Theorem.java +++ /dev/null @@ -1,26 +0,0 @@ -package edu.msudenver.tsp.website.forms; - -public class Theorem { - private String theoremName1 ; - private String theoremName2 ; - - public String getTheoremName1() { - return theoremName1; - } - - public void setTheoremName1(String theoremName) { - this.theoremName1 = theoremName; - } - - public String getTheoremName2() { - return theoremName2; - } - - public void setTheoremName2(String theoremName) { - this.theoremName2 = theoremName; - } - - - - -} diff --git a/src/main/webapp/WEB-INF/jsp/Theorem.jsp b/src/main/webapp/WEB-INF/jsp/Theorem.jsp index 183b974..ae55b1d 100644 --- a/src/main/webapp/WEB-INF/jsp/Theorem.jsp +++ b/src/main/webapp/WEB-INF/jsp/Theorem.jsp @@ -8,8 +8,8 @@
-Enter Theorem 1: -
Enter Theorem 2:
+Enter Theorem Name: +
diff --git a/src/main/webapp/WEB-INF/jsp/success.jsp b/src/main/webapp/WEB-INF/jsp/success.jsp index 0ed9148..5802680 100644 --- a/src/main/webapp/WEB-INF/jsp/success.jsp +++ b/src/main/webapp/WEB-INF/jsp/success.jsp @@ -1,7 +1,6 @@ -
Name1:<%= request.getParameter("theoremName1")%> -
Name2:<%= request.getParameter("theoremName2")%> +
Name:<%= request.getParameter("theoremName")%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/welcome.jsp b/src/main/webapp/WEB-INF/jsp/welcome.jsp index c3d088f..1342bc5 100644 --- a/src/main/webapp/WEB-INF/jsp/welcome.jsp +++ b/src/main/webapp/WEB-INF/jsp/welcome.jsp @@ -1,5 +1,4 @@ -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> + diff --git a/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java b/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java new file mode 100644 index 0000000..5864497 --- /dev/null +++ b/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java @@ -0,0 +1,53 @@ +package edu.msudenver.tsp.website.controller; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.ui.Model; +import org.springframework.web.servlet.ModelAndView; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; + +import java.util.Map; + +import static org.junit.Assert.*; + +@RunWith(MockitoJUnitRunner.class) +public class TheoremEntryControllerTest { + + @InjectMocks + private TheoremEntryController theoremEntryController; + + @Autowired + protected MockMvc mockMvc; + + @Test + public void contexLoads() throws Exception { + assertNotNull(theoremEntryController); + } + + @Test + public void firstPage(){ + + final ModelAndView modelAndView= theoremEntryController.firstPage(); + + assertNotNull(modelAndView); + assertEquals("welcome",modelAndView.getViewName()); + } + + @Test + public void theoremPage(){ + + final ModelAndView modelAndView= theoremEntryController.theoremPage(); + + assertNotNull(modelAndView); + assertEquals("Theorem",modelAndView.getViewName()); + } + + +} From 5479130178071ca752bff18b680f0d11af73d642 Mon Sep 17 00:00:00 2001 From: - <-> Date: Tue, 19 Mar 2019 17:44:53 -0600 Subject: [PATCH 7/8] fixed again, thanks Alex for your detailed reviews I have learned alot :) --- build.gradle | 2 ++ .../website/{controller => }/Application.java | 8 ++---- .../controller/TheoremEntryController.java | 27 ++++++------------ .../tsp/website/controller/forms/Theorem.java | 21 ++++---------- src/main/webapp/WEB-INF/jsp/Theorem.jsp | 6 ++-- src/main/webapp/WEB-INF/jsp/success.jsp | 3 +- src/main/webapp/WEB-INF/jsp/welcome.jsp | 11 -------- .../TheoremEntryControllerTest.java | 28 +++++++------------ 8 files changed, 35 insertions(+), 71 deletions(-) rename src/main/java/edu/msudenver/tsp/website/{controller => }/Application.java (71%) delete mode 100644 src/main/webapp/WEB-INF/jsp/welcome.jsp diff --git a/build.gradle b/build.gradle index b50c1d6..3231c9e 100644 --- a/build.gradle +++ b/build.gradle @@ -70,6 +70,8 @@ subprojects { testCompile group: 'junit', name: 'junit', version: '4.11' testCompile group: 'junit', name: 'junit', version: '4.12' testCompile('org.mockito:mockito-core:1.10.19') {exclude(group: 'org.hamcrest')} + testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '2.1.2.RELEASE' + testCompile 'javax.el:javax.el-api:3.0.0' } diff --git a/src/main/java/edu/msudenver/tsp/website/controller/Application.java b/src/main/java/edu/msudenver/tsp/website/Application.java similarity index 71% rename from src/main/java/edu/msudenver/tsp/website/controller/Application.java rename to src/main/java/edu/msudenver/tsp/website/Application.java index b165a26..12556af 100644 --- a/src/main/java/edu/msudenver/tsp/website/controller/Application.java +++ b/src/main/java/edu/msudenver/tsp/website/Application.java @@ -1,16 +1,14 @@ -package edu.msudenver.tsp.website.controller; - - +package edu.msudenver.tsp.website; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication - public class Application { - public static void main(final String[] args) { + public static void main(final String[] args) + { SpringApplication.run(Application.class, args); } diff --git a/src/main/java/edu/msudenver/tsp/website/controller/TheoremEntryController.java b/src/main/java/edu/msudenver/tsp/website/controller/TheoremEntryController.java index 57d2ef3..4605fa3 100644 --- a/src/main/java/edu/msudenver/tsp/website/controller/TheoremEntryController.java +++ b/src/main/java/edu/msudenver/tsp/website/controller/TheoremEntryController.java @@ -6,6 +6,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @@ -13,31 +15,20 @@ import org.springframework.web.servlet.ModelAndView; @Slf4j @Controller @AllArgsConstructor +@RequestMapping("/theorem") public class TheoremEntryController { - - - - @RequestMapping("/theorem") - public ModelAndView theoremPage() + @GetMapping({"/",""}) + public ModelAndView enterTheoremPage() { - - return new ModelAndView("Theorem"); } - - @RequestMapping(value = "/save", method = RequestMethod.POST) + @PostMapping({"/",""}) public String saveTheorem(@Validated Theorem theorem, Model model) { - model.addAttribute("theromName", theorem.getTheoremName()); + model.addAttribute("theromName1", theorem.getTheoremName1()); + model.addAttribute("theromName2", theorem.getTheoremName2()); return "success"; } - - - public ModelAndView firstPage() { - return new ModelAndView("welcome"); - } -} - - +} \ No newline at end of file diff --git a/src/main/java/edu/msudenver/tsp/website/controller/forms/Theorem.java b/src/main/java/edu/msudenver/tsp/website/controller/forms/Theorem.java index fc9660c..7b15b36 100644 --- a/src/main/java/edu/msudenver/tsp/website/controller/forms/Theorem.java +++ b/src/main/java/edu/msudenver/tsp/website/controller/forms/Theorem.java @@ -3,23 +3,14 @@ package edu.msudenver.tsp.website.controller.forms; import lombok.Getter; import lombok.Setter; +import javax.validation.constraints.NotBlank; + @Getter @Setter - public class Theorem { - private String theoremName ; - - - public String getTheoremName() { - return theoremName; - } - - public void setTheoremName1(String theoremName) { - this.theoremName = theoremName; - } - - - - + private String theoremName1 ; + private String theoremName2 ; + @NotBlank(message = "Theorem name must not be blank") private String theoremName; + private String theorem; } diff --git a/src/main/webapp/WEB-INF/jsp/Theorem.jsp b/src/main/webapp/WEB-INF/jsp/Theorem.jsp index ae55b1d..8933e48 100644 --- a/src/main/webapp/WEB-INF/jsp/Theorem.jsp +++ b/src/main/webapp/WEB-INF/jsp/Theorem.jsp @@ -7,9 +7,9 @@ Theroem Page -
-Enter Theorem Name: - + +Enter Theorem Name : +
Enter Theorem:
diff --git a/src/main/webapp/WEB-INF/jsp/success.jsp b/src/main/webapp/WEB-INF/jsp/success.jsp index 5802680..ea5294b 100644 --- a/src/main/webapp/WEB-INF/jsp/success.jsp +++ b/src/main/webapp/WEB-INF/jsp/success.jsp @@ -1,6 +1,7 @@ -
Name:<%= request.getParameter("theoremName")%> +
Name:<%= request.getParameter("theoremName1")%> +
Name:<%= request.getParameter("theoremName2")%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/welcome.jsp b/src/main/webapp/WEB-INF/jsp/welcome.jsp deleted file mode 100644 index 1342bc5..0000000 --- a/src/main/webapp/WEB-INF/jsp/welcome.jsp +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - Guru Success Page - - -Welcome User!!!! - - \ No newline at end of file diff --git a/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java b/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java index 5864497..f71de78 100644 --- a/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java +++ b/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java @@ -23,27 +23,19 @@ public class TheoremEntryControllerTest { @InjectMocks private TheoremEntryController theoremEntryController; - @Autowired - protected MockMvc mockMvc; - - @Test - public void contexLoads() throws Exception { - assertNotNull(theoremEntryController); - } - - @Test - public void firstPage(){ - - final ModelAndView modelAndView= theoremEntryController.firstPage(); - - assertNotNull(modelAndView); - assertEquals("welcome",modelAndView.getViewName()); - } - @Test public void theoremPage(){ - final ModelAndView modelAndView= theoremEntryController.theoremPage(); + final ModelAndView modelAndView= theoremEntryController.enterTheoremPage(); + + assertNotNull(modelAndView); + assertEquals("Theorem",modelAndView.getViewName()); + } + + @Test + public void saveTheorem(){ + + final ModelAndView modelAndView= theoremEntryController.enterTheoremPage(); assertNotNull(modelAndView); assertEquals("Theorem",modelAndView.getViewName()); From 8c79d9975e7bd36c5e173575c9cda00ef507f50d Mon Sep 17 00:00:00 2001 From: atusa17 Date: Wed, 20 Mar 2019 22:32:25 -0600 Subject: [PATCH 8/8] Merge branches 'PAN-16' and 'master' of https://github.com/atusa17/ptp into PAN-16 # Conflicts: # services/build.gradle --- .../tsp/website/controller/TheoremEntryControllerTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java b/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java index 2e7df0e..2624c17 100644 --- a/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java +++ b/src/test/java/edu/msudenver/tsp/website/controller/TheoremEntryControllerTest.java @@ -2,7 +2,6 @@ package edu.msudenver.tsp.website.controller; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.web.servlet.ModelAndView; @@ -12,7 +11,7 @@ import static org.junit.Assert.assertNotNull; @RunWith(MockitoJUnitRunner.class) public class TheoremEntryControllerTest { - @Mock private TheoremEntryController theoremEntryController; + private final TheoremEntryController theoremEntryController = new TheoremEntryController(); @Test public void testEnterTheoremPage() {