From affb7c8dbbc7f27ea7abb436395d281eadb3563f Mon Sep 17 00:00:00 2001
From: alistairdeane <ad02184@surrey.ac.uk>
Date: Sun, 12 May 2024 16:14:44 +0100
Subject: [PATCH] finished

---
 README.md                                     | 100 ++----
 pom.xml                                       |  90 ++++++
 src/main/java/com/flickfinder/AppConfig.java  |  69 +++++
 src/main/java/com/flickfinder/Main.java       |  34 +++
 .../controller/MovieController.java           | 120 ++++++++
 .../controller/PersonController.java          |  69 +++++
 .../java/com/flickfinder/dao/MovieDAO.java    | 120 ++++++++
 .../java/com/flickfinder/dao/PersonDAO.java   |  76 +++++
 .../java/com/flickfinder/model/Movie.java     |  83 +++++
 .../com/flickfinder/model/MovieRating.java    |  26 ++
 .../java/com/flickfinder/model/Person.java    |  53 ++++
 .../java/com/flickfinder/util/Database.java   | 111 +++++++
 src/main/resources/movies.db                  |   0
 src/main/resources/public/index.html          |  74 +++++
 .../com/flickfinder/IntegrationTests.java     | 174 +++++++++++
 .../controller/MovieControllerTest.java       | 124 ++++++++
 .../controller/PersonControllerTest.java      |  72 +++++
 .../com/flickfinder/dao/MovieDAOTest.java     | 107 +++++++
 .../com/flickfinder/dao/PersonDAOTest.java    |  74 +++++
 .../java/com/flickfinder/model/MovieTest.java |  51 ++++
 .../com/flickfinder/model/PersonTest.java     |  37 +++
 .../java/com/flickfinder/util/Seeder.java     | 172 +++++++++++
 target/COM1028-ad02184-1.0-SNAPSHOT.jar       | Bin 0 -> 16030 bytes
 target/classes/META-INF/MANIFEST.MF           |   4 +
 .../COM1028-ad02184/pom.properties            |   7 +
 .../com.flickfinder/COM1028-ad02184/pom.xml   |  90 ++++++
 .../classes/com/flickfinder/AppConfig.class   | Bin 0 -> 3211 bytes
 target/classes/com/flickfinder/Main.class     | Bin 0 -> 822 bytes
 .../controller/MovieController.class          | Bin 0 -> 2738 bytes
 .../controller/PersonController.class         | Bin 0 -> 2458 bytes
 .../com/flickfinder/dao/MovieDAO.class        | Bin 0 -> 4523 bytes
 .../com/flickfinder/dao/PersonDAO.class       | Bin 0 -> 3606 bytes
 .../classes/com/flickfinder/model/Movie.class | Bin 0 -> 1561 bytes
 .../com/flickfinder/model/MovieRating.class   | Bin 0 -> 1051 bytes
 .../com/flickfinder/model/Person.class        | Bin 0 -> 1597 bytes
 .../com/flickfinder/util/Database.class       | Bin 0 -> 1444 bytes
 target/classes/movies.db                      |   0
 target/classes/public/index.html              |  74 +++++
 target/maven-archiver/pom.properties          |   3 +
 .../compile/default-compile/createdFiles.lst  |   0
 .../compile/default-compile/inputFiles.lst    |  10 +
 .../default-testCompile/createdFiles.lst      |   0
 .../default-testCompile/inputFiles.lst        |   8 +
 .../TEST-com.flickfinder.IntegrationTests.xml | 287 ++++++++++++++++++
 ...kfinder.controller.MovieControllerTest.xml | 219 +++++++++++++
 ...finder.controller.PersonControllerTest.xml | 225 ++++++++++++++
 .../TEST-com.flickfinder.dao.MovieDAOTest.xml |  65 ++++
 ...TEST-com.flickfinder.dao.PersonDAOTest.xml |  65 ++++
 .../TEST-com.flickfinder.model.MovieTest.xml  |  64 ++++
 .../TEST-com.flickfinder.model.PersonTest.xml |  64 ++++
 .../com.flickfinder.IntegrationTests.txt      |   4 +
 ...kfinder.controller.MovieControllerTest.txt |   4 +
 ...finder.controller.PersonControllerTest.txt |   4 +
 .../com.flickfinder.dao.MovieDAOTest.txt      |   4 +
 .../com.flickfinder.dao.PersonDAOTest.txt     |   4 +
 .../com.flickfinder.model.MovieTest.txt       |   4 +
 .../com.flickfinder.model.PersonTest.txt      |   4 +
 .../com/flickfinder/IntegrationTests.class    | Bin 0 -> 6458 bytes
 .../controller/MovieControllerTest.class      | Bin 0 -> 2738 bytes
 .../controller/PersonControllerTest.class     | Bin 0 -> 2758 bytes
 .../com/flickfinder/dao/MovieDAOTest.class    | Bin 0 -> 2426 bytes
 .../com/flickfinder/dao/PersonDAOTest.class   | Bin 0 -> 2429 bytes
 .../com/flickfinder/model/MovieTest.class     | Bin 0 -> 1270 bytes
 .../com/flickfinder/model/PersonTest.class    | Bin 0 -> 1286 bytes
 .../com/flickfinder/util/Seeder.class         | Bin 0 -> 4690 bytes
 65 files changed, 2979 insertions(+), 70 deletions(-)
 create mode 100644 pom.xml
 create mode 100644 src/main/java/com/flickfinder/AppConfig.java
 create mode 100644 src/main/java/com/flickfinder/Main.java
 create mode 100644 src/main/java/com/flickfinder/controller/MovieController.java
 create mode 100644 src/main/java/com/flickfinder/controller/PersonController.java
 create mode 100644 src/main/java/com/flickfinder/dao/MovieDAO.java
 create mode 100644 src/main/java/com/flickfinder/dao/PersonDAO.java
 create mode 100644 src/main/java/com/flickfinder/model/Movie.java
 create mode 100644 src/main/java/com/flickfinder/model/MovieRating.java
 create mode 100644 src/main/java/com/flickfinder/model/Person.java
 create mode 100644 src/main/java/com/flickfinder/util/Database.java
 create mode 100644 src/main/resources/movies.db
 create mode 100644 src/main/resources/public/index.html
 create mode 100644 src/test/java/com/flickfinder/IntegrationTests.java
 create mode 100644 src/test/java/com/flickfinder/controller/MovieControllerTest.java
 create mode 100644 src/test/java/com/flickfinder/controller/PersonControllerTest.java
 create mode 100644 src/test/java/com/flickfinder/dao/MovieDAOTest.java
 create mode 100644 src/test/java/com/flickfinder/dao/PersonDAOTest.java
 create mode 100644 src/test/java/com/flickfinder/model/MovieTest.java
 create mode 100644 src/test/java/com/flickfinder/model/PersonTest.java
 create mode 100644 src/test/java/com/flickfinder/util/Seeder.java
 create mode 100644 target/COM1028-ad02184-1.0-SNAPSHOT.jar
 create mode 100644 target/classes/META-INF/MANIFEST.MF
 create mode 100644 target/classes/META-INF/maven/com.flickfinder/COM1028-ad02184/pom.properties
 create mode 100644 target/classes/META-INF/maven/com.flickfinder/COM1028-ad02184/pom.xml
 create mode 100644 target/classes/com/flickfinder/AppConfig.class
 create mode 100644 target/classes/com/flickfinder/Main.class
 create mode 100644 target/classes/com/flickfinder/controller/MovieController.class
 create mode 100644 target/classes/com/flickfinder/controller/PersonController.class
 create mode 100644 target/classes/com/flickfinder/dao/MovieDAO.class
 create mode 100644 target/classes/com/flickfinder/dao/PersonDAO.class
 create mode 100644 target/classes/com/flickfinder/model/Movie.class
 create mode 100644 target/classes/com/flickfinder/model/MovieRating.class
 create mode 100644 target/classes/com/flickfinder/model/Person.class
 create mode 100644 target/classes/com/flickfinder/util/Database.class
 create mode 100644 target/classes/movies.db
 create mode 100644 target/classes/public/index.html
 create mode 100644 target/maven-archiver/pom.properties
 create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
 create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
 create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
 create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
 create mode 100644 target/surefire-reports/TEST-com.flickfinder.IntegrationTests.xml
 create mode 100644 target/surefire-reports/TEST-com.flickfinder.controller.MovieControllerTest.xml
 create mode 100644 target/surefire-reports/TEST-com.flickfinder.controller.PersonControllerTest.xml
 create mode 100644 target/surefire-reports/TEST-com.flickfinder.dao.MovieDAOTest.xml
 create mode 100644 target/surefire-reports/TEST-com.flickfinder.dao.PersonDAOTest.xml
 create mode 100644 target/surefire-reports/TEST-com.flickfinder.model.MovieTest.xml
 create mode 100644 target/surefire-reports/TEST-com.flickfinder.model.PersonTest.xml
 create mode 100644 target/surefire-reports/com.flickfinder.IntegrationTests.txt
 create mode 100644 target/surefire-reports/com.flickfinder.controller.MovieControllerTest.txt
 create mode 100644 target/surefire-reports/com.flickfinder.controller.PersonControllerTest.txt
 create mode 100644 target/surefire-reports/com.flickfinder.dao.MovieDAOTest.txt
 create mode 100644 target/surefire-reports/com.flickfinder.dao.PersonDAOTest.txt
 create mode 100644 target/surefire-reports/com.flickfinder.model.MovieTest.txt
 create mode 100644 target/surefire-reports/com.flickfinder.model.PersonTest.txt
 create mode 100644 target/test-classes/com/flickfinder/IntegrationTests.class
 create mode 100644 target/test-classes/com/flickfinder/controller/MovieControllerTest.class
 create mode 100644 target/test-classes/com/flickfinder/controller/PersonControllerTest.class
 create mode 100644 target/test-classes/com/flickfinder/dao/MovieDAOTest.class
 create mode 100644 target/test-classes/com/flickfinder/dao/PersonDAOTest.class
 create mode 100644 target/test-classes/com/flickfinder/model/MovieTest.class
 create mode 100644 target/test-classes/com/flickfinder/model/PersonTest.class
 create mode 100644 target/test-classes/com/flickfinder/util/Seeder.class

diff --git a/README.md b/README.md
index 2051d35..3c0f2e1 100644
--- a/README.md
+++ b/README.md
@@ -1,93 +1,53 @@
-# Fortommy
+## COM1028 Software Engineering - FlickFinder
 
+This is the starting project for the COM1028 Software Engineering module. This project is a simple application that provides a RESTful API for accessing a movie database. The database is a simple SQLite database that contains information about movies, people, and their relationships.
 
+## Dependencies
 
-## Getting started
+Overall, we have the following dependencies in our project:
 
