From 798d8e80b83ce87fd610dce892ec8942df43da2e Mon Sep 17 00:00:00 2001 From: Terri Penn Date: Mon, 27 Nov 2023 19:54:10 -0600 Subject: [PATCH] Modify regex in TestTaskTwo.testSqlQuery() to allow for no spaces before and after = Modify regex in TestTaskFour.testSqlQuery to allow for no spaces before and after ='s, and also permit parenthesis for some clauses (as long they are matched) --- .../org/launchcode/techjobs/persistent/TestTaskFour.java | 7 ++++--- .../org/launchcode/techjobs/persistent/TestTaskTwo.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/launchcode/techjobs/persistent/TestTaskFour.java b/src/test/java/org/launchcode/techjobs/persistent/TestTaskFour.java index 093c091ab..cababa78e 100644 --- a/src/test/java/org/launchcode/techjobs/persistent/TestTaskFour.java +++ b/src/test/java/org/launchcode/techjobs/persistent/TestTaskFour.java @@ -217,9 +217,10 @@ public void testJobSkillsRefactoring () throws ClassNotFoundException, NoSuchMet public void testSqlQuery () throws IOException { String queryFileContents = getFileContents("queries.sql"); - Pattern queryPattern = Pattern.compile("SELECT\\s+\\*\\s+FROM\\s+skill" + - "\\s*(LEFT|INNER)?\\s+JOIN\\s+job_skills\\s+ON\\s+(skill.id\\s+=\\s+job_skills.skills_id|job_skills.skills_id\\s+=\\s+skill.id)" + - "(\\s*WHERE\\s+job_skills.jobs_id\\s+IS\\s+NOT\\s+NULL)?" + + Pattern queryPattern = Pattern.compile("(?=[^()]*(\\([^()]+\\)[^()]*)*$)" + + "SELECT\\s+\\*\\s+FROM\\s+skill" + + "\\s*(LEFT|INNER)?\\s+JOIN\\s+job_skills\\s+ON\\s+\\(?(skill.id\\s*=\\s*job_skills.skills_id|job_skills.skills_id\\s*=\\s*skill.id)\\)?" + + "(\\s*WHERE\\s+\\(?job_skills.jobs_id\\s+IS\\s+NOT\\s+NULL\\)?)?" + "\\s*ORDER\\s+BY\\s+name\\s+ASC;", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); Matcher queryMatcher = queryPattern.matcher(queryFileContents); boolean queryFound = queryMatcher.find(); diff --git a/src/test/java/org/launchcode/techjobs/persistent/TestTaskTwo.java b/src/test/java/org/launchcode/techjobs/persistent/TestTaskTwo.java index 6c1f8d03a..83de30be0 100644 --- a/src/test/java/org/launchcode/techjobs/persistent/TestTaskTwo.java +++ b/src/test/java/org/launchcode/techjobs/persistent/TestTaskTwo.java @@ -548,7 +548,7 @@ public void testSkillRepositoryHasRepositoryAnnotation () throws ClassNotFoundEx // public void testSqlQuery() throws IOException { // String queryFileContents = getFileContents("queries.sql"); // -// Pattern queryPattern = Pattern.compile("SELECT\\s+name\\s+FROM\\s+employer\\s+WHERE\\s+location\\s+=\\s+\"St.\\s+Louis\\s+City\";", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); +// Pattern queryPattern = Pattern.compile("SELECT\\s+name\\s+FROM\\s+employer\\s+WHERE\\s+location\\s*=\\s*\"St.\\s+Louis\\s+City\";", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); // Matcher queryMatcher = queryPattern.matcher(queryFileContents); // boolean queryFound = queryMatcher.find(); // assertTrue(queryFound, "Task 2 SQL query is incorrect. Test your query against your database to find the error.");