From 80f55c4879aa4eace47f297514a5a963dbae259c Mon Sep 17 00:00:00 2001 From: atusa17 Date: Thu, 21 Mar 2019 10:25:52 -0600 Subject: [PATCH 01/13] 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 02/13] 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 03/13] 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 04/13] 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 05/13] 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 06/13] 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 07/13] 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 08/13] 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 09/13] 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 10/13] 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 11/13] 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 12/13] 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 13/13] 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