Merge branch 'master' of https://github.com/atusa17/ptp into PAN-15

# Conflicts:
#	src/main/java/edu/msudenver/tsp/website/Application.java
This commit is contained in:
dantanxiaotian
2019-03-24 15:00:20 -06:00
23 changed files with 174 additions and 239 deletions
-172
View File
@@ -1,172 +0,0 @@
#!/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 "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# 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
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# 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
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.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# 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 " "
}
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"
# 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
exec "$JAVACMD" "$@"
@@ -0,0 +1,3 @@
spring.mvc.view.prefix:/WEB-INF/jsp/
spring.mvc.view.suffix:.jsp
server.port=8090
@@ -26,7 +26,8 @@ version int default 1
create table theorems ( create table theorems (
id int not null auto_increment primary key unique, id int not null auto_increment primary key unique,
name varchar(512) not null, name varchar(512) not null,
theorem_type enum ('THEOREM', 'PROPOSITION', 'LEMMA', 'COROLLARY') not null, theorem varchar(1024) not null,
theorem_type varchar(20) not null,
branch varchar(512) not null, branch varchar(512) not null,
referenced_definitions json, referenced_definitions json,
referenced_theorems json, referenced_theorems json,
@@ -37,9 +38,9 @@ CREATE TABLE proofs
( (
id INT NOT NULL AUTO_INCREMENT, id INT NOT NULL AUTO_INCREMENT,
theorem_name VARCHAR(512) NOT NULL, theorem_name VARCHAR(512) NOT NULL,
proof VARCHAR(4096) NOT NULL,
branch VARCHAR(512) NOT NULL, branch VARCHAR(512) NOT NULL,
theorem INT 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_definitions JSON,
referenced_theorems JSON, referenced_theorems JSON,
date_added DATE, date_added DATE,
@@ -33,6 +33,8 @@ public class ProofsIntegrationTest {
assertEquals("Test proof", savedProof.getTheoremName()); assertEquals("Test proof", savedProof.getTheoremName());
assertEquals("Test branch", savedProof.getBranch()); assertEquals("Test branch", savedProof.getBranch());
assertEquals("test", savedProof.getProof());
assertEquals(Integer.valueOf(1), savedProof.getTheorem());
assertNotNull(savedProof.getDateCreated()); assertNotNull(savedProof.getDateCreated());
assertNotNull(savedProof.getLastUpdated()); assertNotNull(savedProof.getLastUpdated());
assertEquals(2, savedProof.getReferencedTheorems().size()); assertEquals(2, savedProof.getReferencedTheorems().size());
@@ -50,6 +52,8 @@ public class ProofsIntegrationTest {
assertEquals(Integer.valueOf(0), updatedProof.getVersion()); assertEquals(Integer.valueOf(0), updatedProof.getVersion());
assertEquals("Test proof", updatedProof.getTheoremName()); assertEquals("Test proof", updatedProof.getTheoremName());
assertEquals("Test Update", updatedProof.getBranch()); assertEquals("Test Update", updatedProof.getBranch());
assertEquals("test", updatedProof.getProof());
assertEquals(Integer.valueOf(1), savedProof.getTheorem());
assertNotNull(updatedProof.getLastUpdated()); assertNotNull(updatedProof.getLastUpdated());
assertNotNull(updatedProof.getDateCreated()); assertNotNull(updatedProof.getDateCreated());
assertNotEquals(updatedProof.getDateCreated().toInstant(), updatedProof.getLastUpdated().toInstant()); assertNotEquals(updatedProof.getDateCreated().toInstant(), updatedProof.getLastUpdated().toInstant());
@@ -77,6 +81,8 @@ public class ProofsIntegrationTest {
final Proof proof = new Proof(); final Proof proof = new Proof();
proof.setTheoremName("Test proof"); proof.setTheoremName("Test proof");
proof.setProof("test");
proof.setTheorem(1);
proof.setBranch("Test branch"); proof.setBranch("Test branch");
proof.setDateCreated(new Date()); proof.setDateCreated(new Date());
proof.setReferencedTheorems(referencedTheoremsList); proof.setReferencedTheorems(referencedTheoremsList);
@@ -32,6 +32,7 @@ public class TheoremsIntegrationTest {
assertEquals("Test theorem", savedTheorem.getName()); assertEquals("Test theorem", savedTheorem.getName());
assertEquals("Test branch", savedTheorem.getBranch()); assertEquals("Test branch", savedTheorem.getBranch());
assertEquals("test", savedTheorem.getTheorem());
assertTrue(savedTheorem.getProvenStatus()); assertTrue(savedTheorem.getProvenStatus());
assertEquals(2, savedTheorem.getReferencedTheorems().size()); assertEquals(2, savedTheorem.getReferencedTheorems().size());
assertEquals(2, savedTheorem.getReferencedDefinitions().size()); assertEquals(2, savedTheorem.getReferencedDefinitions().size());
@@ -48,6 +49,7 @@ public class TheoremsIntegrationTest {
assertEquals(Integer.valueOf(0), updatedTheorem.getVersion()); assertEquals(Integer.valueOf(0), updatedTheorem.getVersion());
assertEquals("Test theorem", updatedTheorem.getName()); assertEquals("Test theorem", updatedTheorem.getName());
assertEquals("Test Update", updatedTheorem.getBranch()); assertEquals("Test Update", updatedTheorem.getBranch());
assertEquals("test", updatedTheorem.getTheorem());
assertTrue(updatedTheorem.getProvenStatus()); assertTrue(updatedTheorem.getProvenStatus());
assertEquals(2, updatedTheorem.getReferencedTheorems().size()); assertEquals(2, updatedTheorem.getReferencedTheorems().size());
assertEquals(2, updatedTheorem.getReferencedDefinitions().size()); assertEquals(2, updatedTheorem.getReferencedDefinitions().size());
@@ -73,6 +75,7 @@ public class TheoremsIntegrationTest {
final Theorem theorem = new Theorem(); final Theorem theorem = new Theorem();
theorem.setName("Test theorem"); theorem.setName("Test theorem");
theorem.setTheorem("test");
theorem.setBranch("Test branch"); theorem.setBranch("Test branch");
theorem.setProvenStatus(true); theorem.setProvenStatus(true);
theorem.setTheoremType(TheoremType.THEOREM); theorem.setTheoremType(TheoremType.THEOREM);
@@ -75,13 +75,18 @@ public class ProofController {
@GetMapping("/branch") @GetMapping("/branch")
public @ResponseBody public @ResponseBody
ResponseEntity<List<Proof>> getAllProofsByBranch(@RequestParam("branch") final String branch) { ResponseEntity<List<Proof>> getAllProofsByBranch(@RequestParam("branch") String branch) {
LOG.info("Received request to query for proofs related to the {} branch of mathematics", branch); LOG.info("Received request to query for proofs related to the {} branch of mathematics", branch);
if (branch == null) { if (branch == null) {
LOG.error("ERROR: branch was null"); LOG.error("ERROR: branch was null");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST); 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); LOG.debug("Querying for proofs with branch {}", branch);
final StopWatch stopWatch = new StopWatch(); final StopWatch stopWatch = new StopWatch();
@@ -105,13 +110,18 @@ public class ProofController {
@GetMapping("/theorem_name") @GetMapping("/theorem_name")
public @ResponseBody public @ResponseBody
ResponseEntity<List<Proof>> getAllProofsByTheoremName(@PathVariable("theorem_name") final String theoremName) { ResponseEntity<List<Proof>> getAllProofsByTheoremName(@RequestParam("theorem_name") String theoremName) {
LOG.info("Received request to query for proofs of the theorem {}", theoremName); LOG.info("Received request to query for proofs of the theorem {}", theoremName);
if (theoremName == null) { if (theoremName == null) {
LOG.error("ERROR: theorem name was null"); LOG.error("ERROR: theorem name was null");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST); 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); LOG.debug("Querying for proofs of the theorem {}", theoremName);
final StopWatch stopWatch = new StopWatch(); final StopWatch stopWatch = new StopWatch();
@@ -45,13 +45,18 @@ public class TheoremController {
@GetMapping("/branch") @GetMapping("/branch")
public @ResponseBody public @ResponseBody
ResponseEntity<List<Theorem>> getAllTheoremsByBranch(@RequestParam("branch") final String branch) { ResponseEntity<List<Theorem>> getAllTheoremsByBranch(@RequestParam("branch") String branch) {
LOG.info("Received request to query for theorems related to the {} branch of mathematics", branch); LOG.info("Received request to query for theorems related to the {} branch of mathematics", branch);
if (branch == null) { if (branch == null) {
LOG.error("ERROR: branch was null"); LOG.error("ERROR: branch was null");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST); return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
} }
if (branch.contains("_") || branch.contains("-")) {
branch = branch.replace("_", " ");
branch = branch.replace("-", " ");
}
LOG.debug("Querying for theorems with branch {}", branch); LOG.debug("Querying for theorems with branch {}", branch);
final StopWatch stopWatch = new StopWatch(); final StopWatch stopWatch = new StopWatch();
@@ -75,19 +80,21 @@ public class TheoremController {
@GetMapping("/proven_status") @GetMapping("/proven_status")
public @ResponseBody public @ResponseBody
ResponseEntity<List<Theorem>> getAllTheoremsByProvenStatus(@PathVariable("proven_status") final Boolean provenStatus) { ResponseEntity<List<Theorem>> getAllTheoremsByProvenStatus(@RequestParam("proven_status") final String provenStatus) {
LOG.info("Received request to query for theorems whose proven status is {}", provenStatus); LOG.info("Received request to query for theorems whose proven status is {}", provenStatus);
if (provenStatus == null) { if (provenStatus == null) {
LOG.error("ERROR: status was null"); LOG.error("ERROR: status was null");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST); 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(); final StopWatch stopWatch = new StopWatch();
stopWatch.start(); stopWatch.start();
final List<Theorem> listOfTheorems = theoremRepository.findByProvenStatus(provenStatus); final List<Theorem> listOfTheorems = theoremRepository.findByProvenStatus(isProven);
stopWatch.stop(); stopWatch.stop();
@@ -95,23 +102,28 @@ public class TheoremController {
LOG.info("Returning list of all theorems with size {}", listOfTheorems.size()); LOG.info("Returning list of all theorems with size {}", listOfTheorems.size());
if (listOfTheorems.isEmpty()) { 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); 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); return new ResponseEntity<>(listOfTheorems, HttpStatus.OK);
} }
@GetMapping("/name") @GetMapping("/name")
public @ResponseBody public @ResponseBody
ResponseEntity<List<Theorem>> getAllTheoremsByName(@PathVariable("name") final String name) { ResponseEntity<List<Theorem>> getAllTheoremsByName(@RequestParam("name") String name) {
LOG.info("Received request to query for theorems whose name is {}", name); LOG.info("Received request to query for theorems whose name is {}", name);
if (name == null) { if (name == null) {
LOG.error("ERROR: name was null"); LOG.error("ERROR: name was null");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST); return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
} }
if (name.contains("_") || name.contains("-")) {
name = name.replace("_", " ");
name = name.replace("-", " ");
}
LOG.debug("Querying for theorems with name {}", name); LOG.debug("Querying for theorems with name {}", name);
final StopWatch stopWatch = new StopWatch(); final StopWatch stopWatch = new StopWatch();
@@ -135,7 +147,7 @@ public class TheoremController {
@GetMapping("/id") @GetMapping("/id")
public @ResponseBody public @ResponseBody
ResponseEntity<Theorem> getTheoremById(@PathVariable("id") final Integer id) { ResponseEntity<Theorem> getTheoremById(@RequestParam("id") final Integer id) {
LOG.info("Received request to query for theorem with id {}", id); LOG.info("Received request to query for theorem with id {}", id);
if (id == null) { if (id == null) {
LOG.error("ERROR: ID was null"); LOG.error("ERROR: ID was null");
@@ -8,6 +8,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
@@ -22,6 +23,11 @@ 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") @Size(min = 1, max = 512, message = "The name must be at least 1 character and at most 512 characters")
@Column(name = "theorem_name") @Column(name = "theorem_name")
private String theoremName; 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;
@NotNull(groups = Insert.class)
private Integer theorem;
@NotBlank(groups = Insert.class) @NotBlank(groups = Insert.class)
@Size(min = 1, max = 512, message = "The branch must be at least 1 character and at most 512 characters") @Size(min = 1, max = 512, message = "The branch must be at least 1 character and at most 512 characters")
private String branch; private String branch;
@@ -21,6 +21,7 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class Theorem extends BaseDto implements Serializable { 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; @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) @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; @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<String> referencedDefinitions; @Type(type = "json") @Column(name = "referenced_definitions", columnDefinition = "jsonb") private List<String> referencedDefinitions;
@@ -53,7 +53,7 @@ public class ProofControllerTest {
when(proofRepository.findByBranch(anyString())).thenReturn(listOfProofs); when(proofRepository.findByBranch(anyString())).thenReturn(listOfProofs);
final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByBranch("test"); final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByBranch("Test_branch");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); assertEquals(HttpStatus.OK, responseEntity.getStatusCode());
@@ -77,7 +77,7 @@ public class ProofControllerTest {
public void testGetAllProofsByBranch_noProofsFound() { public void testGetAllProofsByBranch_noProofsFound() {
when(proofRepository.findByBranch(anyString())).thenReturn(Collections.emptyList()); when(proofRepository.findByBranch(anyString())).thenReturn(Collections.emptyList());
final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByBranch("test nonexistent branch"); final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByBranch("test-nonexistent-branch");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertFalse(responseEntity.hasBody()); assertFalse(responseEntity.hasBody());
@@ -93,7 +93,7 @@ public class ProofControllerTest {
when(proofRepository.findByTheoremName(anyString())).thenReturn(listOfProofs); when(proofRepository.findByTheoremName(anyString())).thenReturn(listOfProofs);
final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByTheoremName("test"); final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByTheoremName("Test_proof");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); assertEquals(HttpStatus.OK, responseEntity.getStatusCode());
@@ -104,7 +104,7 @@ public class ProofControllerTest {
} }
@Test @Test
public void testGetAllProfsByTheoremName_nullTheoremName() { public void testGetAllProofsByTheoremName_nullTheoremName() {
final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByTheoremName(null); final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByTheoremName(null);
assertNotNull(responseEntity); assertNotNull(responseEntity);
@@ -117,7 +117,7 @@ public class ProofControllerTest {
public void testGetAllProofsByTheoremName_noProofsFound() { public void testGetAllProofsByTheoremName_noProofsFound() {
when(proofRepository.findByTheoremName(anyString())).thenReturn(Collections.emptyList()); when(proofRepository.findByTheoremName(anyString())).thenReturn(Collections.emptyList());
final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByTheoremName("test nonexistent branch"); final ResponseEntity<List<Proof>> responseEntity = proofController.getAllProofsByTheoremName("test-nonexistent-proof");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertFalse(responseEntity.hasBody()); assertFalse(responseEntity.hasBody());
@@ -298,7 +298,9 @@ public class ProofControllerTest {
final Proof proof = new Proof(); final Proof proof = new Proof();
proof.setTheoremName("Test proof"); proof.setTheoremName("Test proof");
proof.setTheorem(1);
proof.setBranch("Test branch"); proof.setBranch("Test branch");
proof.setProof("test proof");
proof.setDateCreated(new Date()); proof.setDateCreated(new Date());
proof.setReferencedTheorems(referencedTheoremsList); proof.setReferencedTheorems(referencedTheoremsList);
proof.setReferencedDefinitions(referencedDefinitionsList); proof.setReferencedDefinitions(referencedDefinitionsList);
@@ -95,7 +95,7 @@ public class TheoremControllerTest {
when(theoremRepository.findByBranch(anyString())).thenReturn(listOfTheorems); when(theoremRepository.findByBranch(anyString())).thenReturn(listOfTheorems);
final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByBranch("test"); final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByBranch("test-branch");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); assertEquals(HttpStatus.OK, responseEntity.getStatusCode());
@@ -119,7 +119,7 @@ public class TheoremControllerTest {
public void testGetAllTheoremsByBranch_noTheoremsFound() { public void testGetAllTheoremsByBranch_noTheoremsFound() {
when(theoremRepository.findByBranch(anyString())).thenReturn(Collections.emptyList()); when(theoremRepository.findByBranch(anyString())).thenReturn(Collections.emptyList());
final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByBranch("test nonexistent branch"); final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByBranch("test_nonexistent_branch");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertFalse(responseEntity.hasBody()); assertFalse(responseEntity.hasBody());
@@ -135,7 +135,7 @@ public class TheoremControllerTest {
when(theoremRepository.findByProvenStatus(anyBoolean())).thenReturn(listOfTheorems); when(theoremRepository.findByProvenStatus(anyBoolean())).thenReturn(listOfTheorems);
final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByProvenStatus(true); final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByProvenStatus("true");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); assertEquals(HttpStatus.OK, responseEntity.getStatusCode());
@@ -155,11 +155,20 @@ public class TheoremControllerTest {
verifyZeroInteractions(theoremRepository); verifyZeroInteractions(theoremRepository);
} }
@Test
public void testGetAllTheoremsByProvenStatus_invalidProvenStatus() {
final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByProvenStatus("test");
assertNotNull(responseEntity);
assertFalse(responseEntity.hasBody());
assertEquals(HttpStatus.NOT_FOUND, responseEntity.getStatusCode());
}
@Test @Test
public void testGetAllTheoremsByProvenStatus_noTheoremsFound() { public void testGetAllTheoremsByProvenStatus_noTheoremsFound() {
when(theoremRepository.findByProvenStatus(anyBoolean())).thenReturn(Collections.emptyList()); when(theoremRepository.findByProvenStatus(anyBoolean())).thenReturn(Collections.emptyList());
final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByProvenStatus(false); final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByProvenStatus("false");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertFalse(responseEntity.hasBody()); assertFalse(responseEntity.hasBody());
@@ -175,7 +184,7 @@ public class TheoremControllerTest {
when(theoremRepository.findByName(anyString())).thenReturn(listOfTheorems); when(theoremRepository.findByName(anyString())).thenReturn(listOfTheorems);
final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByName("Test Theorem"); final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByName("Test_Theorem");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); assertEquals(HttpStatus.OK, responseEntity.getStatusCode());
@@ -199,7 +208,7 @@ public class TheoremControllerTest {
public void testGetAllTheoremsByName_noNameFound() { public void testGetAllTheoremsByName_noNameFound() {
when(theoremRepository.findByName(anyString())).thenReturn(Collections.emptyList()); when(theoremRepository.findByName(anyString())).thenReturn(Collections.emptyList());
final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByName("No name"); final ResponseEntity<List<Theorem>> responseEntity = theoremController.getAllTheoremsByName("No-name");
assertNotNull(responseEntity); assertNotNull(responseEntity);
assertFalse(responseEntity.hasBody()); assertFalse(responseEntity.hasBody());
@@ -343,6 +352,7 @@ public class TheoremControllerTest {
final Theorem theorem = new Theorem(); final Theorem theorem = new Theorem();
theorem.setName("Test theorem"); theorem.setName("Test theorem");
theorem.setTheorem("test theorem thing here");
theorem.setBranch("Test branch"); theorem.setBranch("Test branch");
theorem.setProvenStatus(true); theorem.setProvenStatus(true);
theorem.setTheoremType(TheoremType.THEOREM); theorem.setTheoremType(TheoremType.THEOREM);
@@ -38,7 +38,7 @@ public class UserServiceIntegrationTest {
assertEquals("test password", returnedAccount.getPassword()); assertEquals("test password", returnedAccount.getPassword());
assertFalse(returnedAccount.isAdministratorStatus()); assertFalse(returnedAccount.isAdministratorStatus());
final Optional<Account> updatePasswordTestCreatedAccount = userService.updatePassword(returnedAccount, "password"); final Optional<Account> updatePasswordTestCreatedAccount = userService.updateAccount(returnedAccount);
assertTrue(updatePasswordTestCreatedAccount.isPresent()); assertTrue(updatePasswordTestCreatedAccount.isPresent());
final Account returnedUpdatedPasswordAccount = updatePasswordTestCreatedAccount.get(); final Account returnedUpdatedPasswordAccount = updatePasswordTestCreatedAccount.get();
@@ -17,9 +17,6 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.*; import static org.mockito.Matchers.*;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class UserServiceTest { public class UserServiceTest {
@Mock @Mock
@@ -3,16 +3,10 @@ package edu.msudenver.tsp.website;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication @SpringBootApplication
public class Application { public class Application {
public static void main(final String[] args) { public static void main(final String[] args) {
SpringApplication.run(Application.class, args); SpringApplication.run(Application.class, args);
} }
} }
@@ -1,4 +0,0 @@
package edu.msudenver.tsp.website;
public class ProofsDriver {
}
@@ -0,0 +1,33 @@
package edu.msudenver.tsp.website.controller;
import edu.msudenver.tsp.website.forms.TheoremForm;
import lombok.AllArgsConstructor;
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.servlet.ModelAndView;
@Slf4j
@Controller
@AllArgsConstructor
@RequestMapping("/theorem")
public class TheoremEntryController {
@GetMapping({"/",""})
public ModelAndView enterTheoremPage() {
LOG.info("Received request to display the theorem entry page: returning model with name 'Theorem'");
return new ModelAndView("Theorem");
}
@PostMapping({"/",""})
public String saveTheorem(@Validated final TheoremForm theoremForm, final Model model) {
model.addAttribute("theoremName", theoremForm.getTheoremName());
model.addAttribute("theorem", theoremForm.getTheorem());
LOG.info("Saving theorem {}...", theoremForm);
return "success";
}
}
@@ -0,0 +1,11 @@
package edu.msudenver.tsp.website.forms;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class TheoremForm {
private String theoremName;
private String theorem;
}
@@ -0,0 +1,2 @@
spring.mvc.view.prefix:/WEB-INF/jsp/
spring.mvc.view.suffix:.jsp
+20
View File
@@ -0,0 +1,20 @@
<%@ page contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Theorem Entry</title>
</head>
<body>
<form method="post" action="">
<label>Theorem Name:
<input type="text" name="theoremName"/>
</label>
<br><label>Theorem:
<input type="text" name="theorem"/>
</label><br>
<input type="submit" value="Save">
</form>
</body>
</html>
+7
View File
@@ -0,0 +1,7 @@
<html>
<body>
<br><b>Name: </b><%= request.getParameter("theoremName")%>
<br><b>Theorem: </b><%= request.getParameter("theorem")%>
</body>
</html>
-25
View File
@@ -1,25 +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" pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Theroem Prover</title>
</head>
<body>
<div>
<div>
<h1>Theorem Prover</h1>
<h2>Hello! ${message}</h2>
Click on this <strong><a href="next">link</a></strong> to visit theorem entering page.
</div>
</div>
</body>
</html>
@@ -1,5 +0,0 @@
package edu.msudenver.tsp.website;
public class ProofsDriverTest {
}
@@ -0,0 +1,23 @@
package edu.msudenver.tsp.website.controller;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.web.servlet.ModelAndView;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@RunWith(MockitoJUnitRunner.class)
public class TheoremEntryControllerTest {
private final TheoremEntryController theoremEntryController = new TheoremEntryController();
@Test
public void testEnterTheoremPage() {
final ModelAndView modelAndView = theoremEntryController.enterTheoremPage();
assertNotNull(modelAndView);
assertEquals("Theorem", modelAndView.getViewName());
}
}