From 139dc943c3b64e48e487b64f7dbf693e2f8e764c Mon Sep 17 00:00:00 2001 From: - <-> Date: Thu, 14 Mar 2019 16:58:17 -0600 Subject: [PATCH 01/21] 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 02/21] 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 03/21] 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 04/21] 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 05/21] 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 06/21] 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 07/21] 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 08/21] 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() { From 80f55c4879aa4eace47f297514a5a963dbae259c Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 10:25:52 -0600 Subject: [PATCH 09/21] PAN-52 Fixed issue with the Theorems API --- .../persistence/controller/TheoremController.java | 12 +++++++----- .../controller/TheoremControllerTest.java | 13 +++++++++++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java index ef0e760..1342f1a 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java @@ -75,19 +75,21 @@ public class TheoremController { @GetMapping("/proven_status") public @ResponseBody - ResponseEntity> getAllTheoremsByProvenStatus(@PathVariable("proven_status") final Boolean provenStatus) { + ResponseEntity> getAllTheoremsByProvenStatus(@RequestParam("proven_status") final String provenStatus) { LOG.info("Received request to query for theorems whose proven status is {}", provenStatus); if (provenStatus == null) { LOG.error("ERROR: status was null"); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } - LOG.debug("Querying for theorems with proven status {}", provenStatus); + final Boolean isProven = Boolean.parseBoolean(provenStatus); + + LOG.debug("Querying for theorems with proven status {}", isProven); final StopWatch stopWatch = new StopWatch(); stopWatch.start(); - final List listOfTheorems = theoremRepository.findByProvenStatus(provenStatus); + final List listOfTheorems = theoremRepository.findByProvenStatus(isProven); stopWatch.stop(); @@ -95,11 +97,11 @@ public class TheoremController { LOG.info("Returning list of all theorems with size {}", listOfTheorems.size()); if (listOfTheorems.isEmpty()) { - LOG.warn("No theorems were found for proven status {}", provenStatus); + LOG.warn("No theorems were found for proven status {}", isProven); return new ResponseEntity<>(HttpStatus.NOT_FOUND); } - LOG.info("Returning list of theorems with proven status {}", provenStatus); + LOG.info("Returning list of theorems with proven status {}", isProven); return new ResponseEntity<>(listOfTheorems, HttpStatus.OK); } 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 index ffc0913..f9944e4 100644 --- a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java +++ b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java @@ -135,7 +135,7 @@ public class TheoremControllerTest { when(theoremRepository.findByProvenStatus(anyBoolean())).thenReturn(listOfTheorems); - final ResponseEntity> responseEntity = theoremController.getAllTheoremsByProvenStatus(true); + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByProvenStatus("true"); assertNotNull(responseEntity); assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); @@ -155,11 +155,20 @@ public class TheoremControllerTest { verifyZeroInteractions(theoremRepository); } + @Test + public void testGetAllTheoremsByProvenStatus_invalidProvenStatus() { + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByProvenStatus("test"); + + assertNotNull(responseEntity); + assertFalse(responseEntity.hasBody()); + assertEquals(HttpStatus.NOT_FOUND, responseEntity.getStatusCode()); + } + @Test public void testGetAllTheoremsByProvenStatus_noTheoremsFound() { when(theoremRepository.findByProvenStatus(anyBoolean())).thenReturn(Collections.emptyList()); - final ResponseEntity> responseEntity = theoremController.getAllTheoremsByProvenStatus(false); + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByProvenStatus("false"); assertNotNull(responseEntity); assertFalse(responseEntity.hasBody()); From 413a78f729d77189c7bfc827d19fd1de407aec11 Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 10:28:09 -0600 Subject: [PATCH 10/21] PAN-52 Fixed issue with the Theorems API --- .../tsp/persistence/controller/TheoremController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java index 1342f1a..7037d90 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java @@ -107,7 +107,7 @@ public class TheoremController { @GetMapping("/name") public @ResponseBody - ResponseEntity> getAllTheoremsByName(@PathVariable("name") final String name) { + ResponseEntity> getAllTheoremsByName(@RequestParam("name") final String name) { LOG.info("Received request to query for theorems whose name is {}", name); if (name == null) { LOG.error("ERROR: name was null"); @@ -137,7 +137,7 @@ public class TheoremController { @GetMapping("/id") public @ResponseBody - ResponseEntity getTheoremById(@PathVariable("id") final Integer id) { + ResponseEntity getTheoremById(@RequestParam("id") final Integer id) { LOG.info("Received request to query for theorem with id {}", id); if (id == null) { LOG.error("ERROR: ID was null"); From 6b7cf5cd918946b1596ac41af61294c0a8990475 Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 10:28:51 -0600 Subject: [PATCH 11/21] PAN-52 Fixed issue with the Theorems API --- .../msudenver/tsp/persistence/controller/ProofController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/ProofController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/ProofController.java index e60659a..e218bbf 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/ProofController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/ProofController.java @@ -105,7 +105,7 @@ public class ProofController { @GetMapping("/theorem_name") public @ResponseBody - ResponseEntity> getAllProofsByTheoremName(@PathVariable("theorem_name") final String theoremName) { + ResponseEntity> getAllProofsByTheoremName(@RequestParam("theorem_name") final String theoremName) { LOG.info("Received request to query for proofs of the theorem {}", theoremName); if (theoremName == null) { LOG.error("ERROR: theorem name was null"); From 1e15082fcc18721dcab2b9a8b84efb43a3e7fcea Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 10:32:57 -0600 Subject: [PATCH 12/21] PAN-52 Fixed issue with the Theorems API --- .../tsp/persistence/controller/TheoremController.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java index 7037d90..71d5e62 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java @@ -107,13 +107,20 @@ public class TheoremController { @GetMapping("/name") public @ResponseBody - ResponseEntity> getAllTheoremsByName(@RequestParam("name") final String name) { + ResponseEntity> getAllTheoremsByName(@RequestParam("name") String name) { LOG.info("Received request to query for theorems whose name is {}", name); if (name == null) { LOG.error("ERROR: name was null"); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } + name = name.toLowerCase(); + + if (name.contains("_") || name.contains("-")) { + name = name.replace("-", "\\s"); + name = name.replace("-", "\\s"); + } + LOG.debug("Querying for theorems with name {}", name); final StopWatch stopWatch = new StopWatch(); @@ -181,6 +188,8 @@ public class TheoremController { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } + theorem.setName(theorem.getName().toLowerCase()); + LOG.debug("Saving new theorem"); final StopWatch stopWatch = new StopWatch(); From ba4c7502db8087387bbe80e4d0f1045ef5ca12eb Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 10:39:24 -0600 Subject: [PATCH 13/21] PAN-52 Fixed issue with the Theorems API --- persistence/scripts/mysql/local_development.sql | 1 + .../src/main/java/edu/msudenver/tsp/persistence/dto/Theorem.java | 1 + .../tsp/persistence/controller/TheoremControllerTest.java | 1 + 3 files changed, 3 insertions(+) diff --git a/persistence/scripts/mysql/local_development.sql b/persistence/scripts/mysql/local_development.sql index 52480e5..44f9fa6 100644 --- a/persistence/scripts/mysql/local_development.sql +++ b/persistence/scripts/mysql/local_development.sql @@ -26,6 +26,7 @@ version int default 1 create table theorems ( id int not null auto_increment primary key unique, name varchar(512) not null, +theorem varchar(1024) not null, theorem_type enum ('THEOREM', 'PROPOSITION', 'LEMMA', 'COROLLARY') not null, branch varchar(512) not null, referenced_definitions json, diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Theorem.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Theorem.java index 14e1da1..5f0f2bf 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Theorem.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Theorem.java @@ -21,6 +21,7 @@ import java.util.List; @EqualsAndHashCode(callSuper = true) public class Theorem extends BaseDto implements Serializable { @NotBlank(groups = Insert.class) @Size(min = 1, max = 512, message = "theorem name must be between 1 and 512 characters") private String name; + @NotNull(groups = Insert.class) @Size(min = 1, max = 1024, message = "theorem must be between 1 and 1024 characters") private String theorem; @NotNull(groups = Insert.class) @Column(name = "theorem_type") private TheoremType theoremType; @NotNull(groups = Insert.class, message = "a branch of mathematics that this theorem is associated with must be specified") private String branch; @Type(type = "json") @Column(name = "referenced_definitions", columnDefinition = "jsonb") private List referencedDefinitions; 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 index f9944e4..6be6200 100644 --- a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java +++ b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java @@ -352,6 +352,7 @@ public class TheoremControllerTest { final Theorem theorem = new Theorem(); theorem.setName("Test theorem"); + theorem.setTheorem("test theorem thing here"); theorem.setBranch("Test branch"); theorem.setProvenStatus(true); theorem.setTheoremType(TheoremType.THEOREM); From f8a1d8bf8918c6a15983758d118dd13a2b2d0073 Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 10:55:15 -0600 Subject: [PATCH 14/21] PAN-52 Fixed issue with the Theorems API --- persistence/scripts/mysql/local_development.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/scripts/mysql/local_development.sql b/persistence/scripts/mysql/local_development.sql index 44f9fa6..0bb4f8f 100644 --- a/persistence/scripts/mysql/local_development.sql +++ b/persistence/scripts/mysql/local_development.sql @@ -27,7 +27,7 @@ create table theorems ( id int not null auto_increment primary key unique, name varchar(512) not null, theorem varchar(1024) not null, -theorem_type enum ('THEOREM', 'PROPOSITION', 'LEMMA', 'COROLLARY') not null, +theorem_type varchar(20) not null, branch varchar(512) not null, referenced_definitions json, referenced_theorems json, From 4622c49ceec8e7252c67425e8cbabc3a34909aef Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 10:59:14 -0600 Subject: [PATCH 15/21] PAN-52 Fixed issue with the Theorems API --- .../tsp/persistence/controller/TheoremController.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java index 71d5e62..d6bae87 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java @@ -45,13 +45,20 @@ public class TheoremController { @GetMapping("/branch") public @ResponseBody - ResponseEntity> getAllTheoremsByBranch(@RequestParam("branch") final String branch) { + ResponseEntity> getAllTheoremsByBranch(@RequestParam("branch") String branch) { LOG.info("Received request to query for theorems related to the {} branch of mathematics", branch); if (branch == null) { LOG.error("ERROR: branch was null"); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } + branch = branch.toLowerCase(); + + if (branch.contains("_") || branch.contains("-")) { + branch = branch.replace("_", "\\s"); + branch = branch.replace("-", "\\s"); + } + LOG.debug("Querying for theorems with branch {}", branch); final StopWatch stopWatch = new StopWatch(); @@ -188,8 +195,6 @@ public class TheoremController { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } - theorem.setName(theorem.getName().toLowerCase()); - LOG.debug("Saving new theorem"); final StopWatch stopWatch = new StopWatch(); From ab360abcf8277908cb8d2894e7254a465789843a Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 11:02:46 -0600 Subject: [PATCH 16/21] PAN-52 Fixed issue with the Theorems API --- .../msudenver/tsp/persistence/controller/TheoremController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java index d6bae87..1214812 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java @@ -52,8 +52,6 @@ public class TheoremController { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } - branch = branch.toLowerCase(); - if (branch.contains("_") || branch.contains("-")) { branch = branch.replace("_", "\\s"); branch = branch.replace("-", "\\s"); From 07cdef3d446e4cac6350ec39ac2e3daa4f5ccb7b Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 11:05:32 -0600 Subject: [PATCH 17/21] PAN-52 Fixed issue with the Theorems API --- .../tsp/persistence/controller/TheoremController.java | 8 ++++---- .../tsp/persistence/controller/TheoremControllerTest.java | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java index 1214812..b6bb7b9 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java @@ -53,8 +53,8 @@ public class TheoremController { } if (branch.contains("_") || branch.contains("-")) { - branch = branch.replace("_", "\\s"); - branch = branch.replace("-", "\\s"); + branch = branch.replace("_", " "); + branch = branch.replace("-", " "); } LOG.debug("Querying for theorems with branch {}", branch); @@ -122,8 +122,8 @@ public class TheoremController { name = name.toLowerCase(); if (name.contains("_") || name.contains("-")) { - name = name.replace("-", "\\s"); - name = name.replace("-", "\\s"); + name = name.replace("-", " "); + name = name.replace("-", " "); } LOG.debug("Querying for theorems with name {}", name); 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 index 6be6200..c65ed44 100644 --- a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java +++ b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java @@ -95,7 +95,7 @@ public class TheoremControllerTest { when(theoremRepository.findByBranch(anyString())).thenReturn(listOfTheorems); - final ResponseEntity> responseEntity = theoremController.getAllTheoremsByBranch("test"); + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByBranch("test-branch"); assertNotNull(responseEntity); assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); @@ -119,7 +119,7 @@ public class TheoremControllerTest { public void testGetAllTheoremsByBranch_noTheoremsFound() { when(theoremRepository.findByBranch(anyString())).thenReturn(Collections.emptyList()); - final ResponseEntity> responseEntity = theoremController.getAllTheoremsByBranch("test nonexistent branch"); + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByBranch("test_nonexistent_branch"); assertNotNull(responseEntity); assertFalse(responseEntity.hasBody()); From d0cde837e9689faadc34106a4fbeac38a9386dea Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 11:09:01 -0600 Subject: [PATCH 18/21] PAN-52 Fixed issue with the Theorems API --- .../tsp/persistence/controller/TheoremController.java | 4 +--- .../tsp/persistence/controller/TheoremControllerTest.java | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java index b6bb7b9..457ac10 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/TheoremController.java @@ -119,10 +119,8 @@ public class TheoremController { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } - name = name.toLowerCase(); - if (name.contains("_") || name.contains("-")) { - name = name.replace("-", " "); + name = name.replace("_", " "); name = name.replace("-", " "); } 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 index c65ed44..a667d0a 100644 --- a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java +++ b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/TheoremControllerTest.java @@ -184,7 +184,7 @@ public class TheoremControllerTest { when(theoremRepository.findByName(anyString())).thenReturn(listOfTheorems); - final ResponseEntity> responseEntity = theoremController.getAllTheoremsByName("Test Theorem"); + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByName("Test_Theorem"); assertNotNull(responseEntity); assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); @@ -208,7 +208,7 @@ public class TheoremControllerTest { public void testGetAllTheoremsByName_noNameFound() { when(theoremRepository.findByName(anyString())).thenReturn(Collections.emptyList()); - final ResponseEntity> responseEntity = theoremController.getAllTheoremsByName("No name"); + final ResponseEntity> responseEntity = theoremController.getAllTheoremsByName("No-name"); assertNotNull(responseEntity); assertFalse(responseEntity.hasBody()); From c9a2a978fcbdec54d86896eb471a28d70d230845 Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 11:20:52 -0600 Subject: [PATCH 19/21] PAN-52 Fixed issue with the Theorems API --- persistence/scripts/mysql/local_development.sql | 1 + .../tsp/persistence/ProofsIntegrationTest.java | 3 +++ .../tsp/persistence/TheoremsIntegrationTest.java | 3 +++ .../persistence/controller/ProofController.java | 14 ++++++++++++-- .../edu/msudenver/tsp/persistence/dto/Proof.java | 4 ++++ .../controller/ProofControllerTest.java | 11 ++++++----- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/persistence/scripts/mysql/local_development.sql b/persistence/scripts/mysql/local_development.sql index 0bb4f8f..15934b0 100644 --- a/persistence/scripts/mysql/local_development.sql +++ b/persistence/scripts/mysql/local_development.sql @@ -38,6 +38,7 @@ CREATE TABLE proofs ( id INT NOT NULL AUTO_INCREMENT, theorem_name VARCHAR(512) NOT NULL, + proof VARCHAR(4096) NOT NULL, branch VARCHAR(512) NOT NULL, theorem INT NOT NULL, FOREIGN KEY fk_theorem (theorem) REFERENCES theorems (id) ON DELETE NO ACTION ON UPDATE NO ACTION, diff --git a/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/ProofsIntegrationTest.java b/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/ProofsIntegrationTest.java index 4af0f76..2061320 100644 --- a/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/ProofsIntegrationTest.java +++ b/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/ProofsIntegrationTest.java @@ -33,6 +33,7 @@ public class ProofsIntegrationTest { assertEquals("Test proof", savedProof.getTheoremName()); assertEquals("Test branch", savedProof.getBranch()); + assertEquals("test", savedProof.getProof()); assertNotNull(savedProof.getDateCreated()); assertNotNull(savedProof.getLastUpdated()); assertEquals(2, savedProof.getReferencedTheorems().size()); @@ -50,6 +51,7 @@ public class ProofsIntegrationTest { assertEquals(Integer.valueOf(0), updatedProof.getVersion()); assertEquals("Test proof", updatedProof.getTheoremName()); assertEquals("Test Update", updatedProof.getBranch()); + assertEquals("test", updatedProof.getProof()); assertNotNull(updatedProof.getLastUpdated()); assertNotNull(updatedProof.getDateCreated()); assertNotEquals(updatedProof.getDateCreated().toInstant(), updatedProof.getLastUpdated().toInstant()); @@ -77,6 +79,7 @@ public class ProofsIntegrationTest { final Proof proof = new Proof(); proof.setTheoremName("Test proof"); + proof.setProof("test"); proof.setBranch("Test branch"); proof.setDateCreated(new Date()); proof.setReferencedTheorems(referencedTheoremsList); diff --git a/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/TheoremsIntegrationTest.java b/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/TheoremsIntegrationTest.java index d5c22c3..7090456 100644 --- a/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/TheoremsIntegrationTest.java +++ b/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/TheoremsIntegrationTest.java @@ -32,6 +32,7 @@ public class TheoremsIntegrationTest { assertEquals("Test theorem", savedTheorem.getName()); assertEquals("Test branch", savedTheorem.getBranch()); + assertEquals("test", savedTheorem.getTheorem()); assertTrue(savedTheorem.getProvenStatus()); assertEquals(2, savedTheorem.getReferencedTheorems().size()); assertEquals(2, savedTheorem.getReferencedDefinitions().size()); @@ -48,6 +49,7 @@ public class TheoremsIntegrationTest { assertEquals(Integer.valueOf(0), updatedTheorem.getVersion()); assertEquals("Test theorem", updatedTheorem.getName()); assertEquals("Test Update", updatedTheorem.getBranch()); + assertEquals("test", updatedTheorem.getTheorem()); assertTrue(updatedTheorem.getProvenStatus()); assertEquals(2, updatedTheorem.getReferencedTheorems().size()); assertEquals(2, updatedTheorem.getReferencedDefinitions().size()); @@ -73,6 +75,7 @@ public class TheoremsIntegrationTest { final Theorem theorem = new Theorem(); theorem.setName("Test theorem"); + theorem.setTheorem("test"); theorem.setBranch("Test branch"); theorem.setProvenStatus(true); theorem.setTheoremType(TheoremType.THEOREM); diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/ProofController.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/ProofController.java index e218bbf..d682c32 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/ProofController.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/controller/ProofController.java @@ -75,13 +75,18 @@ public class ProofController { @GetMapping("/branch") public @ResponseBody - ResponseEntity> getAllProofsByBranch(@RequestParam("branch") final String branch) { + ResponseEntity> getAllProofsByBranch(@RequestParam("branch") String branch) { LOG.info("Received request to query for proofs related to the {} branch of mathematics", branch); if (branch == null) { LOG.error("ERROR: branch was null"); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } + if (branch.contains("_") || branch.contains("-")) { + branch = branch.replace("_"," "); + branch = branch.replace("-", " "); + } + LOG.debug("Querying for proofs with branch {}", branch); final StopWatch stopWatch = new StopWatch(); @@ -105,13 +110,18 @@ public class ProofController { @GetMapping("/theorem_name") public @ResponseBody - ResponseEntity> getAllProofsByTheoremName(@RequestParam("theorem_name") final String theoremName) { + ResponseEntity> getAllProofsByTheoremName(@RequestParam("theorem_name") String theoremName) { LOG.info("Received request to query for proofs of the theorem {}", theoremName); if (theoremName == null) { LOG.error("ERROR: theorem name was null"); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } + if (theoremName.contains("_") || theoremName.contains("-")) { + theoremName = theoremName.replace("_"," "); + theoremName = theoremName.replace("-", " "); + } + LOG.debug("Querying for proofs of the theorem {}", theoremName); final StopWatch stopWatch = new StopWatch(); diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java index 683039b..bd927d8 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java @@ -8,6 +8,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; import java.util.Date; @@ -22,6 +23,9 @@ public class Proof extends BaseDto implements Serializable { @Size(min = 1, max = 512, message = "The name must be at least 1 character and at most 512 characters") @Column(name = "theorem_name") private String theoremName; + @NotNull(groups = Insert.class) + @Size(min = 1, max = 4096, message = "The proof must be at least 1 character and at most 4096 characters") + private String proof; @NotBlank(groups = Insert.class) @Size(min = 1, max = 512, message = "The branch must be at least 1 character and at most 512 characters") private String branch; diff --git a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/ProofControllerTest.java b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/ProofControllerTest.java index 6e77bb3..6ad1948 100644 --- a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/ProofControllerTest.java +++ b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/ProofControllerTest.java @@ -53,7 +53,7 @@ public class ProofControllerTest { when(proofRepository.findByBranch(anyString())).thenReturn(listOfProofs); - final ResponseEntity> responseEntity = proofController.getAllProofsByBranch("test"); + final ResponseEntity> responseEntity = proofController.getAllProofsByBranch("Test_branch"); assertNotNull(responseEntity); assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); @@ -77,7 +77,7 @@ public class ProofControllerTest { public void testGetAllProofsByBranch_noProofsFound() { when(proofRepository.findByBranch(anyString())).thenReturn(Collections.emptyList()); - final ResponseEntity> responseEntity = proofController.getAllProofsByBranch("test nonexistent branch"); + final ResponseEntity> responseEntity = proofController.getAllProofsByBranch("test-nonexistent-branch"); assertNotNull(responseEntity); assertFalse(responseEntity.hasBody()); @@ -93,7 +93,7 @@ public class ProofControllerTest { when(proofRepository.findByTheoremName(anyString())).thenReturn(listOfProofs); - final ResponseEntity> responseEntity = proofController.getAllProofsByTheoremName("test"); + final ResponseEntity> responseEntity = proofController.getAllProofsByTheoremName("Test_proof"); assertNotNull(responseEntity); assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); @@ -104,7 +104,7 @@ public class ProofControllerTest { } @Test - public void testGetAllProfsByTheoremName_nullTheoremName() { + public void testGetAllProofsByTheoremName_nullTheoremName() { final ResponseEntity> responseEntity = proofController.getAllProofsByTheoremName(null); assertNotNull(responseEntity); @@ -117,7 +117,7 @@ public class ProofControllerTest { public void testGetAllProofsByTheoremName_noProofsFound() { when(proofRepository.findByTheoremName(anyString())).thenReturn(Collections.emptyList()); - final ResponseEntity> responseEntity = proofController.getAllProofsByTheoremName("test nonexistent branch"); + final ResponseEntity> responseEntity = proofController.getAllProofsByTheoremName("test-nonexistent-proof"); assertNotNull(responseEntity); assertFalse(responseEntity.hasBody()); @@ -299,6 +299,7 @@ public class ProofControllerTest { final Proof proof = new Proof(); proof.setTheoremName("Test proof"); proof.setBranch("Test branch"); + proof.setProof("test proof"); proof.setDateCreated(new Date()); proof.setReferencedTheorems(referencedTheoremsList); proof.setReferencedDefinitions(referencedDefinitionsList); From f5dbdac990e405d626151005734059eaf33f5e6e Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 11:29:30 -0600 Subject: [PATCH 20/21] PAN-52 Fixed issue with the Theorems API --- persistence/scripts/mysql/local_development.sql | 1 - .../edu/msudenver/tsp/persistence/ProofsIntegrationTest.java | 3 +++ .../src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java | 2 ++ .../tsp/persistence/controller/ProofControllerTest.java | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/persistence/scripts/mysql/local_development.sql b/persistence/scripts/mysql/local_development.sql index 15934b0..27005d4 100644 --- a/persistence/scripts/mysql/local_development.sql +++ b/persistence/scripts/mysql/local_development.sql @@ -41,7 +41,6 @@ CREATE TABLE proofs proof VARCHAR(4096) NOT NULL, branch VARCHAR(512) NOT NULL, theorem INT NOT NULL, - FOREIGN KEY fk_theorem (theorem) REFERENCES theorems (id) ON DELETE NO ACTION ON UPDATE NO ACTION, referenced_definitions JSON, referenced_theorems JSON, date_added DATE, diff --git a/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/ProofsIntegrationTest.java b/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/ProofsIntegrationTest.java index 2061320..b18c47d 100644 --- a/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/ProofsIntegrationTest.java +++ b/persistence/src/integrationTest/java/edu/msudenver/tsp/persistence/ProofsIntegrationTest.java @@ -34,6 +34,7 @@ public class ProofsIntegrationTest { assertEquals("Test proof", savedProof.getTheoremName()); assertEquals("Test branch", savedProof.getBranch()); assertEquals("test", savedProof.getProof()); + assertEquals(Integer.valueOf(1), savedProof.getTheorem()); assertNotNull(savedProof.getDateCreated()); assertNotNull(savedProof.getLastUpdated()); assertEquals(2, savedProof.getReferencedTheorems().size()); @@ -52,6 +53,7 @@ public class ProofsIntegrationTest { assertEquals("Test proof", updatedProof.getTheoremName()); assertEquals("Test Update", updatedProof.getBranch()); assertEquals("test", updatedProof.getProof()); + assertEquals(Integer.valueOf(1), savedProof.getTheorem()); assertNotNull(updatedProof.getLastUpdated()); assertNotNull(updatedProof.getDateCreated()); assertNotEquals(updatedProof.getDateCreated().toInstant(), updatedProof.getLastUpdated().toInstant()); @@ -80,6 +82,7 @@ public class ProofsIntegrationTest { final Proof proof = new Proof(); proof.setTheoremName("Test proof"); proof.setProof("test"); + proof.setTheorem(1); proof.setBranch("Test branch"); proof.setDateCreated(new Date()); proof.setReferencedTheorems(referencedTheoremsList); diff --git a/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java b/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java index bd927d8..fba2b1a 100644 --- a/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java +++ b/persistence/src/main/java/edu/msudenver/tsp/persistence/dto/Proof.java @@ -26,6 +26,8 @@ public class Proof extends BaseDto implements Serializable { @NotNull(groups = Insert.class) @Size(min = 1, max = 4096, message = "The proof must be at least 1 character and at most 4096 characters") private String proof; + @NotNull(groups = Insert.class) + private Integer theorem; @NotBlank(groups = Insert.class) @Size(min = 1, max = 512, message = "The branch must be at least 1 character and at most 512 characters") private String branch; diff --git a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/ProofControllerTest.java b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/ProofControllerTest.java index 6ad1948..14c2482 100644 --- a/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/ProofControllerTest.java +++ b/persistence/src/test/java/edu/msudenver/tsp/persistence/controller/ProofControllerTest.java @@ -298,6 +298,7 @@ public class ProofControllerTest { final Proof proof = new Proof(); proof.setTheoremName("Test proof"); + proof.setTheorem(1); proof.setBranch("Test branch"); proof.setProof("test proof"); proof.setDateCreated(new Date()); From 296cf62be6579e3eb67ce3c67e343442533770a8 Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 11:40:19 -0600 Subject: [PATCH 21/21] PAN-52 Fixed issue with the Theorems API --- out/production/resources/application.properties | 3 ++- src/main/resources/application.properties | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/out/production/resources/application.properties b/out/production/resources/application.properties index f3ce324..a8a0755 100644 --- a/out/production/resources/application.properties +++ b/out/production/resources/application.properties @@ -1,2 +1,3 @@ spring.mvc.view.prefix:/WEB-INF/jsp/ -spring.mvc.view.suffix:.jsp \ No newline at end of file +spring.mvc.view.suffix:.jsp +server.port=8090 \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a8a0755..f3ce324 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,3 +1,2 @@ spring.mvc.view.prefix:/WEB-INF/jsp/ -spring.mvc.view.suffix:.jsp -server.port=8090 \ No newline at end of file +spring.mvc.view.suffix:.jsp \ No newline at end of file