-To make it easy for you to get started with GitLab, here's a list of recommended next steps.
+- [sqllite-jdbc](https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc) - SQLite JDBC Driver
+- [javalin](https://javalin.io/) - A simple web framework for Java
+- [junit](https://junit.org/junit5/) - JUnit for unit testing
+- [mockito](https://site.mockito.org/) - Mockito for mocking objects in unit tests
+- [rest-assured](https://rest-assured.io/) - Testing and validating our APIs
 
-Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
+These dependencies are managed by Maven, and you can find them in the [pom.xml](pom.xml) file.
 
-## Add your files
+## Database
 
-- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
+### Development Database
 
-```
-cd existing_repo
-git remote add origin https://gitlab.surrey.ac.uk/ad02184/fortommy.git
-git branch -M main
-git push -uf origin main
-```
+The database is a simple SQLite database that contains information about movies, people, and their relationships. The database is structured as follows:
 
-## Integrate with your tools
+![Database](https://csee.pages.surrey.ac.uk/com1028/res/ERD.png)
 
-- [ ] [Set up project integrations](https://gitlab.surrey.ac.uk/ad02184/fortommy/-/settings/integrations)
+You've been given the IMDB movies database to work with. It is a simple database and you will only need to interact with it in a read only manner; you will not be adding data or modifying the database.
 
-## Collaborate with your team
+You can find the database in the [src/main/resources](src/main/resources) folder. The database is called `movies.db`. You should not modify this database in any way. However, it won't be there until you run the project for the first time. I am using the com.googlecode.maven-download-plugin to pull the database in from a remote location. This is defined in the [pom.xml](pom.xml) file. It should be pulled when you run the project for the first time.
 
-- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
-- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
-- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
+### Testing Database
 
-## Test and Deploy
+Although the development database is simple, it has a lot of data. This can make testing difficult. For testing we use a in-memory database. This database is created and populated with data before each test and destroyed after each test. This code can be found in [src/test/java/com/flickfinder/util/Seeder.java](src/test/java/com/flickfinder/util/Seeder.java).
 
-Use the built-in continuous integration in GitLab.
+## Getting Started
 
-- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
-- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
-- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
-- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
-- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
+1. Clone the repository: `git clone <repository address>`
+2. Open the project in your favourite IDE (IntelliJ, Eclipse, etc.). While you can use any IDE, these instructions will assume you are using Eclipse. The project is a Maven project; as such, the process should be similar in other IDEs.
+3. In Eclipse, got to File -> Open Projects from File System... and select the root directory of the project.
 
-***
+![Open Project](https://csee.pages.surrey.ac.uk/com1028/res/open_project.png)
 
-# Editing this README
+4. In the package explorer, right click on the project and select Run As -> Maven Install. This will download all the dependencies and build the project, including the database.
 
-When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
+![Maven Install](https://csee.pages.surrey.ac.uk/com1028/res/maven_install.png)
 
-## Suggestions for a good README
+5. If all has gone well, you should see a message in the console saying "BUILD SUCCESS". If you see this, you are ready to run the project. Ignore, any warnings or errors about JRE System Library.
 
-Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
+![Build Success](https://csee.pages.surrey.ac.uk/com1028/res/build_success.png)
 
-## Name
-Choose a self-explaining name for your project.
+6. To run the project, right click on the project in the package explorer and locate `src/main/java/com/flickfinder/Main.java`, right click on this file and select Run As -> Java Application.
 
-## Description
-Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
+7. You'll see a warning in the console: "SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". This is not a problem and can be ignored.
 
-## Badges
-On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
-
-## Visuals
-Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
-
-## Installation
-Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
-
-## Usage
-Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
-
-## Support
-Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
-
-## Roadmap
-If you have ideas for releases in the future, it is a good idea to list them in the README.
-
-## Contributing
-State if you are open to contributions and what your requirements are for accepting them.
-
-For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
-
-You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
-
-## Authors and acknowledgment
-Show your appreciation to those who have contributed to the project.
-
-## License
-For open source projects, say how it is licensed.
-
-## Project status
-If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
+8. Open a browser. Ideally one with JSON rendering capabilities (e.g.Firefox or Chrome with a JSON extension). In the address bar, type `http://localhost:8000`. If all has gone well, you should see the API documentation.
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..8e36542
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+	<groupId>com.flickfinder</groupId>
+	<artifactId>COM1028-ad02184</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <!-- sql light drivers -->
+        <dependency>
+            <groupId>org.xerial</groupId>
+            <artifactId>sqlite-jdbc</artifactId>
+            <version>3.45.1.0</version>
+        </dependency>
+
+        <!-- javalin for the api -->
+
+        <dependency>
+            <groupId>io.javalin</groupId>
+            <artifactId>javalin</artifactId>
+            <version>6.0.0</version>
+        </dependency>
+
+        <!-- this is a dependancy for javalin -->
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.16.1</version>
+        </dependency>
+
+        <!-- j unit -->
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-api</artifactId>
+            <version>5.8.2</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- mockito -->
+
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>5.10.0</version>
+        </dependency>
+
+        <!-- rest assured -->
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <version>5.4.0</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.googlecode.maven-download-plugin</groupId>
+                <artifactId>download-maven-plugin</artifactId>
+                <version>1.6.0</version>
+                <executions>
+                    <execution>
+                        <id>download-file</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            <url>
+                                https://csee.pages.surrey.ac.uk/com1028/res/movies.db</url>
+                            <outputDirectory>${project.basedir}/src/main/resources</outputDirectory>
+                            <outputFileName>movies.db</outputFileName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/src/main/java/com/flickfinder/AppConfig.java b/src/main/java/com/flickfinder/AppConfig.java
new file mode 100644
index 0000000..49f0fc8
--- /dev/null
+++ b/src/main/java/com/flickfinder/AppConfig.java
@@ -0,0 +1,69 @@
+package com.flickfinder;
+
+import com.flickfinder.controller.MovieController;
+import com.flickfinder.controller.PersonController;
+import com.flickfinder.dao.MovieDAO;
+import com.flickfinder.dao.PersonDAO;
+
+import io.javalin.Javalin;
+import io.javalin.http.staticfiles.Location;
+
+/**
+ * This class is used to configure the Javalin web server.
+ * It sets up the routes and the static files location.
+ * As you implement the remaining functionality, you will need to update this
+ * class.
+ * 
+ */
+
+public class AppConfig {
+
+	/**
+	 * Sets up the routes and the static files location.
+	 * As you can see, the routes are currently incomplete. Depending on how far you
+	 * get in the assessment, you will update some or all of the routes in this
+	 * method.
+	 * 
+	 * @param port The port that the server should run on.
+	 * @return The Javalin object that represents the running server.
+	 */
+	public static Javalin startServer(int port) {
+		Javalin app = Javalin.create(config -> {
+			config.staticFiles.add("/public", Location.CLASSPATH);
+		}).start(port);
+
+		// Set up controllers
+		MovieDAO movieDao = new MovieDAO();
+		MovieController movieController = new MovieController(movieDao);
+		
+		PersonDAO personDao = new PersonDAO();
+		PersonController personController = new PersonController(personDao);
+
+		// Uncomment the following lines as you progress through the assessment.
+		// PersonController personController = new PersonController();
+		// PersonDAO personDao = new PersonDAO();
+		// PersonController personController = new PersonController(personDao);
+
+		/**
+		 * Below are the routes for the application.
+		 * You will need uncomment these as you progress through the assessment.
+		 * Do not:
+		 * - change the strings and methods passed to the get() method.
+		 * - change the order of the routes. Order matters in Javalin, as the routes are
+		 * pattern matched in the order they are defined.
+		 * Only uncomment the routes for the functionality you have implemented.
+		 */
+		app.get("/movies/ratings/{year}", movieController::getRatingsByYear);
+		app.get("/movies", movieController::getAllMovies);
+		app.get("/movies/{id}", movieController::getMovieById);
+		app.get("/movies/{id}/stars", movieController::getPeopleByMovieId);
+
+		app.get("/people", personController::getAllPeople);
+		app.get("/people/{id}", personController::getPersonById);
+		app.get("/people/{id}/movies", personController::getMoviesStarringPerson);
+
+		return app;
+
+	}
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/flickfinder/Main.java b/src/main/java/com/flickfinder/Main.java
new file mode 100644
index 0000000..9fb2e0f
--- /dev/null
+++ b/src/main/java/com/flickfinder/Main.java
@@ -0,0 +1,34 @@
+package com.flickfinder;
+
+import com.flickfinder.util.Database;
+
+/**
+ * Entry point of the application.
+ * 
+ */
+
+public class Main {
+    /**
+     * The port that the server should run on.
+     */
+    static int port = 8000;
+
+    /**
+     * Set up a Javalin server and the database.
+     * 
+     * @param args The command line arguments.
+     */
+    public static void main(String[] args) {
+
+        // This gives us a path to the database file, which is in the resources folder.
+        final String dbPath = "src/main/resources/movies.db";
+        /**
+         * This sets up the database connection and starts the server.
+         * In this case, we are using a connection string to connect to the database.
+         * For testing, we are using an in-memory database.
+         */
+        Database.getInstance("jdbc:sqlite:" + dbPath);
+        // start the server
+        AppConfig.startServer(port);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/flickfinder/controller/MovieController.java b/src/main/java/com/flickfinder/controller/MovieController.java
new file mode 100644
index 0000000..91d6895
--- /dev/null
+++ b/src/main/java/com/flickfinder/controller/MovieController.java
@@ -0,0 +1,120 @@
+package com.flickfinder.controller;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import com.flickfinder.dao.MovieDAO;
+import com.flickfinder.model.Movie;
+
+import io.javalin.http.Context;
+
+/**
+ * The controller for the movie endpoints.
+ * 
+ * The controller acts as an intermediary between the HTTP routes and the DAO.
+ * 
+ * As you can see each method in the controller class is responsible for
+ * handling a specific HTTP request.
+ * 
+ * Methods a Javalin Context object as a parameter and uses it to send a
+ * response back to the client.
+ * We also handle business logic in the controller, such as validating input and
+ * handling errors.
+ *
+ * Notice that the methods don't return anything. Instead, they use the Javalin
+ * Context object to send a response back to the client.
+ */
+
+public class MovieController {
+
+	/**
+	 * The movie data access object.
+	 */
+
+	private final MovieDAO movieDAO;
+
+	/**
+	 * Constructs a MovieController object and initializes the movieDAO.
+	 */
+	public MovieController(MovieDAO movieDAO) {
+		this.movieDAO = movieDAO;
+	}
+
+	/**
+	 * Returns a list of all movies in the database.
+	 * 
+	 * @param ctx the Javalin context
+	 */
+	public void getAllMovies(Context ctx) {
+		String limitparam = ctx.queryParam("limit");
+		try {
+			ctx.json(movieDAO.getAllMovies(limitparam));
+		} catch (SQLException e) {
+			ctx.status(500);
+			ctx.result("Database error");		if(limitparam == null) {
+				limitparam = "50";
+			}
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Returns the movie with the specified id.
+	 * 
+	 * @param ctx the Javalin context
+	 */
+	public void getMovieById(Context ctx) {
+
+		int id = Integer.parseInt(ctx.pathParam("id"));
+		try {
+			Movie movie = movieDAO.getMovieById(id);
+			if (movie == null) {
+				ctx.status(404);
+				ctx.result("Movie not found");
+				return;
+			}
+			ctx.json(movieDAO.getMovieById(id));
+		} catch (SQLException e) {
+			ctx.status(500);
+			ctx.result("Database error");
+			e.printStackTrace();
+		}
+	}
+	public void getRatingsByYear(Context ctx) {
+
+		int year = Integer.parseInt(ctx.pathParam("year"));
+		String limitparam = ctx.queryParam("limit");
+		String voteparam = ctx.queryParam("votes");
+		if(limitparam == null) {
+			limitparam = "50";
+		}
+		if (voteparam == null){
+			voteparam = "0";
+		}
+		try {
+			List<Movie> movie = movieDAO.getRatingsByYear(year, limitparam, voteparam);
+			if (movie == null) {
+				ctx.status(404);
+				ctx.result("Movie not found");
+				return;
+			}
+			ctx.json(movieDAO.getRatingsByYear(year, limitparam, voteparam));
+		} catch (SQLException e) {
+			ctx.status(500);
+			ctx.result("Database error");
+			e.printStackTrace();
+		}
+	}
+	
+	public void getPeopleByMovieId(Context ctx) {
+		int id = Integer.parseInt(ctx.pathParam("id"));
+		try {
+			ctx.json(movieDAO.getPeopleByMovieId(id));
+		} catch (SQLException e) {
+			ctx.status(500);
+			ctx.result("Database error");
+			e.printStackTrace();
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/flickfinder/controller/PersonController.java b/src/main/java/com/flickfinder/controller/PersonController.java
new file mode 100644
index 0000000..8c10377
--- /dev/null
+++ b/src/main/java/com/flickfinder/controller/PersonController.java
@@ -0,0 +1,69 @@
+package com.flickfinder.controller;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import com.flickfinder.dao.PersonDAO;
+import com.flickfinder.model.Movie;
+import com.flickfinder.model.Person;
+
+import io.javalin.http.Context;
+
+public class PersonController {
+	private final PersonDAO personDAO;
+	// to complete the must-have requirements you need to add the following methods:
+	// getAllPeople
+	// getPersonById
+	// you will add further methods for the more advanced tasks; however, ensure your have completed 
+	// the must have requirements before you start these.  
+	public PersonController(PersonDAO personDAO) {
+		this.personDAO = personDAO;
+	}
+	
+	public void getAllPeople(Context ctx) {
+		String limitparam = ctx.queryParam("limit");
+		try {
+			ctx.json(personDAO.getAllPeople(limitparam));
+		} catch (SQLException e) {
+			ctx.status(500);
+			ctx.result("Database error");
+			e.printStackTrace();
+		}
+	}
+	
+	public void getPersonById(Context ctx) {
+		int id = Integer.parseInt(ctx.pathParam("id"));
+		try {
+			Person person = personDAO.getPersonById(id);
+			System.out.println(person);
+			if (person == null){
+				ctx.status(404);
+				ctx.result("Person not found");
+				return;
+			}
+			ctx.json(personDAO.getPersonById(id));
+		} catch (SQLException e) {
+			ctx.status(500);
+			ctx.result("Database error");
+			e.printStackTrace();
+		}
+	}
+	
+	public void getMoviesStarringPerson(Context ctx) {
+
+		int id = Integer.parseInt(ctx.pathParam("id"));
+		try {
+			List<Movie> movie = personDAO.getMoviesStarringPerson(id);
+			if (movie == null) {
+				ctx.status(404);
+				ctx.result("Movie not found");
+				return;
+			}
+			ctx.json(movie);
+		} catch (SQLException e) {
+			ctx.status(500);
+			ctx.result("Database error");
+			e.printStackTrace();
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/com/flickfinder/dao/MovieDAO.java b/src/main/java/com/flickfinder/dao/MovieDAO.java
new file mode 100644
index 0000000..53b2f9b
--- /dev/null
+++ b/src/main/java/com/flickfinder/dao/MovieDAO.java
@@ -0,0 +1,120 @@
+package com.flickfinder.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.flickfinder.model.Movie;
+import com.flickfinder.model.MovieRating;
+import com.flickfinder.model.Person;
+import com.flickfinder.util.Database;
+
+/**
+ * The Data Access Object for the Movie table.
+ * 
+ * This class is responsible for getting data from the Movies table in the
+ * database.
+ * 
+ */
+public class MovieDAO {
+
+	/**
+	 * The connection to the database.
+	 */
+	private final Connection connection;
+
+	/**
+	 * Constructs a SQLiteMovieDAO object and gets the database connection.
+	 * 
+	 */
+	public MovieDAO() {
+		Database database = Database.getInstance();
+		connection = database.getConnection();
+	}
+
+	/**
+	 * Returns a list of all movies in the database.
+	 * 
+	 * @return a list of all movies in the database
+	 * @throws SQLException if a database error occurs
+	 */
+
+	public List<Movie> getAllMovies(String params) throws SQLException {
+		List<Movie> movies = new ArrayList<>();
+
+		Statement statement = connection.createStatement();
+		String temp = params;
+		// I've set the limit to 10 for development purposes - you should do the same.
+		if (temp == null) {
+			temp = "50";
+		}
+		ResultSet rs = statement.executeQuery("select * from movies LIMIT " + temp);
+		
+		while (rs.next()) {
+			movies.add(new Movie(rs.getInt("id"), rs.getString("title"), rs.getInt("year")));
+		}
+
+		return movies;
+	}
+	
+	public List<Movie> getAllMovies() throws SQLException {
+		return getAllMovies(null);
+	}
+
+	/**
+	 * Returns the movie with the specified id.
+	 * 
+	 * @param id the id of the movie
+	 * @return the movie with the specified id
+	 * @throws SQLException if a database error occurs
+	 */
+	public Movie getMovieById(int id) throws SQLException {
+
+		String statement = "select * from movies where id = ?";
+		PreparedStatement ps = connection.prepareStatement(statement);
+		ps.setInt(1, id);
+		ResultSet rs = ps.executeQuery();
+
+		if (rs.next()) {
+
+			return new Movie(rs.getInt("id"), rs.getString("title"), rs.getInt("year"));
+		}
+		
+		// return null if the id does not return a movie.
+
+		return null;
+
+	}
+	
+	public List<Movie> getRatingsByYear(int year, String Limitparam, String Votesparam) throws SQLException {
+		// Is this finished?
+		List<Movie> movies = new ArrayList<>();
+		//String statement = "select * from movies where year = ? order by (select rating from ratings where movie_id = (select id from movies where year = ?)) asc";
+		String statement = "select * from movies inner join ratings on movies.id = ratings.movie_id where movies.year = ? AND ratings.votes > " + Votesparam + " ORDER BY ratings.rating DESC LIMIT " + Limitparam;
+		PreparedStatement ps = connection.prepareStatement(statement);
+		ps.setInt(1, year);
+		ResultSet rs = ps.executeQuery();
+		
+		while (rs.next()) {
+			movies.add(new MovieRating(rs.getInt("id"), rs.getString("title"), rs.getInt("year"), rs.getDouble("rating"),rs.getInt("votes")));
+		}
+
+		return movies;
+	}
+	
+	public List<Person> getPeopleByMovieId(int id) throws SQLException{
+		List<Person> people = new ArrayList<>();
+		String statement = "SELECT * FROM people INNER JOIN stars ON people.id = stars.person_id WHERE stars.movie_id = ?";
+		PreparedStatement ps = connection.prepareStatement(statement);
+		ps.setInt(1, id);
+		ResultSet rs = ps.executeQuery();
+		while (rs.next()) {
+			people.add(new Person(rs.getInt("id"), rs.getString("name"), rs.getString("birth")));
+		}
+		return people;
+	}
+}
diff --git a/src/main/java/com/flickfinder/dao/PersonDAO.java b/src/main/java/com/flickfinder/dao/PersonDAO.java
new file mode 100644
index 0000000..7a3ef7e
--- /dev/null
+++ b/src/main/java/com/flickfinder/dao/PersonDAO.java
@@ -0,0 +1,76 @@
+package com.flickfinder.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.flickfinder.util.Database;
+import com.flickfinder.model.Movie;
+import com.flickfinder.model.Person;
+/**
+ * TODO: Implement this class
+ * 
+ */
+public class PersonDAO {
+	private final Connection connection;
+	// for the must have requirements, you will need to implement the following
+	// methods:
+	// - getAllPeople()
+	// - getPersonById(int id)
+	// you will add further methods for the more advanced tasks; however, ensure your have completed 
+	// the must have requirements before you start these.  
+	public PersonDAO() {
+		Database database = Database.getInstance();
+		connection = database.getConnection();
+	}
+	
+	public List<Person> getAllPeople(String params) throws SQLException {
+		String temp = params;
+		if (temp == null) {
+			temp = "50";
+		}
+		List<Person> people = new ArrayList<>();
+		Statement statement = connection.createStatement();
+		ResultSet rs = statement.executeQuery("select * from people LIMIT "+ temp);
+		while (rs.next()) {
+			people.add(new Person(rs.getInt("id"), rs.getString("name"), rs.getString("birth")));
+		}
+		return people;
+	}
+	
+	public List<Person> getAllPeople() throws SQLException {
+		return this.getAllPeople(null);
+	}
+	
+	
+	public Person getPersonById(int id) throws SQLException{
+		String statement = "select * from people where id = ?";
+		PreparedStatement ps = connection.prepareStatement(statement);
+		ps.setInt(1, id);
+		ResultSet rs = ps.executeQuery();
+		if (rs.next()) {
+			return new Person(rs.getInt("id"), rs.getString("name"), rs.getString("birth"));
+		}
+		return null;
+	}
+	
+	public List<Movie> getMoviesStarringPerson(int id) throws SQLException {
+		// Is this finished?
+		List<Movie> movies = new ArrayList<>();
+		//String statement = "select * from movies where id = (select movie_id from stars where person_id = ?)";
+		String statement = "select * from movies inner join stars on movies.id = stars.movie_id where stars.person_id = ?";
+		PreparedStatement ps = connection.prepareStatement(statement);
+		ps.setInt(1, id);
+		ResultSet rs = ps.executeQuery();
+		
+		while (rs.next()) {
+			movies.add(new Movie(rs.getInt("id"), rs.getString("title"), rs.getInt("year")));
+		}
+
+		return movies;
+	}
+}
diff --git a/src/main/java/com/flickfinder/model/Movie.java b/src/main/java/com/flickfinder/model/Movie.java
new file mode 100644
index 0000000..58d4fcd
--- /dev/null
+++ b/src/main/java/com/flickfinder/model/Movie.java
@@ -0,0 +1,83 @@
+package com.flickfinder.model;
+
+/**
+ * Represents a movie with its unique identifier, title, and release year.
+ */
+public class Movie {
+
+	private int id;
+	private String title;
+	private int year;
+	/**
+	 * Constructs a Movie object with the specified id, title, and year.
+	 *
+	 * @param id    the unique identifier of the movie
+	 * @param title the title of the movie
+	 * @param year  the release year of the movie
+	 */
+	public Movie(int id, String title, int year) {
+		this.id = id;
+		this.title = title;
+		this.year = year;
+	}
+
+	/**
+	 * Returns the unique identifier of the movie.
+	 *
+	 * @return the id of the movie
+	 */
+	public int getId() {
+		return id;
+	}
+
+	/**
+	 * Sets the unique identifier of the movie.
+	 *
+	 * @param id the id to set
+	 */
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the title of the movie.
+	 *
+	 * @return the title of the movie
+	 */
+	public String getTitle() {
+		return title;
+	}
+
+	/**
+	 * Sets the title of the movie.
+	 *
+	 * @param title the title to set
+	 */
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	/**
+	 * Returns the release year of the movie.
+	 *
+	 * @return the release year of the movie
+	 */
+	public int getYear() {
+		return year;
+	}
+
+	/**
+	 * Sets the release year of the movie.
+	 *
+	 * @param year the release year to set
+	 */
+	public void setYear(int year) {
+		this.year = year;
+	}
+
+	@Override
+	public String toString() {
+		return "Movie [id=" + id + ", title=" + title + ", year=" + year+ "]";
+	}
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/flickfinder/model/MovieRating.java b/src/main/java/com/flickfinder/model/MovieRating.java
new file mode 100644
index 0000000..a2f9644
--- /dev/null
+++ b/src/main/java/com/flickfinder/model/MovieRating.java
@@ -0,0 +1,26 @@
+package com.flickfinder.model;
+
+public class MovieRating extends Movie{
+    double rating;
+    int votes;
+    public MovieRating(int id, String title, int year, double rating, int votes) {
+		super(id, title, year);
+		this.rating = rating;
+		this.votes = votes;
+	}
+    public Double getRating() {
+		return this.rating;
+	}
+
+	public void setRating(double rating) {
+		this.rating = rating;
+	}
+
+	public Integer getVotes() {
+		return this.votes;
+	}
+
+	public void setVotes(int votes) {
+		this.votes = votes;
+	}
+}
diff --git a/src/main/java/com/flickfinder/model/Person.java b/src/main/java/com/flickfinder/model/Person.java
new file mode 100644
index 0000000..2032267
--- /dev/null
+++ b/src/main/java/com/flickfinder/model/Person.java
@@ -0,0 +1,53 @@
+package com.flickfinder.model;
+
+/**
+ * A person in the movie database.
+ * 
+ * @TODO: Implement this class
+ */
+public class Person {
+
+	// - Add your code here: use the MovieDAO.java as an example
+	// - Check the ERD and database schema in the docs folder
+	// (./docs/database_schema.md) to ensure each column in the People table
+	// has an attribute in the model. (DELETE THIS COMMENT WHEN DONE)
+	private int id;
+	private String name;
+	private String DOB;
+	
+	public Person(int id, String name, String DOB) {
+		this.id = id;
+		this.name = name;
+		this.DOB = DOB;
+	}
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getDOB() {
+		return DOB;
+	}
+
+	public void setDOB(String dOB) {
+		DOB = dOB;
+	}
+
+	@Override
+	public String toString() {
+		return "Person [id=" + id + ", name=" + name + ", DOB=" + DOB + "]";
+	}
+	
+}
diff --git a/src/main/java/com/flickfinder/util/Database.java b/src/main/java/com/flickfinder/util/Database.java
new file mode 100644
index 0000000..e7a6e35
--- /dev/null
+++ b/src/main/java/com/flickfinder/util/Database.java
@@ -0,0 +1,111 @@
+package com.flickfinder.util;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+/**
+ * A class to handle the database connection.
+ * You should not need to modify this class.
+ * 
+ */
+
+public class Database {
+
+	/**
+	 * The instance of the database.
+	 */
+	private static Database instance;
+
+	/**
+	 * The connection to the database.
+	 * This is optional as we can also
+	 * pass in a connection to the database.
+	 */
+	Connection connection;
+
+	private Database(String path) {
+		try {
+			this.connection = DriverManager.getConnection(path);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * This allows use to pass in an existing database connection.
+	 * This is useful for testing.
+	 * 
+	 * @param connection
+	 */
+
+	private Database(Connection connection) {
+		this.connection = connection;
+	}
+
+	/**
+	 * Returns the instance of the database.
+	 * We pass in the path to the database.
+	 * This is the path to the database file.
+	 * 
+	 * @param path
+	 * @return
+	 */
+	public static Database getInstance(String path) {
+		if (instance == null) {
+			instance = new Database(path);
+		}
+		return instance;
+	}
+
+	/**
+	 * Returns the instance of the database. However, this methods allows us 
+	 * to pass in the connection to an instance of an in-memory database.
+	 * We use this for testing. Notice how we are using the same method name, overloading the above 
+	 * method.
+	 * 
+	 * @param conn
+	 * @return
+	 */
+	public static Database getInstance(Connection conn) {
+
+		instance = new Database(conn);
+
+		return instance;
+
+	}
+
+	/**
+	 * Returns the instance of the database.
+	 * notice how this method is static and does not take any parameters.
+	 * This is because if we have already set the instance of the database, we 
+	 * can just return the instance. There is no need to pass in the path or connection to the database.
+	 * 
+	 * 
+	 * @return
+	 */
+
+	public static Database getInstance() {
+
+		/**
+		 * If the instance is null, we throw an IllegalStateException.
+		 * This is because we need to set the instance of the database before we can use it.
+		 * As we are using a singleton pattern, we only have to do this once. 
+		 */
+		if (instance == null) {
+			throw new IllegalStateException("Database instance not set");
+		}
+		return instance;
+	}
+
+	/**
+	 * Returns the connection to the database.
+	 * 
+	 * @return
+	 */
+
+	public Connection getConnection() {
+		return this.connection;
+	}
+
+}
diff --git a/src/main/resources/movies.db b/src/main/resources/movies.db
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/resources/public/index.html b/src/main/resources/public/index.html
new file mode 100644
index 0000000..c968e8a
--- /dev/null
+++ b/src/main/resources/public/index.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<title>API Documentation</title>
+	<style>
+		body {
+			font-family: Arial, sans-serif;
+			margin: 20px;
+		}
+
+		.route {
+			margin-bottom: 10px;
+		}
+
+		.route h3 {
+			margin: 0;
+			color: #333;
+		}
+
+		.route p {
+			margin: 5px 0;
+			color: #666;
+		}
+	</style>
+</head>
+
+<body>
+	<h1>API Documentation</h1>
+
+	<div class="route">
+		<h3><a href="/movies"> GET /movies </a></h3>
+		<p>Returns all movies.</p>
+	</div>
+
+	<div class="route">
+		<h3><a href="/movies/63018"> GET /movies/{id} </a></h3>
+		<p>Returns a movie by its ID.</p>
+	</div>
+	<div class="route">
+		<h3><a href="/movies/407887/stars"> GET /movies/{id}/stars </a></h3>
+		<p>Returns all stars of a movie</p>
+	</div>
+	<div class="route">
+
+		<h3><a href="/movies/ratings/1999"> GET /movies/ratings/{year} </a></h3>
+		<p>Retrieves a list of movies ordered by rating in descending order, for a given year</p>
+
+	</div>
+
+	<div class="route">
+		<h3> <a href="/people">GET /people </a></h3>
+		<p>Returns a list of people</p>
+	</div>
+
+	<div class="route">
+		<h3><a href="/people/138"> GET /people/{id} </a></h3>
+		<p>Returns a person by their ID.</p>
+	</div>
+
+	<div class="route">
+		<h3><a href="/people/138/movies">GET /people/{id}/movies </a></h3>
+		<p>Returns all movies of a person</p>
+	</div>
+
+
+
+
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/test/java/com/flickfinder/IntegrationTests.java b/src/test/java/com/flickfinder/IntegrationTests.java
new file mode 100644
index 0000000..b123f06
--- /dev/null
+++ b/src/test/java/com/flickfinder/IntegrationTests.java
@@ -0,0 +1,174 @@
+package com.flickfinder;
+
+import static io.restassured.RestAssured.given;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasItems;
+
+import org.hamcrest.collection.HasItemInArray;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import com.flickfinder.util.Database;
+import com.flickfinder.util.Seeder;
+
+import io.javalin.Javalin;
+
+/**
+ * These are our integration tests.
+ * We are testing the application as a whole, including the database.
+ */
+class IntegrationTests {
+
+	/**
+	 * The Javalin app.*
+	 */
+	Javalin app;
+
+	/**
+	 * The seeder object.
+	 */
+	Seeder seeder;
+
+	/**
+	 * The port number. Try and use a different port number from your main
+	 * application.
+	 */
+	int port = 6000;
+
+	/**
+	 * The base URL for our test application.
+	 */
+	String baseURL = "http://localhost:" + port;
+
+	/**
+	 * Bootstraps the application before each test.
+	 */
+	@BeforeEach
+	void setUp() {
+		var url = "jdbc:sqlite::memory:";
+		seeder = new Seeder(url);
+		Database.getInstance(seeder.getConnection());
+		app = AppConfig.startServer(port);
+	}
+
+	/**
+	 * Test that the application retrieves a list of all movies.
+	 * Notice how we are checking the actual content of the list.
+	 * At this higher level, we are not concerned with the implementation details.
+	 */
+
+	@Test
+	void retrieves_a_list_of_all_movies() {
+		given().when().get(baseURL + "/movies").then().assertThat().statusCode(200). // Assuming a successful
+												// response returns HTTP
+												// 200
+				body("id", hasItems(1, 2, 3, 4, 5))
+				.body("title", hasItems("The Shawshank Redemption", "The Godfather",
+						"The Godfather: Part II", "The Dark Knight", "12 Angry Men"))
+				.body("year", hasItems(1994, 1972, 1974, 2008, 1957));
+	}
+
+	@Test
+	void retrieves_a_single_movie_by_id() {
+
+		given().when().get(baseURL + "/movies/1").then().assertThat().statusCode(200). // Assuming a successful
+												// response returns HTTP
+												// 200
+				body("id", equalTo(1))
+				.body("title", equalTo("The Shawshank Redemption"))
+				.body("year", equalTo(1994));
+	}
+
+	@Test
+	void retrieves_movies_by_person_id() {
+
+		given().when().get(baseURL + "/people/4/movies").then().assertThat().statusCode(200). // Assuming a successful
+				body("id", hasItems(2,3))
+				.body("title", hasItems("The Godfather", "The Godfather: Part II"))
+				.body("year", hasItems(1972, 1974));
+	}
+
+	@Test
+	void retrieves_movies_by_year_sorted() {
+		given().when().get(baseURL + "/movies/ratings/2008").then().assertThat().statusCode(200). // Assuming a successful
+				body("id", hasItems(4))
+				.body("title", hasItems("The Dark Knight"))
+				.body("year", hasItems(2008));
+	}
+
+	@Test
+	void retrieves_stars_by_movieid() {
+
+		given().when().get(baseURL + "/movies/1/stars").then().assertThat().statusCode(200). // Assuming a successful
+												// response returns HTTP
+												// 200
+				body("id", hasItems(1, 2))
+				.body("name", hasItems("Tim Robbins", "Morgan Freeman"))
+				.body("dob", hasItems("1958-10-16", "1937-06-01"));
+	}
+
+	@Test
+	void retrieves_a_list_of_all_people() {
+		given().when().get(baseURL + "/people").then().assertThat().statusCode(200). // Assuming a successful
+												// response returns HTTP
+												// 200
+				body("id", hasItems(1, 2, 3, 4, 5))
+				.body("name", hasItems("Tim Robbins", "Morgan Freeman",
+						"Christopher Nolan", "Al Pacino", "Henry Fonda"))
+				.body("dob", hasItems("1958-10-16", "1937-06-01", "1970-07-30", "1940-04-25", "1905-05-16"));
+	}
+
+	@Test
+	void retrieves_a_single_person_by_id() {
+
+		given().when().get(baseURL + "/people/1").then().assertThat().statusCode(200). // Assuming a successful
+				body("id", equalTo(1))
+				.body("name", equalTo("Tim Robbins"))
+				.body("dob", equalTo("1958-10-16"));
+	}
+	@Test
+	void listofmovieswithlimit(){
+		given().when().get(baseURL + "/movies?limit=2").then().assertThat().statusCode(200). // Assuming a successful
+				body("id", hasItems(1, 2))
+				.body("title", hasItems("The Shawshank Redemption", "The Godfather"))
+				.body("year", hasItems(1994, 1972));
+	}
+
+	@Test
+	void listofallpeoplewithlimit(){
+		given().when().get(baseURL + "/people?limit=2").then().assertThat().statusCode(200). // Assuming a successful
+				body("id", hasItems(1, 2))
+				.body("name", hasItems("Tim Robbins", "Morgan Freeman"))
+				.body("dob", hasItems("1958-10-16", "1937-06-01"));
+	}
+
+	@Test
+	void yearwithlimit(){
+		given().when().get(baseURL + "/movies/ratings/1972?limit=1").then().assertThat().statusCode(200). // Assuming a successful
+				body("id", hasItems(2))
+				.body("title", hasItems("The Godfather"))
+				.body("year", hasItems(1972));
+	}
+
+
+	//Should be empty
+	@Test
+	void yearwithvote(){
+		given().when().get(baseURL + "/movies/ratings/1994?votes=2200001").then().assertThat().statusCode(200). // Assuming a successful
+				body("id", hasItems())
+				.body("title", hasItems())
+				.body("year", hasItems());
+	}
+
+	/**
+	 * Tears down the application after each test.
+	 * We want to make sure that each test runs in isolation.
+	 */
+	@AfterEach
+	void tearDown() {
+		seeder.closeConnection();
+		app.stop();
+	}
+
+}
diff --git a/src/test/java/com/flickfinder/controller/MovieControllerTest.java b/src/test/java/com/flickfinder/controller/MovieControllerTest.java
new file mode 100644
index 0000000..cef1d9b
--- /dev/null
+++ b/src/test/java/com/flickfinder/controller/MovieControllerTest.java
@@ -0,0 +1,124 @@
+package com.flickfinder.controller;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.sql.SQLException;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import com.flickfinder.dao.MovieDAO;
+
+import io.javalin.http.Context;
+
+/**
+ * Test for the Movie Controller.
+ */
+
+class MovieControllerTest {
+
+	/**
+	 *
+	 * The context object, later we will mock it.
+	 */
+	private Context ctx;
+
+	/**
+	 * The movie data access object.
+	 */
+	private MovieDAO movieDAO;
+
+	/**
+	 * The movie controller.
+	 */
+
+	private MovieController movieController;
+
+	@BeforeEach
+	void setUp() {
+		// We create a mock of the MovieDAO class.
+		movieDAO = mock(MovieDAO.class);
+		// We create a mock of the Context class.
+		ctx = mock(Context.class);
+
+		// We create an instance of the MovieController class and pass the mock object
+		movieController = new MovieController(movieDAO);
+	}
+
+	/**
+	 * Tests the getAllMovies method.
+	 * We expect to get a list of all movies in the database.
+	 */
+
+	@Test
+	void testGetAllMovies() {
+		movieController.getAllMovies(ctx);
+		try {
+			verify(movieDAO).getAllMovies(null);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Test that the controller returns a 500 status code when a database error
+	 * occurs
+	 * 
+	 * @throws SQLException
+	 */
+	@Test
+	void testThrows500ExceptionWhenGetAllDatabaseError() throws SQLException {
+		when(movieDAO.getAllMovies(null)).thenThrow(new SQLException());
+		movieController.getAllMovies(ctx);
+		verify(ctx).status(500);
+	}
+
+	/**
+	 * Tests the getMovieById method.
+	 * We expect to get the movie with the specified id.
+	 */
+
+	@Test
+	void testGetMovieById() {
+		when(ctx.pathParam("id")).thenReturn("1");
+		movieController.getMovieById(ctx);
+		try {
+			verify(movieDAO).getMovieById(1);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Test a 500 status code is returned when a database error occurs.
+	 * 
+	 * @throws SQLException
+	 */
+
+	@Test
+	void testThrows500ExceptionWhenGetByIdDatabaseError() throws SQLException {
+		when(ctx.pathParam("id")).thenReturn("1");
+		when(movieDAO.getMovieById(1)).thenThrow(new SQLException());
+		movieController.getMovieById(ctx);
+		verify(ctx).status(500);
+	}
+
+	/**
+	 * Test that the controller returns a 404 status code when a movie is not found
+	 * or
+	 * database error.
+	 * 
+	 * @throws SQLException
+	 */
+
+	@Test
+	void testThrows404ExceptionWhenNoMovieFound() throws SQLException {
+		when(ctx.pathParam("id")).thenReturn("1");
+		when(movieDAO.getMovieById(1)).thenReturn(null);
+		movieController.getMovieById(ctx);
+		verify(ctx).status(404);
+	}
+
+}
\ No newline at end of file
diff --git a/src/test/java/com/flickfinder/controller/PersonControllerTest.java b/src/test/java/com/flickfinder/controller/PersonControllerTest.java
new file mode 100644
index 0000000..23ac57e
--- /dev/null
+++ b/src/test/java/com/flickfinder/controller/PersonControllerTest.java
@@ -0,0 +1,72 @@
+package com.flickfinder.controller;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.sql.SQLException;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import com.flickfinder.dao.PersonDAO;
+
+import io.javalin.http.Context;
+
+class PersonControllerTest {
+    private Context ctx;
+    private PersonDAO personDAO;
+    private PersonController personController;
+
+    @BeforeEach
+	void setUp() {
+		personDAO = mock(PersonDAO.class);
+		ctx = mock(Context.class);
+		personController = new PersonController(personDAO);
+	}
+
+    @Test
+	void testGetAllPeople() {
+		personController.getAllPeople(ctx);
+		try {
+			verify(personDAO).getAllPeople(null);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+	}
+
+   @Test
+   void testThrows500ExceptionWhenGetAllDatabaseError() throws SQLException {
+       when(personDAO.getAllPeople(null)).thenThrow(new SQLException());
+       personController.getAllPeople(ctx);
+       verify(ctx).status(500);
+   }
+
+   @Test
+   void testGetMovieById() {
+       when(ctx.pathParam("id")).thenReturn("1");
+       personController.getPersonById(ctx);
+       try {
+           verify(personDAO).getPersonById(1);
+       } catch (SQLException e) {
+           e.printStackTrace();
+       }
+   }
+
+   @Test
+   void testThrows500ExceptionWhenGetByIdDatabaseError() throws SQLException {
+       when(ctx.pathParam("id")).thenReturn("1");
+       when(personDAO.getPersonById(1)).thenThrow(new SQLException());
+       personController.getPersonById(ctx);
+       verify(ctx).status(500);
+   }
+
+   @Test
+   void testThrows404ExceptionWhenNoPersonFound() throws SQLException {
+       when(ctx.pathParam("id")).thenReturn("3");
+       when(personDAO.getPersonById(3)).thenReturn(null);
+       personController.getPersonById(ctx);
+       verify(ctx).status(404);
+   }
+
+}
\ No newline at end of file
diff --git a/src/test/java/com/flickfinder/dao/MovieDAOTest.java b/src/test/java/com/flickfinder/dao/MovieDAOTest.java
new file mode 100644
index 0000000..d4e72d6
--- /dev/null
+++ b/src/test/java/com/flickfinder/dao/MovieDAOTest.java
@@ -0,0 +1,107 @@
+package com.flickfinder.dao;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import com.flickfinder.model.Movie;
+import com.flickfinder.util.Database;
+import com.flickfinder.util.Seeder;
+
+/**
+ * Test for the Movie Data Access Object.
+ * This uses an in-memory database for testing purposes.
+ */
+
+class MovieDAOTest {
+
+	/**
+	 * The movie data access object.
+	 */
+
+	private MovieDAO movieDAO;
+
+	/**
+	 * Seeder
+	 */
+
+	Seeder seeder;
+
+	/**
+	 * Sets up the database connection and creates the tables.
+	 * We are using an in-memory database for testing purposes.
+	 * This gets passed to the Database class to get a connection to the database.
+	 * As it's a singleton class, the entire application will use the same
+	 * connection.
+	 */
+	@BeforeEach
+	void setUp() {
+		var url = "jdbc:sqlite::memory:";
+		seeder = new Seeder(url);
+		Database.getInstance(seeder.getConnection());
+		movieDAO = new MovieDAO();
+
+	}
+
+	/**
+	 * Tests the getAllMovies method.
+	 * We expect to get a list of all movies in the database.
+	 * We have seeded the database with 5 movies, so we expect to get 5 movies back.
+	 * At this point, we avoid checking the actual content of the list.
+	 */
+	@Test
+	void testGetAllMovies() {
+		try {
+			List<Movie> movies = movieDAO.getAllMovies();
+			assertEquals(5, movies.size());
+		} catch (SQLException e) {
+			fail("SQLException thrown");
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Tests the getMovieById method.
+	 * We expect to get the movie with the specified id.
+	 */
+	@Test
+	void testGetMovieById() {
+		Movie movie;
+		try {
+			movie = movieDAO.getMovieById(1);
+			assertEquals("The Shawshank Redemption", movie.getTitle());
+		} catch (SQLException e) {
+			fail("SQLException thrown");
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Tests the getMovieById method with an invalid id. Null should be returned.
+	 */
+	@Test
+	void testGetMovieByIdInvalidId() {
+		// write an assertThrows for a SQLException
+
+		try {
+			Movie movie = movieDAO.getMovieById(1000);
+			assertEquals(null, movie);
+		} catch (SQLException e) {
+			fail("SQLException thrown");
+			e.printStackTrace();
+		}
+
+	}
+
+	@AfterEach
+	void tearDown() {
+		seeder.closeConnection();
+	}
+
+}
\ No newline at end of file
diff --git a/src/test/java/com/flickfinder/dao/PersonDAOTest.java b/src/test/java/com/flickfinder/dao/PersonDAOTest.java
new file mode 100644
index 0000000..578e514
--- /dev/null
+++ b/src/test/java/com/flickfinder/dao/PersonDAOTest.java
@@ -0,0 +1,74 @@
+package com.flickfinder.dao;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import com.flickfinder.model.Movie;
+import com.flickfinder.model.Person;
+import com.flickfinder.util.Database;
+import com.flickfinder.util.Seeder;
+
+/**
+ * TODO: Implement this class
+ */
+class PersonDAOTest {
+    private PersonDAO personDAO;
+    Seeder seeder;
+
+    @BeforeEach
+	void setUp() {
+		var url = "jdbc:sqlite::memory:";
+		seeder = new Seeder(url);
+		Database.getInstance(seeder.getConnection());
+		personDAO = new PersonDAO();
+    }
+
+    @Test
+	void testGetAllPeople() {
+		try {
+			List<Person> people = personDAO.getAllPeople();
+			assertEquals(5, people.size());
+		} catch (SQLException e) {
+			fail("SQLException thrown");
+			e.printStackTrace();
+		}
+	}
+
+    @Test
+	void testGetPersonById() {
+		Person person;
+		try {
+			person = personDAO.getPersonById(2);
+			assertEquals("Morgan Freeman", person.getName());
+		} catch (SQLException e) {
+			fail("SQLException thrown");
+			e.printStackTrace();
+		}
+	}
+
+    @Test
+	void testGetPersonByIdInvalidId() {
+		// write an assertThrows for a SQLException
+
+		try {
+			Person person = personDAO.getPersonById(10000);
+			assertEquals(null, person);
+		} catch (SQLException e) {
+			fail("SQLException thrown");
+			e.printStackTrace();
+		}
+
+	}
+
+    @AfterEach
+	void tearDown() {
+		seeder.closeConnection();
+	}
+}
\ No newline at end of file
diff --git a/src/test/java/com/flickfinder/model/MovieTest.java b/src/test/java/com/flickfinder/model/MovieTest.java
new file mode 100644
index 0000000..6ae72b8
--- /dev/null
+++ b/src/test/java/com/flickfinder/model/MovieTest.java
@@ -0,0 +1,51 @@
+package com.flickfinder.model;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Test for the Movie Model.
+ * 
+ * 
+ */
+public class MovieTest {
+
+	/**
+	 * The movie object to be tested.
+	 */
+	private Movie movie;
+
+	/**
+	 * Set up the movie object before each test.
+	 *
+	 */
+	@BeforeEach
+	public void setUp() {
+		movie = new Movie(1, "The Matrix", 1999);
+	}
+
+	/**
+	 * Test the movie object is created with the correct values.
+	 */
+	@Test
+	public void testMovieCreated() {
+		assertEquals(1, movie.getId());
+		assertEquals("The Matrix", movie.getTitle());
+		assertEquals(1999, movie.getYear());
+	}
+
+	/**
+	 * Test the movie object is created with the correct values.
+	 */
+	@Test
+	public void testMovieSetters() {
+		movie.setId(2);
+		movie.setTitle("The Matrix Reloaded");
+		movie.setYear(2003);
+		assertEquals(2, movie.getId());
+		assertEquals("The Matrix Reloaded", movie.getTitle());
+		assertEquals(2003, movie.getYear());
+	}
+}
diff --git a/src/test/java/com/flickfinder/model/PersonTest.java b/src/test/java/com/flickfinder/model/PersonTest.java
new file mode 100644
index 0000000..15b9d2b
--- /dev/null
+++ b/src/test/java/com/flickfinder/model/PersonTest.java
@@ -0,0 +1,37 @@
+package com.flickfinder.model;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+/**
+ * 
+ * TODO: Implement this class
+ * 
+ */
+
+class PersonTest {
+    private Person person;
+
+    @BeforeEach
+	public void setUp() {
+		person = new Person(1, "Ali", "2005");
+	}
+
+    @Test
+	public void testPersonCreated() {
+		assertEquals(1, person.getId());
+		assertEquals("Ali", person.getName());
+		assertEquals("2005", person.getDOB());
+	}
+
+    @Test
+	public void testPersonSetters() {
+		person.setId(3);
+		person.setName("Stair");
+		person.setDOB("2007");
+		assertEquals(3, person.getId());
+		assertEquals("Stair", person.getName());
+		assertEquals("2007", person.getDOB());
+	}
+}
\ No newline at end of file
diff --git a/src/test/java/com/flickfinder/util/Seeder.java b/src/test/java/com/flickfinder/util/Seeder.java
new file mode 100644
index 0000000..6925d49
--- /dev/null
+++ b/src/test/java/com/flickfinder/util/Seeder.java
@@ -0,0 +1,172 @@
+package com.flickfinder.util;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+/**
+ * A class to seed an in-memory database with tables and data for testing
+ * purposes.
+ * Notice how we work with a limited number of movies, people, stars, directors,
+ * and ratings.
+ * This is so we can rationalise about the responses we expect from the
+ * database.
+ * 
+ * You should not need to modify this file.
+ *
+ */
+public class Seeder {
+
+	/**
+	 * The connection to the database.
+	 * 
+	 */
+	Connection conn;
+
+	/**
+	 * The URL of the database.
+	 */
+	String url;
+
+	/**
+	 * Constructs a Seeder object and initializes the connection to the database.
+	 * You may want to add further records to support your testing; however, this
+	 * is optional.
+	 * 
+	 * @param url
+	 */
+	public Seeder(String url) {
+		this.url = url;
+		try {
+			this.conn = DriverManager.getConnection(url);
+			createTables();
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+
+	}
+
+	/**
+	 * Creates the tables and inserts data into the database.
+	 */
+	public void createTables() {
+		try {
+
+			Statement stmt = conn.createStatement();
+			stmt.execute("DROP TABLE IF EXISTS stars");
+			stmt.execute("DROP TABLE IF EXISTS directors");
+			stmt.execute("DROP TABLE IF EXISTS people");
+			stmt.execute("DROP TABLE IF EXISTS movies");
+			stmt.execute("DROP TABLE IF EXISTS ratings");
+
+			String createMoviesTable = "CREATE TABLE movies (" +
+					"  id INTEGER," +
+					"  title TEXT NOT NULL," +
+					"  year NUMERIC," +
+					"  PRIMARY KEY(id)" +
+					");";
+
+			String createStarsTable = "CREATE TABLE stars (" +
+					"  movie_id INTEGER NOT NULL," +
+					"  person_id INTEGER NOT NULL," +
+					"  FOREIGN KEY(movie_id) REFERENCES movies(id)," +
+					"  FOREIGN KEY(person_id) REFERENCES people(id)" +
+					");";
+
+			String createDirectorsTable = "CREATE TABLE directors (" +
+					"  movie_id INTEGER NOT NULL," +
+					"  person_id INTEGER NOT NULL," +
+					"  FOREIGN KEY(movie_id) REFERENCES movies(id)," +
+					"  FOREIGN KEY(person_id) REFERENCES people(id)" +
+					");";
+
+			String createRatingsTable = "CREATE TABLE ratings (" +
+					"  movie_id INTEGER NOT NULL," +
+					"  rating REAL NOT NULL," +
+					"  votes INTEGER NOT NULL," +
+					"  FOREIGN KEY(movie_id) REFERENCES movies(id)" +
+					");";
+
+			String createPeopleTable = "CREATE TABLE people (" +
+					"  id INTEGER," +
+					"  name TEXT NOT NULL," +
+					"  birth NUMERIC," +
+					"  PRIMARY KEY(id)" +
+					");";
+
+			stmt.execute(createPeopleTable);
+			stmt.execute(createMoviesTable);
+			stmt.execute(createRatingsTable);
+			stmt.execute(createDirectorsTable);
+			stmt.execute(createStarsTable);
+			// Inserting into movies
+			stmt.execute("INSERT INTO movies (id, title, year) VALUES(1, 'The Shawshank Redemption', 1994)");
+			stmt.execute("INSERT INTO movies (id, title, year) VALUES(2, 'The Godfather', 1972)");
+			stmt.execute("INSERT INTO movies (id, title, year) VALUES(3, 'The Godfather: Part II', 1974)");
+			stmt.execute("INSERT INTO movies (id, title, year) VALUES(4, 'The Dark Knight', 2008)");
+			stmt.execute("INSERT INTO movies (id, title, year) VALUES(5, '12 Angry Men', 1957)");
+
+			// Inserting into people
+			stmt.execute("INSERT INTO people (id, name, birth) VALUES(1, 'Tim Robbins', '1958-10-16')");
+			stmt.execute("INSERT INTO people (id, name, birth) VALUES(2, 'Morgan Freeman', '1937-06-01')");
+			stmt.execute("INSERT INTO people (id, name, birth) VALUES(3, 'Christopher Nolan', '1970-07-30')");
+			stmt.execute("INSERT INTO people (id, name, birth) VALUES(4, 'Al Pacino', '1940-04-25')");
+			stmt.execute("INSERT INTO people (id, name, birth) VALUES(5, 'Henry Fonda', '1905-05-16')");
+
+			// Inserting into stars
+			stmt.execute("INSERT INTO stars (movie_id, person_id) VALUES(1, 1)");
+			stmt.execute("INSERT INTO stars (movie_id, person_id) VALUES(1, 2)");
+			stmt.execute("INSERT INTO stars (movie_id, person_id) VALUES(2, 4)");
+			stmt.execute("INSERT INTO stars (movie_id, person_id) VALUES(3, 4)");
+			stmt.execute("INSERT INTO stars (movie_id, person_id) VALUES(5, 5)");
+
+			// Inserting into directors
+			stmt.execute("INSERT INTO directors (movie_id, person_id) VALUES(1, 3)");
+			stmt.execute("INSERT INTO directors (movie_id, person_id) VALUES(2, 3)");
+			stmt.execute("INSERT INTO directors (movie_id, person_id) VALUES(3, 3)");
+			stmt.execute("INSERT INTO directors (movie_id, person_id) VALUES(4, 3)");
+			stmt.execute("INSERT INTO directors (movie_id, person_id) VALUES(5, 3)");
+
+			// Inserting into ratings
+			stmt.execute("INSERT INTO ratings (movie_id, rating, votes) VALUES (1, 9.3, 2200000)");
+			stmt.execute("INSERT INTO ratings (movie_id, rating, votes) VALUES (2, 9.2, 1500000)");
+			stmt.execute("INSERT INTO ratings (movie_id, rating, votes) VALUES (3, 9.0, 1000000)");
+			stmt.execute("INSERT INTO ratings (movie_id, rating, votes) VALUES (4, 8.8, 2000000)");
+			stmt.execute("INSERT INTO ratings (movie_id, rating, votes) VALUES (5, 8.9, 500000)");
+
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Returns the connection to the database.
+	 * 
+	 * @return the connection to the database
+	 */
+	public Connection getConnection() {
+		return this.conn;
+	}
+
+	/**
+	 * Closes the connection to the database.
+	 */
+	public void closeConnection() {
+		try {
+			conn.close();
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Returns the URL of the database.
+	 * 
+	 * @return the URL of the database
+	 */
+	public String getUrl() {
+		return url;
+	}
+
+}
\ No newline at end of file
diff --git a/target/COM1028-ad02184-1.0-SNAPSHOT.jar b/target/COM1028-ad02184-1.0-SNAPSHOT.jar
new file mode 100644
index 0000000000000000000000000000000000000000..a471048808ff4d7c2ec96a3fa6bd88914b0c57f5
GIT binary patch
literal 16030
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%0D`=}MA74-3<ziJKSQPVB
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
XCkguE@UN$CEP#X;f4qF<^#c4KhI3rW

literal 0
HcmV?d00001

diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..9bdf3b1
--- /dev/null
+++ b/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Build-Jdk-Spec: 21
+Created-By: Maven Integration for Eclipse
+
diff --git a/target/classes/META-INF/maven/com.flickfinder/COM1028-ad02184/pom.properties b/target/classes/META-INF/maven/com.flickfinder/COM1028-ad02184/pom.properties
new file mode 100644
index 0000000..f4ff6dc
--- /dev/null
+++ b/target/classes/META-INF/maven/com.flickfinder/COM1028-ad02184/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Sun May 12 15:39:59 BST 2024
+artifactId=COM1028-ad02184
+groupId=com.flickfinder
+m2e.projectLocation=/Users/alistairdeane/Desktop/com1028ad02184
+m2e.projectName=COM1028-ad02184
+version=1.0-SNAPSHOT
diff --git a/target/classes/META-INF/maven/com.flickfinder/COM1028-ad02184/pom.xml b/target/classes/META-INF/maven/com.flickfinder/COM1028-ad02184/pom.xml
new file mode 100644
index 0000000..8e36542
--- /dev/null
+++ b/target/classes/META-INF/maven/com.flickfinder/COM1028-ad02184/pom.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+	<groupId>com.flickfinder</groupId>
+	<artifactId>COM1028-ad02184</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <!-- sql light drivers -->
+        <dependency>
+            <groupId>org.xerial</groupId>
+            <artifactId>sqlite-jdbc</artifactId>
+            <version>3.45.1.0</version>
+        </dependency>
+
+        <!-- javalin for the api -->
+
+        <dependency>
+            <groupId>io.javalin</groupId>
+            <artifactId>javalin</artifactId>
+            <version>6.0.0</version>
+        </dependency>
+
+        <!-- this is a dependancy for javalin -->
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.16.1</version>
+        </dependency>
+
+        <!-- j unit -->
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-api</artifactId>
+            <version>5.8.2</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- mockito -->
+
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>5.10.0</version>
+        </dependency>
+
+        <!-- rest assured -->
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <version>5.4.0</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.googlecode.maven-download-plugin</groupId>
+                <artifactId>download-maven-plugin</artifactId>
+                <version>1.6.0</version>
+                <executions>
+                    <execution>
+                        <id>download-file</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            <url>
+                                https://csee.pages.surrey.ac.uk/com1028/res/movies.db</url>
+                            <outputDirectory>${project.basedir}/src/main/resources</outputDirectory>
+                            <outputFileName>movies.db</outputFileName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/target/classes/com/flickfinder/AppConfig.class b/target/classes/com/flickfinder/AppConfig.class
new file mode 100644
index 0000000000000000000000000000000000000000..23c02c49587715e5240e4c0c2c9a38c89a95dc19
GIT binary patch
literal 3211
zcma)8`BxKH6#gD0Oo)SGTybI1r~%YzwTlwP22eo*QbMtGACd`-OlHQJ36)yA@2z&<
zH@mmLbrp}C(?6i6e^XEIn<WecXisux-rW6u_rCkyU;o_t6Tor&6h{qe1w=$dQOD4D
zL7tH%P1Yx+a}yVoyu(m;Ox0DVo1r$<K9(S@n237Bi6Q6nib)bJsrIa^S9VlQDwg%U
zqZ+!@Yv^{lq*&=VL^KFkD`FiQ84{`?adA!6r8C}}jO8swb`*xgsa0*YXREbc2MG}y
zu#q8ZJF-PVZAlF*D=T0#!;ZXBl8Ty|pDwC;L9wKQY)FH~jH>iy&c(5bL(;_1u~aN?
z=#FJ*8fm!Fl%oF~$5w3TAnssjOJ$cThV7@@#{@Jp>|9Q0Sg~wFcca+JqiAF3Tq+le
z!V?dN(Td$Xj3mRZ<-@3Wpg3aK%dlB0@yu<>k{wl_w57|lifmnpBZYPW9U?lhpJDw%
zg}u(O8P;0L#j<KCLxw(7)-;B_e(^#Ll=gcgOiF;^pa==KQQ@a#y`WLyPgjQ<N^}X_
zWHr<WQ;uUw{jMFa+YX61j60}hClzXiv*D<6jzvkPS5#kQ*fPov)p~?pq?9q$bPRVf
z2tHy7+B^qiILaUf7+zKjR}!e@<YUz8VY0+K(@r45nJ2gvQ!z|UNl>{m9E~1^{#8L(
zTJ2R(h@p>1<#~|2sOpf3;WWdBFu9V7fJ{Bk;H-eGh(Qd|z79c5r6{VC!G5KNqc4Uv
zl#-+7PpO(h?XV{ds;`h+5b%@;!C^P|@&xU_dW;|^U{u6?7-L9=Ji0~o>=(IxDQo1(
znV~b(_hvJ>+;C>JpIR>LbVVH+5%*(Uzyl&4#6t|bLylI8l-frw6d2O~r+t<S)ZOTh
zFf=XQz!}pF5RCL11#13vSyfkt%B2a#8kHybc1ZAawK3UJ`L|DuI8!PCy}fF_R4k^w
zqF7E&v1SyDAz~VQ9I^qPj%hM%3<KuRU($-XL!eJK7@DihFB)GItt(3@_`{E3f0YWM
zy27X=XZ5Bx=D4?(Dpl@nVM@`V<VlD99jH<Y`K#I{l(Z(7CJJ(r$`nA8q~ViHg~1>b
zRXt8M<cE{r?`{7n&JfQTWh<}nJwX$)Qka8$eo`(yhT+(bC7XkaGi4O)M$9s73b&Xy
zUdi#gI$Vz9VLU0~BCJOKf11v&MKQY_&yi6sIb0=*XZca|oQUVSa3c-C5pS&b%#PDo
zCxI8az)K=t<^m!KWHikkuQoAX<;>SaydE%JPS5N>ftXi0^O}e^IWs|;!|nj<nRSI+
zk+<V$#XBP24fM&lCq?@2bLIykKIF^>SD&ADzV(ke_Y)DHa_$!5dO_u=WPD_MRV7S5
zkK+q`Dd4(@ukbaUbMDFHo-e9CV@xYj)-5&xEEnaxV_1anno{`d?=arJl2;G!6tR<8
z!<a6cY40xL+71qmDsP_R=&Y%P#TQv!mFc-$T{nD)`j&fTP0Oi{Lfc6k&~?S?)nwaN
zYyscVC|)7T#pwz7fp+`qqSXB!7HFeZtfBiK=y;=h7V7BvD1AxvX7rAB%z^zviyAye
zPtFG2$z*zpo&YA0r>}Yxu#qUF%udpASVy!!Zb1NUV$HT2Sf8E8rtvv!8Jx$~@%?ky
zHZ+f&L}=-X%%gR@DKdv$UD3|Oo&)1IvG4pX8~|?M_Vb;II|Ity0p&<Q=?W<6fO0&b
zbT>tPL-z!v-U{htKsr?+_4}lsDR3{@F07?>3#HbE1|;bQxd+YIN52#f;RyP06l3VZ
z6w-Kt?%h|>jq5mp-;i+u>h?f@f+E>zz>k<DSsDx^rQ!m4X{KE>4UMqhhifQ7C*Tgz
zCO2Rr+8E~(!h@7N@cNLIj^8nmIQJ{=y@B%!b>TODpp|OU7OG7HY&b-(MVX#8n8D-p
z9zhJB5$zHMeZ^fpg=g@Tzj~pvdZn^@qq2IdvU;zw`iNHFkli>1_$|JtG@Jef!k>wb

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/Main.class b/target/classes/com/flickfinder/Main.class
new file mode 100644
index 0000000000000000000000000000000000000000..14b3f0597eb1fbee5641b3751b6fdf5780b7b296
GIT binary patch
literal 822
zcmaJ<O>fgc5Ph4ZabirHq$O>kpM2FRQun~EDF{@A6l9<%C_QjmJDYTaV~6!7{|h)!
zao`8=qY$%6q>47e(t37w-kW_hv%mlR`~~0{o;b)ctVQXN_hJ=&?y00JHGeBq;-J7#
z8HkDCu}J#-eK?SjVJM7JO@_4?N+(gQ5@nt<<o!m6Vy9_Wmcek#!xD-ND}hSnyYVoT
z`lASA$xsW@NW>kXmG$R`#gl0o7kN}XETcrJ%!SGr>cJvyO^OdmBgOqs!Ij3g(JJXT
z8=VsB3|pCwxP@^ovvjN@nekydQ8GK~h9zt;_=9d39cN!+W#sYy&@S#`%fUT{?dy8R
zM#cP<Fd`J0^stQ`D!(sHE6I#VA}aZ*zd+)Ry8g-2bg_r~4)z%~uV46bG&)U_p6Yve
zfQNJ$-J?xg>WS10>wc>dsFd5L&~W&hnYA4gx=$TlUC=OwVmCY!=EBbBMmrhY_OyMk
zm7QSOzK$b{!aj{UPY;Qnf}J<*^0aek5sbV8vi5VTyDz@O{Yu*$Jo*=>fo0sDp4bF5
z^f`%>wX~(fA6U6gai<h-20#@x0+z9gwK@3%*&Ll!Yj=X$`Xx5czrnr4?)g=s8VUs1
hAgMb<-9v@SusZ59A|Bx}d3jQF0H4w^G|124@Gm-*whsUR

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/controller/MovieController.class b/target/classes/com/flickfinder/controller/MovieController.class
new file mode 100644
index 0000000000000000000000000000000000000000..afc97ac83283529b7be2229b94cfa61016a0d7d7
GIT binary patch
literal 2738
zcmaJ@*-{%v6g{oQBk*`ZW-$f>-mpN(@=k*A0>;>~g}?@59A_KE00Se9JQ`8fQ(oeH
zLH;4nR3#*&DtUEPUh*?}N;xK{TMLUUs;FUlxwp?b_w*h8_3`&V0o;Mz3?KX&0y=^?
zB5-oe*f8R@kz0vRFRqyxPvFR?m9xCN0{+Ord=o-w($K8qD0G3rjFXKo+g4_M*~%@M
zZam}UJlC;pzD_wCmieGI76@hK%*5EVKu_vm;F95#Be<Rj;kZE1wz8IY6erQ5A*|yR
zS_L{RCoUn{RxZBkdHJ|Jz<f)X&2NgPTbeOkBP-A!N$nDu^;|2rk{GC;YDPOcG@RDa
zi8BJ-hk+8%S4?lrwiT~}z{SRA6g|t1r>ugPknp>8oJEg7V6EWf1Y&#R$|4h616~OY
zeFANYOyP|kpM92k_%>taJ<G|-+~;*%z(p3R;2B<#sJbJ`#>qnH7dSp)c*depF#Al`
zbzGSxqGJGq%;K7bqD?XPVXW!b2xACC0=`>Uo6(CaI^xnuC-M~CoAr#$`kZTI%n+_|
zkF_L^yP@NzEM`;Q@K#mDnsFP$8a~tUIYtCpc8ix}c~?xA?#UZ&!Q_x~>{YOeE-8yS
zs?*c7sw|bN(|9SlB+w^CIau7Rvt-(3&(U!A30Xz-<s7eX*(v6hLKtV!N~Yn4FhM_V
zIG$MuVNyVlYC9h5Na6|a3=ey5c=T9dy!49O1%@NZdbicjR4ln`7nwGtV+v`3Fw@SM
zPTn@hOA47}a!N8$>g)yyoQu@4+jpM^=1JrM`I2PH%9-h6cF}a_j76I>;gpjx?0Lhr
z<hU{!@K!ClX{au5;|rdU=4<F<2|@6*jxzd#US_aA<GmH=Y?y&pTy+HcKwj~1y_^Ea
zl;Ng~yrQAu>wO)qY!y~AD;tr(**bQ6Jwd!l4H<#1L!86>_2p=iPN~3b->+^dUsX7M
zAa3+fFn8GqEZ*JyrKcpbPSMSnla{PxtFp;%%e^9Z;~ZPIkIkNv$)?S>Am4+S=5vOl
zNv_KE=D}Yf2BW_~+vLcHXM7%qpU=w(Ac7|Li02%&mv>_pa~v^FWu;ndqAw~r|7Ki(
zYl&$1*fvi1FclsA8QRbm+P2Z<!^@v=J{@fl|7_zNN73-5ZCvKd(0d#SN2g+2h;1@e
z6HcRxO~tRk^m7bc<MRgRN4Rnm-MEE*Hjf(^=9A3>2?cVH$9JO#^LVK!Bx-OISimcl
z`#QeBYm)hrS$p8$VM2ZhLmEzM_zFTp?+2XW^Iv8V>?;*=;%J53LNt7J8`pjK4Y%${
zdfi({q+{>VL1sTzncXWh+f)L`9aRCkJ|#ezxsPQU!aXvNVO0GuD{vdfh;@RilW4;u
z3jUbwKgqpMxHHAQ&$xRE_mSqzG&#?Z|8u3tO_sckrThlp690X4)U;WsX|qt#MrW>T
zFe=(mmj4i=9*a9@sY=9pQ<@G6ldK8zgZvFafbXK=v6?Vd2c)Cn2g(W~0ZPOwr#l1h
zp@kog1eA8M&cGHPjRZS`hYDEUR@LzANbnOb>I^FX`1mE7!x~k5ffe;XpnR0(PYG~N
zrvh!%r<bfR&=dW1LzHfaQ=?I;G)4uUVv#vA+-<5HYgmTOw+*b~J6QN0>q_0n&=?bC
z<Pt@&=}+mrpcJE~?z@`0C5$U|+mKft^b^A}Pk2q&E;B}_tmSMg%pv_5Merj(-ZUov
zLLYER!|D!N5iA?FvY=|x$>6DKP4Gv>tiyZFTJ_@7s*Z<vksniDj2<E^d+<El36SG#
zp7TYnyy2S5=1{<Oc)W!hwHw&G$7RDc9foT<MEAI?6}}yL4J(9d_FCg<KCJ%_@9JJG

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/controller/PersonController.class b/target/classes/com/flickfinder/controller/PersonController.class
new file mode 100644
index 0000000000000000000000000000000000000000..5ac9e82e51964d320af548337121a8d64147a759
GIT binary patch
literal 2458
zcma)7TT|Oc6#mvgWIKXzi6IGuTN45pqa-*KFpzLfY0a%r(mNHl0D){dvYdhc(f`nA
zIxQ`oPG39I-_zHYek<94P0eIHBWriho;}}XkN*1iw?6<(Asa>jH417~)Zvyu<AMH8
z*DO7|r>*WB7%5la)})y=-D!cE{(-F!f(R)HtGEqSAeyo>+OB1$4tLFL+Hka#opl}C
zviQ1YIC(oecQGLl%6U`sGphn!$;z#1-7fB7Kq80+fjY~~nC@*fqDeusiWb}zXfth1
zR%w}8ZQpfsnmocdVx{4?1;aUB(;Yn{(AS^5#IoT!W_B+zaD6I_R<tR&r{X>y2t2&8
zDgkxRaAz!Q&9HNpA@HdBAqCg8w4|AL6SDpe6%WxVP<ud51Y%eB`9!n0D!>v7x&<O0
zn*3W!+gML79Hoq$YuZ_vyH~{rctoM{uI?7{0v-KJ)sqF$C(tmjyZVlvH@XeSu^pME
zU&R0hnZ+^k1&eH!)p$W*wHm|d!jOuXG|`<L*>*QvJ$1P0=qV!zO(0;V<uT7xJeMkl
za=N?kNfkyMFBFWb_z+_PO_!=IQP(}g5eVjVCvR{_8m=-|s%lB9IH4keNr8Gw<a=-S
zcquK=BiX2wHDjj@t7x}G2-A3};FXFQ%$D7OjpMv)&`dRUL7wf~hZL;&03AcmB*K`-
zf`UaAukn#Ui&uYnjDX@%Vo~}s043?Sg7}yR`(<}$ZMS>ZE@aaZR#L?>R%m;|TDISr
zMxMkv($0P~Pm}<?Q!hOi#2R(*;xE$)^!8t4qWszoY|*20B!|0`X4Y6KWOfW^Q{Rzp
zZ%*1N-P+O}Q;v(1weG%2&&94KzM&N)q(`gTUDhCYT$>N7((>F~lX8y)?pMvgR^W9G
z+D5j5=Ihs<Hu3zqtmix&3cf2B-fI}V4SvfK=)8un%tEYqNdb%QxXEekXc;LXkE#?*
zptYRc<6Mbhts-`^N-3V&iD|ZrL*DRmLy(aTyWpgZMN=vn@x61|oQGvNdf43q{4S6(
z+28qA%lA60^Z6-9i(HlK;lW=Z2BSYiIpHXP4L%!C!)FV3+(ifxY;x4<N8>YWam0OI
zR&vE=`=*%lckZj@T0GiZe}+2&EJp`_f--c9$QjxLc=H3=SE5bg?=$pp6m5Qdh9`W9
zog#X|93k98JDX39S4A%ofHNUH;IoS>?dagIkL_1OCq~fiRW`^oJJ5#D@r74+{G!G<
zzQk8v-YCAtH$?C)GZM);Q}Ig~RM4nk8$v->8{-lsB%-y5WINhCe1@k1{ECq&iKXKd
z<10U6iY3p*{zMzmd|yJd<fA$9K+C}Q03Dz-BNU^Hopa9n_rXt41n^s+;xPs2Bfuww
z+mAtZ_7Ohg7-IZ0?ufBh4O3Q)V4o7;bB~lbrH*i3#}1*qzCzFT1wGqEdQ{S_AyuS@
z%>08mDM_EBsl*a>E^@Sdg`<F{_WJ*D^vOykIjbddV(-by5XQ(#3@^O@TF(-rs3$9<
zWMz!##%a9?a+Dw!lZ>2Z>>O8Ka^)4@W{|`z*4Wdffqh20v5P%2GJb`T^$SMUFBn-U
lGP2K|Dy<PA`@1l?Q(DO5C`L*S&Uq1vPP*jCVn_g){{W2jIN$&P

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/dao/MovieDAO.class b/target/classes/com/flickfinder/dao/MovieDAO.class
new file mode 100644
index 0000000000000000000000000000000000000000..4a9c7138885030f8e00ed578790209b993d38976
GIT binary patch
literal 4523
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
X>vx3j*XsEjNNGg*{x<%KcaiuXcSDBp

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/dao/PersonDAO.class b/target/classes/com/flickfinder/dao/PersonDAO.class
new file mode 100644
index 0000000000000000000000000000000000000000..f277800b4c49d846a3452504f8b6481c40def601
GIT binary patch
literal 3606
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

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/model/Movie.class b/target/classes/com/flickfinder/model/Movie.class
new file mode 100644
index 0000000000000000000000000000000000000000..4a8e8bb28f1daad328621070c3e5903137b500d7
GIT binary patch
literal 1561
zcmaJ>+fLg+6r4>$98z-&A(T=sZJ{`UVtOwGcpwsL)X-J}QB|l9CRt#KV<US(;!pY!
zeQ2ekN<8!f`cYNS+7_gV;lbXs>)CVW%<THl-^<?s*07RA0!a-i9X&`h3?5r&mT6ng
zq4{C|nAaskdQ~_=t}`T!;%+Z8=+%(baR)lXc-?K82ezm;4}{a;p4oC6+%~t|Gr<`W
zqQStbYEQq80Sq$qNFi<dl&f7A+LoSh4$BIb(=n{_rp~$L<%r>kjsiv*Mq5^sS6ruV
z$xlKaQRGX@kv@ZARJ(Iki`{FKBp$j;^(w@hVW1`){{FPJ&%GUMKji7wEqmAUgqlZ-
zDS0HQ@<i>H?#tBcA(vHBfOM<U%nxTNqgtej8Tz;rYLPc$*=A@%gcvcp+fhk0O7fYM
zqKLp@l#y;IC_{GJJ@x8*Q>ad|fhmhhcCvZHb)_#o>tu_|Be&sa@Prx)Ak%xIvBnmr
z1E*A=yjWvj2GTIISi(~c&y*|A8D_3c6waC3<YrhpG-}hTOV>MR_}WfC0)}<pT28~}
z{!Gnvo2Mt`?k?L_{@b{7e!^qmdu{me{Fd9bjZ#!B+ujzElSg{haky8pE#K$9hF1);
zT|LE7)$oR4@^&a)ov<%Fprf6j)10I?-5ZJ$>N*4?op%~Dpc8_-^d6&`P2W>A=1af8
zO5+#MN(&e0D@|Nr=tr>Y9=!{+1IQ6_7`@1&A0reMFixwba6j&2f@YK{sLO&#RaR{B
z>aGzdY6MeJWs^pQ>M8w%_KkuBRH<~ZI2okYLqL?8VVc?tX|EGnB~AyFuZgOE3@}G@
zjUYoIL|u_fN8}hD;!%{Vok-vJ4kAmjL}oDCMP#02>m;&FL{@GfqO?&8JdRals8f-R
zSR!-rinLi5D)Nqq)NUZ6tWiXaD@9fVtH^L=4LyDI3|*3o=#=MU8>?KTauUTr#1iId
VRL5<Ro&~(1S(c)gc#UO@{R7M7Cp`cF

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/model/MovieRating.class b/target/classes/com/flickfinder/model/MovieRating.class
new file mode 100644
index 0000000000000000000000000000000000000000..5ce8cb9ad01441b6f5e8c72c096b20a7c373b1da
GIT binary patch
literal 1051
zcmah|QE$>v7(JJj7HV<83IlQKoI0p;HG4&Qk(iL6CT`)qgM!u4CS4&h@keRm;^Kop
zz#nBix9tKmQ%ShJ{c_HC&UfzZ&tKnv0C<k4I&#?1pcu$Q6=;paxjps0@rS7wOx(zx
zhZEPgUxiE06;Pjfffx4#w%dc@duQp`z7x#s<2dqyS$EJG6;VJ@gKppk41wK$bbIT>
zB(Z0dZA4$PZyMM{Ss=d*WA{uz40KenrNJ~%LtUV}((Q+fQ=hi9rQ<K$H&cOHyWd$e
zmIAsu8fa>`B|EePDyt5IAa-YNBv5Y;)`?lYE6}`l(mrPuP+l+`fz6>8xUU!UQ#U$s
z5<}HtIClJz6M6DID=P6jj|1%u{~HQrbKZm*#9l1ttFDcdWliyqu0!L+nHyh5X|~sA
z$c886Yz0vm5S<su8l?f(u8>xP7s$#W3d12uKMohs*nR0qPvzuFq{@dfQ0(&ba=cXX
z&(r4$d6Zo9;4HY!b%$@Cpg`l(v|0x{-yp1pat_U^splwtVLgXCT&qNZIE`IPC}Imb
z?y}N@%GJa@>dBvp`_vH0ZVwL<brTO++em8CiR@%1UQ{9<VLx+nM6_fUtgp~6Q2ES#
zsxEOLQz{xM2C1Sz8=Z{bqlQ#bt$j|g@-DwA&_N!Rq(eP<SF;YpC;9Mh!@}dN*AbtW
rUP>3({?m(jt(OBl$@o2LNLAHpUCA-^(x8{-U%bdOlG=x4=V1Q^Quw=5

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/model/Person.class b/target/classes/com/flickfinder/model/Person.class
new file mode 100644
index 0000000000000000000000000000000000000000..8d851a85333d610c54f0f6bf6bc6f1364c970c75
GIT binary patch
literal 1597
zcma)+TTc@~6vzM5+m^Bjlu|@cK>^!xsp1t2JWxYyQo#g*55$L|9boBpm+THCd=o!}
z51L3!c<=-Gp^RsCHn7q{eAt~c)Bl|FJD2V6KNr6Mte}!X3~>Vq6G@~P29EeCFWcNX
zC~xi^iH2lIEnAKyR~h1k;!Y3J=rNEn(F>Ddyy3RX`?l3+?ORS$c;&X+6n6Qe@O;-{
zh*?brR#TVmnCQm<L&D*0!H}(A1=^CH<s4L$Dr;g$sp9W8*RljSY$A^lhLJXJiK^=~
zxcp?vL$Z9y9qBVH6>6QXI!}t7M+}Akyt_l#RZ5JZziv5V<D|VOyluW`2Z^{1Ztrl<
zQv2{QArCELdr-fvJQarIfsi#S5mmNEJ74b-g<6q98ua5vP^?^`E51Q`Ef_9zrl(w_
z$OToB43Y*$ys5Tn>FT00WVYNBuOZegl}xX0+=A*2&BB`NN?&^X_=Av#ZqrX=fm*IL
z6T4P(h0RT<cB+-UudvVkDLl>K85RvZSFL-&Fm=^v%Q<yhqO3#fZm#o&biFf%FVPf2
zp$_|=J55{oQ+3yEog7y>GmV`5b8-9ZSagx^M)Z2dE79_XE~?zNw=5~BOJ>b+gjcn>
z?+f3+Yli8LoVuYJSfUxYT}rLdd0~>qKSm=Tr#F3DWX04M6Rh-2(3%F#2=3B*ly)}#
zo}e{X`UzGVJBLx4J4at>{v3nfgIo9Lou?Z>mXt&2K@N8?OjaIabXwB)F^>DRBTqqG
z7Fa5>qRFZ6k(ekEJPae3X;rFZ=?9FjWW=CCrGmrJz_qCbp=*W-N>5|2l3F=V1;|&R
z>VF6XlB7TiF0WOWaH$ZE;SnB(zM>#~-{?{lWU?#B6s9{sW~pq~L8b|0<^~W|8&!ds
zt{{WgL5f{Lo^%I^v`$xKo<J6E04anZ#Y>RopjFgx)f#&G=o!4AF5)`XVuUIiRyj^1
ap^7+*Ia<}YsS3~ICG9d~y}}#3#pqwRNij<R

literal 0
HcmV?d00001

diff --git a/target/classes/com/flickfinder/util/Database.class b/target/classes/com/flickfinder/util/Database.class
new file mode 100644
index 0000000000000000000000000000000000000000..082c26870a3686a272dfb1bfc55aed810e813d42
GIT binary patch
literal 1444
zcmaiz+fvg|6o&uZ7E(e=%b^@pq<Fx#RHC4uAl`5oaf*j2!wgrt8#W~n(wYXw2k>3I
z6;C)aqnFP3Q0m${p+%>{O`5&3_P74^uhpNwzJ3ERk68^7hGDC^XKp#RwYz1zo5C~q
zecLe?xzEeIE;Pg#Qak*Bn+|s?=F{?yuzZHN?bdznT7qGucqU<vLAR=|OV{kG%aATA
zTK$z{E;PcF)c(MBZT}%9WP=P<ujG5STbawPGsG6En?gqv2?HJIVu)sQ>pD{C(a_D%
z-@q<<_JQzLxyviUGti4ZhD1g9&2kL6Rz+GW>j1G0Xo%|=#03pQB(YJe^t`zA+7dO{
zn}Lf`R<cHt{gThE-8GL(hmu9x6;Jl}%EDXYWrrd?#j3@fb?({n90p_lwq2(_Yuw+K
zDNWZy7Z@1b9caotU7ajUsG_U9rhpo*|24V*!Y~-N{?7!Y#hv8RN@K87Ej>DW*wU@M
zfi|@3^j46Q(ix`zQ}Ue6kqA>F#>f@9Lky$Y+&PytOwmp@y<2e{QQ;0*<BP_q;<(E&
zbh6}`lV#4hRX<Y~zK%&0$Z0Cpm~?Y{<VKgO`<^A1Z8^-u31>nkW0X`!=?@lxE`6Xk
z$nBwLJH^Nk`rb*WH*}JD>HHCl{P-6nKOy}V@zug-3>;EY3<i?4b5UHPw0?qtHY|o=
zieIL^A3+}#8>VO`08un3m!@wSBBUsL6j!LwRm$o`<Tn8$8kmM_@-Y}wipD}k%XErR
zq8=zBIfrzLsPbK^M4o`-)I&j)?GLgWWp&jjqwhD64VlmA9wSQnJ#s(Lbquya^zjeK
zQQ#eY2)YaKGo=3>x-qNpMsQK}0@VSbx)uFqNS_bs$&fqI<OZ^JCGim%{`eF#iCbzQ
zQt0gvwWJyZ`jpVbF(x;9?i^wIdkdW}Nass(x2%}bGU+d=OA)LWGa=HXU)g(G{v*<|
V*FaOd3Oc9sw1pNj>Rx8u{{!6HDX;(l

literal 0
HcmV?d00001

diff --git a/target/classes/movies.db b/target/classes/movies.db
new file mode 100644
index 0000000..e69de29
diff --git a/target/classes/public/index.html b/target/classes/public/index.html
new file mode 100644
index 0000000..c968e8a
--- /dev/null
+++ b/target/classes/public/index.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<title>API Documentation</title>
+	<style>
+		body {
+			font-family: Arial, sans-serif;
+			margin: 20px;
+		}
+
+		.route {
+			margin-bottom: 10px;
+		}
+
+		.route h3 {
+			margin: 0;
+			color: #333;
+		}
+
+		.route p {
+			margin: 5px 0;
+			color: #666;
+		}
+	</style>
+</head>
+
+<body>
+	<h1>API Documentation</h1>
+
+	<div class="route">
+		<h3><a href="/movies"> GET /movies </a></h3>
+		<p>Returns all movies.</p>
+	</div>
+
+	<div class="route">
+		<h3><a href="/movies/63018"> GET /movies/{id} </a></h3>
+		<p>Returns a movie by its ID.</p>
+	</div>
+	<div class="route">
+		<h3><a href="/movies/407887/stars"> GET /movies/{id}/stars </a></h3>
+		<p>Returns all stars of a movie</p>
+	</div>
+	<div class="route">
+
+		<h3><a href="/movies/ratings/1999"> GET /movies/ratings/{year} </a></h3>
+		<p>Retrieves a list of movies ordered by rating in descending order, for a given year</p>
+
+	</div>
+
+	<div class="route">
+		<h3> <a href="/people">GET /people </a></h3>
+		<p>Returns a list of people</p>
+	</div>
+
+	<div class="route">
+		<h3><a href="/people/138"> GET /people/{id} </a></h3>
+		<p>Returns a person by their ID.</p>
+	</div>
+
+	<div class="route">
+		<h3><a href="/people/138/movies">GET /people/{id}/movies </a></h3>
+		<p>Returns all movies of a person</p>
+	</div>
+
+
+
+
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..8c94b29
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=COM1028-ad02184
+groupId=com.flickfinder
+version=1.0-SNAPSHOT
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..4a3a919
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,10 @@
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/dao/MovieDAO.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/Main.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/AppConfig.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/model/Person.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/model/Movie.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/model/MovieRating.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/dao/PersonDAO.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/controller/MovieController.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/util/Database.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/main/java/com/flickfinder/controller/PersonController.java
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..1b118a5
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,8 @@
+/Users/alistairdeane/Desktop/com1028ad02184/src/test/java/com/flickfinder/dao/MovieDAOTest.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/test/java/com/flickfinder/controller/MovieControllerTest.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/test/java/com/flickfinder/dao/PersonDAOTest.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/test/java/com/flickfinder/util/Seeder.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/test/java/com/flickfinder/model/MovieTest.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/test/java/com/flickfinder/controller/PersonControllerTest.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/test/java/com/flickfinder/IntegrationTests.java
+/Users/alistairdeane/Desktop/com1028ad02184/src/test/java/com/flickfinder/model/PersonTest.java
diff --git a/target/surefire-reports/TEST-com.flickfinder.IntegrationTests.xml b/target/surefire-reports/TEST-com.flickfinder.IntegrationTests.xml
new file mode 100644
index 0000000..41be9f7
--- /dev/null
+++ b/target/surefire-reports/TEST-com.flickfinder.IntegrationTests.xml
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="com.flickfinder.IntegrationTests" time="2.028" tests="11" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="17"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="java.vm.vendor" value="JetBrains s.r.o."/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://openjdk.java.net/"/>
+    <property name="user.timezone" value="Europe/London"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="17"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="GB"/>
+    <property name="sun.boot.library.path" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home/lib"/>
+    <property name="sun.java.command" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar /Users/alistairdeane/Desktop/com1028ad02184/target/surefire 2024-05-12T15-40-07_292-jvmRun1 surefire-20240512154007355_1tmp surefire_0-20240512154007355_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/alistairdeane"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2023-10-17"/>
+    <property name="java.home" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="style.color" value="always"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="jbr.virtualization.information" value="No virtualization detected"/>
+    <property name="surefire.real.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="17.0.9+7-b1087.7"/>
+    <property name="user.name" value="alistairdeane"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="14.0"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="JBR-17.0.9+7-1087.7-jcef"/>
+    <property name="localRepository" value="/Users/alistairdeane/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="jetty.git.hash" value="f781e475c8fa9e9c8ce18b1eaa03110d510f905f"/>
+    <property name="java.io.tmpdir" value="/var/folders/dj/slny6vg90kn1_qgn2pwwqg_m0000gn/T/"/>
+    <property name="java.version" value="17.0.9"/>
+    <property name="user.dir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/alistairdeane/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="JetBrains s.r.o."/>
+    <property name="java.vm.version" value="17.0.9+7-b1087.7"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="61.0"/>
+  </properties>
+  <testcase name="listofallpeoplewithlimit" classname="com.flickfinder.IntegrationTests" time="1.675">
+    <system-err><![CDATA[SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
+SLF4J: Defaulting to no-operation (NOP) logger implementation
+SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
+
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="listofmovieswithlimit" classname="com.flickfinder.IntegrationTests" time="0.035">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="retrieves_a_list_of_all_movies" classname="com.flickfinder.IntegrationTests" time="0.034">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="retrieves_a_list_of_all_people" classname="com.flickfinder.IntegrationTests" time="0.037">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="yearwithvote" classname="com.flickfinder.IntegrationTests" time="0.035">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="retrieves_movies_by_year_sorted" classname="com.flickfinder.IntegrationTests" time="0.041">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="retrieves_movies_by_person_id" classname="com.flickfinder.IntegrationTests" time="0.035">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="retrieves_a_single_person_by_id" classname="com.flickfinder.IntegrationTests" time="0.03">
+    <system-out><![CDATA[Person [id=1, name=Tim Robbins, DOB=1958-10-16]
+]]></system-out>
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="yearwithlimit" classname="com.flickfinder.IntegrationTests" time="0.03">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="retrieves_a_single_movie_by_id" classname="com.flickfinder.IntegrationTests" time="0.025">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+  <testcase name="retrieves_stars_by_movieid" classname="com.flickfinder.IntegrationTests" time="0.025">
+    <system-err><![CDATA[
+#########################################################################
+Javalin: It looks like you don't have a logger in your project.
+The easiest way to fix this is to add 'slf4j-simple':
+
+pom.xml:
+<dependency>
+    <groupId>org.slf4j</groupId>
+    <artifactId>slf4j-simple</artifactId>
+    <version>2.0.10</version>
+</dependency>
+
+build.gradle or build.gradle.kts:
+implementation("org.slf4j:slf4j-simple:2.0.10")
+
+Visit https://javalin.io/documentation#logging if you need more help
+#########################################################################
+]]></system-err>
+  </testcase>
+</testsuite>
\ No newline at end of file
diff --git a/target/surefire-reports/TEST-com.flickfinder.controller.MovieControllerTest.xml b/target/surefire-reports/TEST-com.flickfinder.controller.MovieControllerTest.xml
new file mode 100644
index 0000000..04aba63
--- /dev/null
+++ b/target/surefire-reports/TEST-com.flickfinder.controller.MovieControllerTest.xml
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="com.flickfinder.controller.MovieControllerTest" time="0.917" tests="5" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="17"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="java.vm.vendor" value="JetBrains s.r.o."/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://openjdk.java.net/"/>
+    <property name="user.timezone" value="Europe/London"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="17"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="GB"/>
+    <property name="sun.boot.library.path" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home/lib"/>
+    <property name="sun.java.command" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar /Users/alistairdeane/Desktop/com1028ad02184/target/surefire 2024-05-12T15-40-07_292-jvmRun1 surefire-20240512154007355_1tmp surefire_0-20240512154007355_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/alistairdeane"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2023-10-17"/>
+    <property name="java.home" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="style.color" value="always"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="jbr.virtualization.information" value="No virtualization detected"/>
+    <property name="surefire.real.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="17.0.9+7-b1087.7"/>
+    <property name="user.name" value="alistairdeane"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="14.0"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="JBR-17.0.9+7-1087.7-jcef"/>
+    <property name="localRepository" value="/Users/alistairdeane/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="jetty.git.hash" value="f781e475c8fa9e9c8ce18b1eaa03110d510f905f"/>
+    <property name="java.io.tmpdir" value="/var/folders/dj/slny6vg90kn1_qgn2pwwqg_m0000gn/T/"/>
+    <property name="java.version" value="17.0.9"/>
+    <property name="user.dir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/alistairdeane/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="JetBrains s.r.o."/>
+    <property name="java.vm.version" value="17.0.9+7-b1087.7"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="61.0"/>
+  </properties>
+  <testcase name="testGetMovieById" classname="com.flickfinder.controller.MovieControllerTest" time="0.893"/>
+  <testcase name="testThrows500ExceptionWhenGetAllDatabaseError" classname="com.flickfinder.controller.MovieControllerTest" time="0.007">
+    <system-err><![CDATA[java.sql.SQLException
+	at com.flickfinder.dao.MovieDAO.getAllMovies(MovieDAO.java:47)
+	at com.flickfinder.controller.MovieController.getAllMovies(MovieController.java:51)
+	at com.flickfinder.controller.MovieControllerTest.testThrows500ExceptionWhenGetAllDatabaseError(MovieControllerTest.java:74)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
+	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
+	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
+	at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
+	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
+	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
+]]></system-err>
+  </testcase>
+  <testcase name="testGetAllMovies" classname="com.flickfinder.controller.MovieControllerTest" time="0.002"/>
+  <testcase name="testThrows500ExceptionWhenGetByIdDatabaseError" classname="com.flickfinder.controller.MovieControllerTest" time="0.005">
+    <system-err><![CDATA[java.sql.SQLException
+	at com.flickfinder.dao.MovieDAO.getMovieById(MovieDAO.java:77)
+	at com.flickfinder.controller.MovieController.getMovieById(MovieController.java:70)
+	at com.flickfinder.controller.MovieControllerTest.testThrows500ExceptionWhenGetByIdDatabaseError(MovieControllerTest.java:104)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
+	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
+	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
+	at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
+	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
+	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
+]]></system-err>
+  </testcase>
+  <testcase name="testThrows404ExceptionWhenNoMovieFound" classname="com.flickfinder.controller.MovieControllerTest" time="0.004"/>
+</testsuite>
\ No newline at end of file
diff --git a/target/surefire-reports/TEST-com.flickfinder.controller.PersonControllerTest.xml b/target/surefire-reports/TEST-com.flickfinder.controller.PersonControllerTest.xml
new file mode 100644
index 0000000..0c05d9f
--- /dev/null
+++ b/target/surefire-reports/TEST-com.flickfinder.controller.PersonControllerTest.xml
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="com.flickfinder.controller.PersonControllerTest" time="0.03" tests="5" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="17"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="java.vm.vendor" value="JetBrains s.r.o."/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://openjdk.java.net/"/>
+    <property name="user.timezone" value="Europe/London"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="17"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="GB"/>
+    <property name="sun.boot.library.path" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home/lib"/>
+    <property name="sun.java.command" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar /Users/alistairdeane/Desktop/com1028ad02184/target/surefire 2024-05-12T15-40-07_292-jvmRun1 surefire-20240512154007355_1tmp surefire_0-20240512154007355_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/alistairdeane"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2023-10-17"/>
+    <property name="java.home" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="style.color" value="always"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="jbr.virtualization.information" value="No virtualization detected"/>
+    <property name="surefire.real.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="17.0.9+7-b1087.7"/>
+    <property name="user.name" value="alistairdeane"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="14.0"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="JBR-17.0.9+7-1087.7-jcef"/>
+    <property name="localRepository" value="/Users/alistairdeane/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="jetty.git.hash" value="f781e475c8fa9e9c8ce18b1eaa03110d510f905f"/>
+    <property name="java.io.tmpdir" value="/var/folders/dj/slny6vg90kn1_qgn2pwwqg_m0000gn/T/"/>
+    <property name="java.version" value="17.0.9"/>
+    <property name="user.dir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/alistairdeane/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="JetBrains s.r.o."/>
+    <property name="java.vm.version" value="17.0.9+7-b1087.7"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="61.0"/>
+  </properties>
+  <testcase name="testGetMovieById" classname="com.flickfinder.controller.PersonControllerTest" time="0.015">
+    <system-out><![CDATA[null
+]]></system-out>
+  </testcase>
+  <testcase name="testThrows500ExceptionWhenGetAllDatabaseError" classname="com.flickfinder.controller.PersonControllerTest" time="0.004">
+    <system-err><![CDATA[java.sql.SQLException
+	at com.flickfinder.dao.PersonDAO.getAllPeople(PersonDAO.java:32)
+	at com.flickfinder.controller.PersonController.getAllPeople(PersonController.java:26)
+	at com.flickfinder.controller.PersonControllerTest.testThrows500ExceptionWhenGetAllDatabaseError(PersonControllerTest.java:41)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
+	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
+	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
+	at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
+	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
+	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
+]]></system-err>
+  </testcase>
+  <testcase name="testThrows404ExceptionWhenNoPersonFound" classname="com.flickfinder.controller.PersonControllerTest" time="0.003">
+    <system-out><![CDATA[null
+]]></system-out>
+  </testcase>
+  <testcase name="testGetAllPeople" classname="com.flickfinder.controller.PersonControllerTest" time="0.001"/>
+  <testcase name="testThrows500ExceptionWhenGetByIdDatabaseError" classname="com.flickfinder.controller.PersonControllerTest" time="0.004">
+    <system-err><![CDATA[java.sql.SQLException
+	at com.flickfinder.dao.PersonDAO.getPersonById(PersonDAO.java:51)
+	at com.flickfinder.controller.PersonController.getPersonById(PersonController.java:37)
+	at com.flickfinder.controller.PersonControllerTest.testThrows500ExceptionWhenGetByIdDatabaseError(PersonControllerTest.java:60)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
+	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
+	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
+	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
+	at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
+	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
+	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
+	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
+]]></system-err>
+  </testcase>
+</testsuite>
\ No newline at end of file
diff --git a/target/surefire-reports/TEST-com.flickfinder.dao.MovieDAOTest.xml b/target/surefire-reports/TEST-com.flickfinder.dao.MovieDAOTest.xml
new file mode 100644
index 0000000..d69f8e8
--- /dev/null
+++ b/target/surefire-reports/TEST-com.flickfinder.dao.MovieDAOTest.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="com.flickfinder.dao.MovieDAOTest" time="0.008" tests="3" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="17"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="java.vm.vendor" value="JetBrains s.r.o."/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://openjdk.java.net/"/>
+    <property name="user.timezone" value="Europe/London"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="17"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="GB"/>
+    <property name="sun.boot.library.path" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home/lib"/>
+    <property name="sun.java.command" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar /Users/alistairdeane/Desktop/com1028ad02184/target/surefire 2024-05-12T15-40-07_292-jvmRun1 surefire-20240512154007355_1tmp surefire_0-20240512154007355_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/alistairdeane"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2023-10-17"/>
+    <property name="java.home" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="style.color" value="always"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="jbr.virtualization.information" value="No virtualization detected"/>
+    <property name="surefire.real.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="17.0.9+7-b1087.7"/>
+    <property name="user.name" value="alistairdeane"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="14.0"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="JBR-17.0.9+7-1087.7-jcef"/>
+    <property name="localRepository" value="/Users/alistairdeane/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="jetty.git.hash" value="f781e475c8fa9e9c8ce18b1eaa03110d510f905f"/>
+    <property name="java.io.tmpdir" value="/var/folders/dj/slny6vg90kn1_qgn2pwwqg_m0000gn/T/"/>
+    <property name="java.version" value="17.0.9"/>
+    <property name="user.dir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/alistairdeane/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="JetBrains s.r.o."/>
+    <property name="java.vm.version" value="17.0.9+7-b1087.7"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="61.0"/>
+  </properties>
+  <testcase name="testGetMovieById" classname="com.flickfinder.dao.MovieDAOTest" time="0.004"/>
+  <testcase name="testGetMovieByIdInvalidId" classname="com.flickfinder.dao.MovieDAOTest" time="0.001"/>
+  <testcase name="testGetAllMovies" classname="com.flickfinder.dao.MovieDAOTest" time="0.001"/>
+</testsuite>
\ No newline at end of file
diff --git a/target/surefire-reports/TEST-com.flickfinder.dao.PersonDAOTest.xml b/target/surefire-reports/TEST-com.flickfinder.dao.PersonDAOTest.xml
new file mode 100644
index 0000000..0b74eb7
--- /dev/null
+++ b/target/surefire-reports/TEST-com.flickfinder.dao.PersonDAOTest.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="com.flickfinder.dao.PersonDAOTest" time="0.004" tests="3" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="17"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="java.vm.vendor" value="JetBrains s.r.o."/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://openjdk.java.net/"/>
+    <property name="user.timezone" value="Europe/London"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="17"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="GB"/>
+    <property name="sun.boot.library.path" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home/lib"/>
+    <property name="sun.java.command" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar /Users/alistairdeane/Desktop/com1028ad02184/target/surefire 2024-05-12T15-40-07_292-jvmRun1 surefire-20240512154007355_1tmp surefire_0-20240512154007355_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/alistairdeane"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2023-10-17"/>
+    <property name="java.home" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="style.color" value="always"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="jbr.virtualization.information" value="No virtualization detected"/>
+    <property name="surefire.real.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="17.0.9+7-b1087.7"/>
+    <property name="user.name" value="alistairdeane"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="14.0"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="JBR-17.0.9+7-1087.7-jcef"/>
+    <property name="localRepository" value="/Users/alistairdeane/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="jetty.git.hash" value="f781e475c8fa9e9c8ce18b1eaa03110d510f905f"/>
+    <property name="java.io.tmpdir" value="/var/folders/dj/slny6vg90kn1_qgn2pwwqg_m0000gn/T/"/>
+    <property name="java.version" value="17.0.9"/>
+    <property name="user.dir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/alistairdeane/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="JetBrains s.r.o."/>
+    <property name="java.vm.version" value="17.0.9+7-b1087.7"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="61.0"/>
+  </properties>
+  <testcase name="testGetPersonById" classname="com.flickfinder.dao.PersonDAOTest" time="0.001"/>
+  <testcase name="testGetAllPeople" classname="com.flickfinder.dao.PersonDAOTest" time="0.001"/>
+  <testcase name="testGetPersonByIdInvalidId" classname="com.flickfinder.dao.PersonDAOTest" time="0.001"/>
+</testsuite>
\ No newline at end of file
diff --git a/target/surefire-reports/TEST-com.flickfinder.model.MovieTest.xml b/target/surefire-reports/TEST-com.flickfinder.model.MovieTest.xml
new file mode 100644
index 0000000..31e6e75
--- /dev/null
+++ b/target/surefire-reports/TEST-com.flickfinder.model.MovieTest.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="com.flickfinder.model.MovieTest" time="0.002" tests="2" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="17"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="java.vm.vendor" value="JetBrains s.r.o."/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://openjdk.java.net/"/>
+    <property name="user.timezone" value="Europe/London"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="17"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="GB"/>
+    <property name="sun.boot.library.path" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home/lib"/>
+    <property name="sun.java.command" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar /Users/alistairdeane/Desktop/com1028ad02184/target/surefire 2024-05-12T15-40-07_292-jvmRun1 surefire-20240512154007355_1tmp surefire_0-20240512154007355_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/alistairdeane"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2023-10-17"/>
+    <property name="java.home" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="style.color" value="always"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="jbr.virtualization.information" value="No virtualization detected"/>
+    <property name="surefire.real.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="17.0.9+7-b1087.7"/>
+    <property name="user.name" value="alistairdeane"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="14.0"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="JBR-17.0.9+7-1087.7-jcef"/>
+    <property name="localRepository" value="/Users/alistairdeane/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="jetty.git.hash" value="f781e475c8fa9e9c8ce18b1eaa03110d510f905f"/>
+    <property name="java.io.tmpdir" value="/var/folders/dj/slny6vg90kn1_qgn2pwwqg_m0000gn/T/"/>
+    <property name="java.version" value="17.0.9"/>
+    <property name="user.dir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/alistairdeane/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="JetBrains s.r.o."/>
+    <property name="java.vm.version" value="17.0.9+7-b1087.7"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="61.0"/>
+  </properties>
+  <testcase name="testMovieCreated" classname="com.flickfinder.model.MovieTest" time="0.001"/>
+  <testcase name="testMovieSetters" classname="com.flickfinder.model.MovieTest" time="0.001"/>
+</testsuite>
\ No newline at end of file
diff --git a/target/surefire-reports/TEST-com.flickfinder.model.PersonTest.xml b/target/surefire-reports/TEST-com.flickfinder.model.PersonTest.xml
new file mode 100644
index 0000000..59e74e2
--- /dev/null
+++ b/target/surefire-reports/TEST-com.flickfinder.model.PersonTest.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="com.flickfinder.model.PersonTest" time="0.004" tests="2" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="17"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="java.vm.vendor" value="JetBrains s.r.o."/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://openjdk.java.net/"/>
+    <property name="user.timezone" value="Europe/London"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="17"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="GB"/>
+    <property name="sun.boot.library.path" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home/lib"/>
+    <property name="sun.java.command" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar /Users/alistairdeane/Desktop/com1028ad02184/target/surefire 2024-05-12T15-40-07_292-jvmRun1 surefire-20240512154007355_1tmp surefire_0-20240512154007355_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/test-classes:/Users/alistairdeane/Desktop/com1028ad02184/target/classes:/Users/alistairdeane/.m2/repository/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar:/Users/alistairdeane/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/alistairdeane/.m2/repository/io/javalin/javalin/6.0.0/javalin-6.0.0.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-server/11.0.19/jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-http/11.0.19/jetty-http-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-util/11.0.19/jetty-util-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-io/11.0.19/jetty-io-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-server/11.0.19/websocket-jetty-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-api/11.0.19/websocket-jetty-api-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-jetty-common/11.0.19/websocket-jetty-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-common/11.0.19/websocket-core-common-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/11.0.19/websocket-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/websocket/websocket-core-server/11.0.19/websocket-core-server-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-servlet/11.0.19/jetty-servlet-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-security/11.0.19/jetty-security-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-webapp/11.0.19/jetty-webapp-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/eclipse/jetty/jetty-xml/11.0.19/jetty-xml-11.0.19.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.10/kotlin-stdlib-jdk8-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.10/kotlin-stdlib-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/alistairdeane/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.10/kotlin-stdlib-jdk7-1.9.10.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.16.1/jackson-databind-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.16.1/jackson-annotations-2.16.1.jar:/Users/alistairdeane/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.16.1/jackson-core-2.16.1.jar:/Users/alistairdeane/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar:/Users/alistairdeane/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/alistairdeane/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/alistairdeane/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/alistairdeane/.m2/repository/org/mockito/mockito-core/5.10.0/mockito-core-5.10.0.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy/1.14.11/byte-buddy-1.14.11.jar:/Users/alistairdeane/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar:/Users/alistairdeane/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured/5.4.0/rest-assured-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy/4.0.16/groovy-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-xml/4.0.16/groovy-xml-4.0.16.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar:/Users/alistairdeane/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/alistairdeane/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/alistairdeane/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar:/Users/alistairdeane/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/Users/alistairdeane/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/json-path/5.4.0/json-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/groovy/groovy-json/4.0.16/groovy-json-4.0.16.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/rest-assured-common/5.4.0/rest-assured-common-5.4.0.jar:/Users/alistairdeane/.m2/repository/io/rest-assured/xml-path/5.4.0/xml-path-5.4.0.jar:/Users/alistairdeane/.m2/repository/org/apache/commons/commons-lang3/3.11/commons-lang3-3.11.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/alistairdeane"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2023-10-17"/>
+    <property name="java.home" value="/Users/alistairdeane/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="style.color" value="always"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="jbr.virtualization.information" value="No virtualization detected"/>
+    <property name="surefire.real.class.path" value="/Users/alistairdeane/Desktop/com1028ad02184/target/surefire/surefirebooter-20240512154007355_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="17.0.9+7-b1087.7"/>
+    <property name="user.name" value="alistairdeane"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="14.0"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="JBR-17.0.9+7-1087.7-jcef"/>
+    <property name="localRepository" value="/Users/alistairdeane/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="jetty.git.hash" value="f781e475c8fa9e9c8ce18b1eaa03110d510f905f"/>
+    <property name="java.io.tmpdir" value="/var/folders/dj/slny6vg90kn1_qgn2pwwqg_m0000gn/T/"/>
+    <property name="java.version" value="17.0.9"/>
+    <property name="user.dir" value="/Users/alistairdeane/Desktop/com1028ad02184"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/alistairdeane/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="JetBrains s.r.o."/>
+    <property name="java.vm.version" value="17.0.9+7-b1087.7"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="61.0"/>
+  </properties>
+  <testcase name="testPersonSetters" classname="com.flickfinder.model.PersonTest" time="0.0"/>
+  <testcase name="testPersonCreated" classname="com.flickfinder.model.PersonTest" time="0.0"/>
+</testsuite>
\ No newline at end of file
diff --git a/target/surefire-reports/com.flickfinder.IntegrationTests.txt b/target/surefire-reports/com.flickfinder.IntegrationTests.txt
new file mode 100644
index 0000000..498085b
--- /dev/null
+++ b/target/surefire-reports/com.flickfinder.IntegrationTests.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.flickfinder.IntegrationTests
+-------------------------------------------------------------------------------
+Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.028 s -- in com.flickfinder.IntegrationTests
diff --git a/target/surefire-reports/com.flickfinder.controller.MovieControllerTest.txt b/target/surefire-reports/com.flickfinder.controller.MovieControllerTest.txt
new file mode 100644
index 0000000..ab585f8
--- /dev/null
+++ b/target/surefire-reports/com.flickfinder.controller.MovieControllerTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.flickfinder.controller.MovieControllerTest
+-------------------------------------------------------------------------------
+Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.917 s -- in com.flickfinder.controller.MovieControllerTest
diff --git a/target/surefire-reports/com.flickfinder.controller.PersonControllerTest.txt b/target/surefire-reports/com.flickfinder.controller.PersonControllerTest.txt
new file mode 100644
index 0000000..20df994
--- /dev/null
+++ b/target/surefire-reports/com.flickfinder.controller.PersonControllerTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.flickfinder.controller.PersonControllerTest
+-------------------------------------------------------------------------------
+Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.030 s -- in com.flickfinder.controller.PersonControllerTest
diff --git a/target/surefire-reports/com.flickfinder.dao.MovieDAOTest.txt b/target/surefire-reports/com.flickfinder.dao.MovieDAOTest.txt
new file mode 100644
index 0000000..ae4e31b
--- /dev/null
+++ b/target/surefire-reports/com.flickfinder.dao.MovieDAOTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.flickfinder.dao.MovieDAOTest
+-------------------------------------------------------------------------------
+Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 s -- in com.flickfinder.dao.MovieDAOTest
diff --git a/target/surefire-reports/com.flickfinder.dao.PersonDAOTest.txt b/target/surefire-reports/com.flickfinder.dao.PersonDAOTest.txt
new file mode 100644
index 0000000..37cd96a
--- /dev/null
+++ b/target/surefire-reports/com.flickfinder.dao.PersonDAOTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.flickfinder.dao.PersonDAOTest
+-------------------------------------------------------------------------------
+Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s -- in com.flickfinder.dao.PersonDAOTest
diff --git a/target/surefire-reports/com.flickfinder.model.MovieTest.txt b/target/surefire-reports/com.flickfinder.model.MovieTest.txt
new file mode 100644
index 0000000..6a94952
--- /dev/null
+++ b/target/surefire-reports/com.flickfinder.model.MovieTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.flickfinder.model.MovieTest
+-------------------------------------------------------------------------------
+Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 s -- in com.flickfinder.model.MovieTest
diff --git a/target/surefire-reports/com.flickfinder.model.PersonTest.txt b/target/surefire-reports/com.flickfinder.model.PersonTest.txt
new file mode 100644
index 0000000..17fcf8d
--- /dev/null
+++ b/target/surefire-reports/com.flickfinder.model.PersonTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.flickfinder.model.PersonTest
+-------------------------------------------------------------------------------
+Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s -- in com.flickfinder.model.PersonTest
diff --git a/target/test-classes/com/flickfinder/IntegrationTests.class b/target/test-classes/com/flickfinder/IntegrationTests.class
new file mode 100644
index 0000000000000000000000000000000000000000..a2dbba683edcd80dcf75edd8cc061a0d2b3582f5
GIT binary patch
literal 6458
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
NAg{mSANUuR{ue;okoy1t

literal 0
HcmV?d00001

diff --git a/target/test-classes/com/flickfinder/controller/MovieControllerTest.class b/target/test-classes/com/flickfinder/controller/MovieControllerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..8dcad78cacc68ca9adef90d3a66fdb862f187dde
GIT binary patch
literal 2738
zcma)-O?T5)5Qg9D7#tkYfN2PyA>q?8A2KDh1Vc&)Ng6N&urW<3w6d(&3bN!%*CBM(
z{(-K#;tzDqIZYttw5RL-p00cPUd6E;gMo!D>0ZsuGw;kD{qx@+e*w6Pr8pw!i6N?C
z8@3DVS~8Xm-7(y<K3`n2OewJaitXBRLZBx(T8N=n;E?H6^+m@vpDx;N$@2A*;pw-%
zW!t(jIUh$HeKBYncH$F(J)U3ItDgDPmg=4GDiBpG0w<E$R=g?42!hOL+sXz(W(Rg*
zcMJ&)d+@2ixz6aO=Stsm9D;-pQ_bhR6)=I`Y6DGRDBEe=j-H8OufU+~>59s+UA-b@
zO;`S`6{#@xY1oegl){uN0{gRFUZtZ$0;$ee-9h6xh#^&iBLXAI_d|{r6v>E&qc|qe
zA12pIS>ViD=H26FRNxaDPU4h+R<`7%<AfRpta7qzdZPtZ<xveOoMwY8TfV*cT;ODT
zIUB`$M?K?+;jD^zPT+XENlyB<Ti$Gey0jfVYX_2QrUeGVP6>W+^xVDd^onWKr0uzJ
z==e;-1=YL#HJZzuG|Z=Y-!Lu3cu~XW_<{}htYWzWm)pZN3ENvVko97b6#Bed_IS-T
zo(VC|Zf><}zT$h&jH1IZI(qtW1y^I3(C{U$F|ChrDX>G5Ds&_;k$lwF`c3at<70ef
z`Y?d&8m4fA1qq}f>tPA!M!OcV7c&A8yQD0?(lCdc1gaUba@X*UYDYD<mL{AJjip{>
z1;lwJz#R?qO6<5w>%JxHKI?N3_cYw!?60u7u0NkEsV2y)jRyk5Nn&;$ma12>oQ(sW
zVg07~$P#C5*Sb@$7A-%ov=>NZJ=1UshHtCq#$r@fY^I-n%W3zMphgAbYzr*;pvI$p
zzwS!AY8C9jrr$}|^{6Quj&6^J6<MltD(Xx1nk_kajGC=qw-!C$nl{V|9qp2IIJ@OQ
z3E~cJ)VQ;aX|OYF+}lR2k;9=bQ5v9UmH)6yf{W>N^E^DH@*7ca7}6*jfi>;>p3j;z
zUttEDaLsCPs=n8ss#u4^lP!a>^jOoo0=VOaj%U2OTVmv#SNBb8##ZIp7w)vimCELv
zI#d|uP>b-J)Wd(ySl&g{ybrIObiBs+<3|bt1>Whr3bm4Y1@V$M5j^C-+6K+O=D)V_
z0v7NMpMXc)jfBQe5DoW|sYL8GcKnUlD*982f$)A{6@#faIJl7d9sRFxcooAf{|Q=x
zb5Fw=>?6b}q}yU88?nCSJBsA73X3PrxIZzzO7a+85A!#;hT|&AYb41a)^O(GZ|KdQ
zUc>p9H1DGhht+rqQ#(L6z&KYkT%X|16%6qkev~surMs7|hluwbz7LZ-)_^g%7enN6
z40;rsWJN9lCSCS~ipY=`m{2$h<Tb{kf8x?Y&l~6quW&iHjtnK<3O*Qu59}8Iu49tB
zojT3o2yRlXTg1$^=`_(mE0IA}Lhs<Rnu@(>C^oLtN=&a~HUgq0Zmr|?7M!~+9iwZ=
zZP9UrMY_<`aVYGh2h^*85kjTe7#9dM#x}V`kWDSe+O!<ss%7vFEf<?w{?gDg-<7#v
zA%0L{l~Q+w_wq0Ri%g@8i>TllY~--irgHuRDwmtYKT~COZe~A7EZ(Ji6Y|&2HrRk%
bCgd|Du|l1nV+KFALC(GxQZO-fwC(=^NGFYZ

literal 0
HcmV?d00001

diff --git a/target/test-classes/com/flickfinder/controller/PersonControllerTest.class b/target/test-classes/com/flickfinder/controller/PersonControllerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..c95cc34a7f4f2cfe0833b4cbda7fda208a83e538
GIT binary patch
literal 2758
zcma)8TUQfT7~LmCgJCQh3y2rw;w1^yLB&>$Qn}YQ2$~3`R@=!ikbz+)ojLLH*8YJ$
z^{IcL&#qNa>S|Y?`+NG_)qN%*Hw9g@GM97a>~DX2f8Uw>^WPtT0k{n(jtJUfh-x^1
zg91m^ji-k0819-rUs$(HDRA(X?b>oope>nNjG<lNwCQc?tB!4MtlI91<?Abkr!QE3
z;JH)d^Krz{5rd}TFg_AE=J{*-re|*0($nWESAnP+5jdC3)&ovDMi69D4I>o_nL{{&
zqcJ2j9K*)~dTV&obEWS&4w+O~Ox6bSR=^Yvm3GMqoXNH>Z(^T`p<AHG_H;$ev0c3=
zWl2|v)^n+t9M{l`6O_Z0&jot3d%Q}ZQv$=S!S>-A$4T@lAI=C2Cf`FdwWzoZXc)v0
zZL1_$&s*T)TLAln&ZyYuG@Qo;0d38a<Bqdnc_qgZIF;Np#nhrQJEb9wVHV0$%ePlw
z2%K+pwd&zJY>gv^iz?<NfwPTEa?-cmwcSc6OWV=2b|9(fh(K3ZFu@Owp1Yr&er{SN
zX?t!QI<9EAs%p5i#N{$44Ra&!8>Xc=UeoX?K4aZID_X9=&BkywhK-dP$a0}T7W%xq
z=JA@VK9j@^7InR9^F`l#W)vKT(b3j{Teuy=n1;`BhiQEXB<oX>RR|<7mVDIE0X1~0
z@gZ254s>Bc!z89?NFWVa4wQv=Q+t}&jv0Z7y`olrq2VsRR1IUu;)3BDn=NiOTNCaR
z)uDD|1;k|~z&#D~O6<5w>wzW9KK(g~`x+jo`Z~<|s`Tl^i@PhT3i4{^p}>IR+1fFi
z-iqZ^8#~jEB}TbQBPTgbud}vm-79YvEI+SI5J+S_({L6I-&W7n!Kf_S)Zy}5;QRE1
z+Bz}<2LekzEV0oalwE0WT8nmI6L{QpJ*vynBko}6&3c*pq`qD**^)bvQL^<3Yt{3u
zX~QfM=!hiXY*T9q^6ja(-CEFGa5yaCIiplf;?y2dszfg;{IFhvYa=7I&RC)cm8esO
zGzvywP5Zv*)1BHY%wU(?ocGkWlq~|6_Qg~0v;bbHFBlyet)VLd_q>YXGhW#xbUf#k
zebbt;m0`V=sruff^0}lM4E@~VBK%IZ@ytD!cM<go2(R4tc#ZML4;KW!=AF)~P$TJA
z5HEQX!7|Tk8ie|WXRY!A9^qR)0gpKw2^T*>G@MJO6S3Dg^fzK#=u9WN!uzf*^rYY5
z<Z}9VbiTsrE%ev%6I==O5c@cfUR)s6daPtM))T&?n0%+g;`>_M9~oaIIYj7w{(81?
zRz-P@Bsqv}e6sW#+OxykxcrjKI|zPSZ8c$PCkO-dakQV~L!24l(;$ztA%$*2_mQ4~
zLYUl8m5j+%F+?86phvOGY=wh>MaZ^L5gGCY#uObz<TXa4f8zRb+Z*W1uW&QBgG>ZV
z&BS{`;$26@zdIP`Y^zR5oI#3Tj5Pm#3^(XBR;9K|4$29=h1Xh5v0tl--B4;JrgtzK
z0jVXv+QD2CorSuN(QV|KbR574KNq_?_Jx(Cqno1xxWe-_&R)eRkL&z&C_9ywqYYZ#
zXx1`#hnB^fmOodu%<sv$Q&D`c!YZY`74Bv;05?fB!vt>O4mHkUtU=}cdsMb-jDKRf
zs&8gn7%$dT?mSpwENUaw`fVclOKTZaNKTOCB$Ak-%F~$PQE!>qeMt(elU4*9{{yE>
BkTU=P

literal 0
HcmV?d00001

diff --git a/target/test-classes/com/flickfinder/dao/MovieDAOTest.class b/target/test-classes/com/flickfinder/dao/MovieDAOTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..1aa7348b90e7b00ba7562bca62bb8cbe6040b8c2
GIT binary patch
literal 2426
zcmaJ@eRtDj9KBCFmePeW${6okhXU({L{U&z7<4aSwPUc3A}V5<W^1-IDM<?ANAUO=
z{MWxZN5<51`~ZFuKZVEpBv}`_!s%)Hy#9Xo-rs$m^q>F!{2Raxw6aJctzbaK0SpR^
zZ0gT+&DNa_ZKb|x8iByzb<44WIf3+4p_V~LV05!lH)j2(wiTGOvn{jbdM{=bWCcze
zZcAIYEn{olavG+mbpp%Qs;0?y76+lqG=~I^O;z?1RRhm*Hj0JXK^(@2f+H$&I4Y3u
z4c5?IZP|ThnTw^BHPe^a{4lh@*-G!?MCPJQeN4p|jtd;xFoOlxamdYb9f9Lhg$N7z
zXnPafa}uW%oK|rLXPKaH{6#&`>$-0W3^8ok@dMp4*t-_<>xo(Dk8(FkQNe`3nchrE
z+F6VvEp<Al;yt`CkZHw&2#oKGp4>@7<G7&WBBlgXqAl5WD5fuv+tnZxtz!8>aR}3x
zQE*Ac2e>RS9G0s)Eim9)KanUsQO@E+e5BxtijVOL%jS9;+GdBI;j>MPc$(g}w36?e
zo|K&VR6Xo0J?-c=y9cJq<w8xtH5wz#BW0`JuPps&m~FWwgU<wxCP(r?({rCYGWD#A
zBCZqBx^CG57y4N%;kL-uRO2e<RNR!NKisAPgKD4~TWg+fm{O^dig_$VN`*4bzbH3I
zZmPV$h%L8a+L1Gh87v8$SZkX3YEysiH+5$#ze@YJLLyn*!50e3D!#;5eU3{a5=+Y>
ztyzIhnMZdE6rRlZz)14TQuMn57n7`Giu*|yYVsu9Q*l3}ZP>1F?pdA^E|3ZJs9279
zx6`Vd-kM&Q`EwQ5(CwP;S+XAw4g^h$)jRi2+sSiUWQlz<c+jR_Iv#73OF)as2%KE)
zIDyqNYnE>@Ny%~CK#vV`uF~IB^X9tinM=CSWR8)5x$eAS?7{GK5adXdv1?#17vyz3
z8t(NQXUE=T{Gz?fTI-2)eINZq5sPySbtrV!vfhq$JM$JYu~fS>60SQC(&%@~C38{2
zSb^@=vhz&0t%h`NCNOnxk!MC=@+|;L>pZNnnAxh^@eK2}CCh&#3>e?Km*o*fo_A1+
zuaFc!yolI>ytVlp<d^Rf2&}TD@mI)^>DLf1*+`+vr<?{a<TXCkXaOFe#vbsHv#D_N
zCI;97F65NT^j|pmXy!GBUSW9pcMNZ1bO$FMa(MjFYvf;HaxeNA0e}}*8kY%E!zrGW
z^SBab8;c^w+0q36H69VcH{2mneam0qyDo-bxn5$JWYWoPoUdeN{y;%s2ik8KuH-)5
z!RHTWwsGTSNF#@1yjcc9lH*Xg@dh%Oqc-!Lxk<{m_(CaBzl9J^o**;G;xWGG{xP<m
z;D<2MWDHSf3@K5xs?L_d5e2CS3a)0mxEmY<%r5R<h&s)Y5cj|~ZdG!Ngn4@h72;lw
za9`@dolf9h=2dZ*xL1jLg~;v^_kH57c5(B4j&*D#aEC(0xZi=Y*+uzttnP$V_elC*
ziBrr(824#ALVsN)DQTcc+s7E9ZX>93<_Sir+$rdsYjiOV(Fzg9(S)`WZ(^+WQPS#S
oyhei3t(nMnD|<eZf1ZFQi(!QcBPVC#;Jc36<Qjo3K2xy&2ep_lzyJUM

literal 0
HcmV?d00001

diff --git a/target/test-classes/com/flickfinder/dao/PersonDAOTest.class b/target/test-classes/com/flickfinder/dao/PersonDAOTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..1ef1fe244dc7007edc5835c6b98ee477499de677
GIT binary patch
literal 2429
zcmaKu`%>FR7{$-p1R0|c;}Fu^xa0yhq;YQ07AG`LAc<R(n~Br(F60G7WXX}_wCN*s
z`V9TIe`h8kw4Lb#^r1RED+yx^VHm_}FW>k3&YoTI?|*;&1K=haX(W);(4*rJdId5Y
z#w(*>8_rtc;mU?I1A*QfmSY9;0?AyymO@HkXrsPj&iOBGE0A+@4cTzL*K-=u0;f#3
zQCPJt^Tn#=)TLKw1(sc?O38K_eb7~!!ve>0m7PS@z_XmSV!qagBgkkN)RDzef${EO
zb;B(@lAiB63#Et4(pPYP7+c^>rF(Wq>Y~bhOvf;e3mjgP!5!CeSe)fL0>^Xt2!;g}
zb_TfS1Wsx=rQ<ZtFu}g@7mUDIF?=b|&#-034-CiT+iYB5SIqqWl-p5?8b<fYw5#qk
zMvzoWoz-y;=LPzj+mZ;3?uox^Eo&OVgpNt%1atzIZ2OUPn>LBF+cJc@RV+U!_G1du
z8ZPSi7?%VF!YykL3-tKbFI-7ql+(D3D;loqxQ6QjW3IPW*l5u=d^TwluV6H-Ldo}~
zr&RZu-Uwe7U$zXJuZMEwa=xZvmgWfaDCMe;D~msyvZ<D&@TtJj&YrPg-E)6(RO&e$
zMcg3Ks$tmz6Z_e#!*P+dsm2WEb$qUjf22th2GzhYUo3luDV0(s9k+2Oa!lmA+po)Y
z8Z%ekyO9mIF74Q!#S|8)*Ai7QoUyx}lnsNN_i$fBS;rUnQs8vApE?5wXxyC#MuYMW
zZEs9?D&xbVie6G;KM<JgtTrxfZ?XBBIs}h&JPyk>ZP%AOZl`p2SO9gXSdM(qYOF|a
z*;omUQE^Sft{I-C-s8@mVBO-bojcfX>Wmh-x4sOXHffZW$IZ!hu*KB~oOsf50;?fw
zmTxgj$#LAkh@En_vcH>d%T?Eti-x(*9GQT*?(K4PZ!@-bCd$}$E~g8YdOYgxHX28V
zcbELSxn1_<u1Gib)Ze*_#d*d$9C~WWXvWH&{y;UcR)cXJoql5>>e3S!IXIob$vvyf
z&MU*V>dLmMKpNfxPYfOW0f^Enk7}%Fy6Uz(Q{J^g6GS}my?aTWP>k^sO7JU^;16#i
zwxBL<K70Ag&j|#cuvOq+p?ap?L%d-lfhwPB7&wMyKJ{n<o}$J#;2B2~;o=SSumwzH
zwaV1r=zBi>9{ukyF!dG#n;6={N6*+j^87u<-eG(v`Y-{2Q%LgmK7uni$@6>xqhYq;
zC}Nx~N%*huoCIHUg`)a~e}Qk?48L=}Vi;%A@l9N)q^AEwUSJD_KQK_qezJwno=tD!
z=9{pLEQ^{UwkmQ28lUHpV)88V9GT!(Xp&Gl>NgeQj1e-0G`_?4TtCd#5BM>RG#(=w
zjG-ioX05PgvPVPWsfL+!o4d|VK(@JmBXyEJA@`w8+^S?3h<SGl6>={{+!wpJlO5cb
zd1G85_YAqOlI$9}uakSW&CO3bR<YK>9SRk5A3(X@ru;QlcT}l6IGItLVme~nqiu%%
znqg5p+TKJz=8@q|eUvx(5N>g+OVoX#&Dc*XM2tfn+K%pKtnQ<v)n=S!fy%9^$aW8R
fe5U??0`7A&%3;FD$*DN_wxc#UN8kmY3E2MwTPQ9Q

literal 0
HcmV?d00001

diff --git a/target/test-classes/com/flickfinder/model/MovieTest.class b/target/test-classes/com/flickfinder/model/MovieTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..0b30031df684b32ede5b10c97254b33013c04479
GIT binary patch
literal 1270
zcmaJ=TTc@~6#k~PY$*%K0wVW|RN4wG;sv!_3IvlTMH8q^h)+X1l)-ivw^QP?|HwoO
z(ZnC%ix2!C<C$*LmVjiFnKPI3UCx>P{rAT&0PEN`5MY?fyJh>hB=aASrBe`|U3Lqi
zWbe7>Qe;I%83;1mJLTuxE^()5zdJe=dBqSa>l+LcnL7ZI44rGzk!pjXBNopw1a}BN
zf(~?>Fc4<w%ScDOt(K33m*qz#LbNh&o|kgmlX~6Q45|}ZVVJp#P0J<5P(`TsXAC3z
zRY%FP$jOQ%pe@I76<5-A2xm6qdPV!RO44XNlZuS<Gih&&W7iYAJb#ijFvu`=hq*BB
zGeoi{VtS7&PkxSI01vdQ5r*MdI@7Az0UbNVWICSf0%4j6p_7WLNN>H)JD%W56d1<;
zBdhLA<4>8G#teBZ3YDe=Dr!1{hlm=OW0=0()K;Y;yt;7{k1)?*^7_v1rz$T|F+#C4
zNz?Fg6A3(K2oro(D&392Sp23FO}VJSmKf$^ZRh^$NZ#D>@s~|J(ee$#KNQ?+FT#OP
z)P;(c@yx_?yzo1zT?S*MFN~KA1FdpT?~9Vl3!<PiUYkf_jf7M08^VX$bu~KRtJpBH
zso@Q}?5l_zxK%GN-bn4ZxB2#$bPF*<J?o%9h9RIEM^TVsdb~7t(aNTo(Hu%#Ao7)h
z08AP?>zh63q1f~<pcj3#BG;50K!4+wMY9G<HFB)PPYfIet)YJ7&jp6RW3+`Dp*&!e
za>v?`ttRsLHROo~@(0S&5~IPyH;mRWd5KwT$d6-}SRf*QVbej2%p#}2EV`-P!<eHl
z+C~~}lCIoJ`lUgd($JwAp6c0Jt>Kjp`i-j^)<ZsRUC*i?`+BbY#dSTCRCQp1*cPb(
bOH=}z-rzD;=v8gf*eZ3ZsVzkr0c`yPvlI<0

literal 0
HcmV?d00001

diff --git a/target/test-classes/com/flickfinder/model/PersonTest.class b/target/test-classes/com/flickfinder/model/PersonTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..2987ad1b835a894def0547a95485e33382a1073c
GIT binary patch
literal 1286
zcmaJ=ZBx@g5Pq(Nrj#IU01-qeP$aEN072A3vAoT6rUQ<}&gi#Lj&j&0HBJ5OUvfqZ
zqci>hf0W~1l7TA7hg|mdcAw|j+uL8izyAcVfxS2)=ux3)=tYzvab|t8%(`XQ%!8vd
zUiBEF>%taZo}tIcR8+(mCaO-uJgJN7hZA8RbJuJ*$GmR7=5EWeV~A5|p)O+37?kD3
z#nm`e+>r!>42DrGU2&8>SJ<`Obx)?!ha_|rLmGxL!jQU+^N_cs(55edVX|~va8Ak@
z)o>4E481k(6_5SeigDb>go+0mCNV{fj$1R&+EhEOP2o|UR#TXTR*SoyaO@U?X8D`l
zk8P_?+g_ts%v2=&w1yeXGN=T<Z#6i>u#vf5rDU9wbPpNkjjr?H?z`_L^aSvRhKz)d
z68z4=mSlXS;W3_&hE`CJVvv*=O!AaHOSm#-Ny9Rpk}8S`RE>0#hRu*^t3l`1WY(I7
z=Q1lwSwu!B+thA`!IH4~e!FqR-9ziBP9DAFRIPf&a)sQ7PQ^PFbT>1%_Cz)?7l?n`
zWEgwXwms3{710ueRIqKwv%)){Dc#(cEq>y-eAlX;5>V13z~DV@yWH|PwRqw`i6M7a
zN|}4qZ4w<XJ8ieh_k^r&Fu;@H3-SdcMK3f$Q^aVcH%gX5AB_=tUXW$dpGi;l9PA4j
z5xk^T9s>i&(W(UjSf^2xKzTZi_{p1LTr&Fu>N`d6)BDdc@C}J8AUV2#js%9fz>*=@
zCY?#DS3Ypz68Jr3Ndajk`xS`}?p|PA?+fhI1=4zdV9%3%#ijeTjiR5%W)x$X#dsHI
z`XA0MpL6??^K;0Vm(bA;vhuGlbg<|fD;+$G2CTlCg~0aJtOWMoY9{Gfg2pC>De6Ir
Zv`k};CT@vzZ6MvHEPtc29m<Yi_YY#K4t)Rs

literal 0
HcmV?d00001

diff --git a/target/test-classes/com/flickfinder/util/Seeder.class b/target/test-classes/com/flickfinder/util/Seeder.class
new file mode 100644
index 0000000000000000000000000000000000000000..6fc9f56119152ea86f144f5e5d38cdb9285b449f
GIT binary patch
literal 4690
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
Oihpvb;&+{Wz4u?KbCq!b

literal 0
HcmV?d00001

-- 
GitLab