diff --git a/README.md b/README.md index 2051d356f449f6117bdae0360d22ae6c28bcda2a..3c0f2e18890bbff51129d291b3ceb817ce476355 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 + -- [ ] [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. -*** + -# 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. + -## 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. + -## 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 0000000000000000000000000000000000000000..8e36542c5f48d76ae699e5a0346d8e69df988970 --- /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 0000000000000000000000000000000000000000..49f0fc85c67a387b562170e6d365b1e0a99fcfcd --- /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 0000000000000000000000000000000000000000..9fb2e0f3c0873224cf7ffa7f4610bb3fcb3fd0ea --- /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 0000000000000000000000000000000000000000..91d6895b0ea9c392340d725386b0b13e96d1c6c9 --- /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 0000000000000000000000000000000000000000..8c1037700b5bbbd5c46652ad3c6098400db05613 --- /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 0000000000000000000000000000000000000000..53b2f9b3a6ca25ed7f58ba37710d40cf89bb043a --- /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 0000000000000000000000000000000000000000..7a3ef7e4bf1fb3120528713253da44b370b25625 --- /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 0000000000000000000000000000000000000000..58d4fcdac6271c08ec05769f7f188711748b2b77 --- /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 0000000000000000000000000000000000000000..a2f96449875f35435479b0a6450c351d73a2ecc4 --- /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 0000000000000000000000000000000000000000..20322679bcb0d41d93afa22938890ecb67b54147 --- /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 0000000000000000000000000000000000000000..e7a6e35d5a41c780d5ffe28be7c81372e59fe55c --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/main/resources/public/index.html b/src/main/resources/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..c968e8abd02305c4cf5d13231339bcc44d97f581 --- /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 0000000000000000000000000000000000000000..b123f06e1698b3b80d1dd0186fb0c8b2c06b7495 --- /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 0000000000000000000000000000000000000000..cef1d9bc049f7c3f4c84a3ef6adff04dccb9dbd8 --- /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 0000000000000000000000000000000000000000..23ac57e0559fa29d634946ed4a7feb66cc4255d0 --- /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 0000000000000000000000000000000000000000..d4e72d64590e81ff12b432685d9d39fc14bbf339 --- /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 0000000000000000000000000000000000000000..578e514d0bbcef756a4f6fed62dcbf6372c5799b --- /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 0000000000000000000000000000000000000000..6ae72b83f8218801d541a0f576f5132c38f9b230 --- /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 0000000000000000000000000000000000000000..15b9d2b910bef6f0d29b13ab999a63bf3045fafe --- /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 0000000000000000000000000000000000000000..6925d4907c527947aec8c9dfa95b3ea866b433c2 --- /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 Binary files /dev/null and b/target/COM1028-ad02184-1.0-SNAPSHOT.jar differ diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..9bdf3b1f360838ed2fb5b967e741c8fa187252b9 --- /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 0000000000000000000000000000000000000000..f4ff6dc18f971d61fa1dd72b32eae8cedb2c12b4 --- /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 0000000000000000000000000000000000000000..8e36542c5f48d76ae699e5a0346d8e69df988970 --- /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 Binary files /dev/null and b/target/classes/com/flickfinder/AppConfig.class differ diff --git a/target/classes/com/flickfinder/Main.class b/target/classes/com/flickfinder/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..14b3f0597eb1fbee5641b3751b6fdf5780b7b296 Binary files /dev/null and b/target/classes/com/flickfinder/Main.class differ 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 Binary files /dev/null and b/target/classes/com/flickfinder/controller/MovieController.class differ 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 Binary files /dev/null and b/target/classes/com/flickfinder/controller/PersonController.class differ 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 Binary files /dev/null and b/target/classes/com/flickfinder/dao/MovieDAO.class differ 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 Binary files /dev/null and b/target/classes/com/flickfinder/dao/PersonDAO.class differ 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 Binary files /dev/null and b/target/classes/com/flickfinder/model/Movie.class differ 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 Binary files /dev/null and b/target/classes/com/flickfinder/model/MovieRating.class differ 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 Binary files /dev/null and b/target/classes/com/flickfinder/model/Person.class differ 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 Binary files /dev/null and b/target/classes/com/flickfinder/util/Database.class differ diff --git a/target/classes/movies.db b/target/classes/movies.db new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/target/classes/public/index.html b/target/classes/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..c968e8abd02305c4cf5d13231339bcc44d97f581 --- /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 0000000000000000000000000000000000000000..8c94b29dff1dffea2545335e9793350c86c79f7e --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 0000000000000000000000000000000000000000..4a3a9192270b014eb8e6518b85e91b950e273bcb --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 0000000000000000000000000000000000000000..1b118a52dd3fae6dd9e1921a6019ae3f40c9187e --- /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 0000000000000000000000000000000000000000..41be9f7f48506a63c3b38402e5d0cb54aa19c5ec --- /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=" "/> + <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 0000000000000000000000000000000000000000..04aba631d5c8d9aff39bae265b63f03fae40e2f6 --- /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=" "/> + <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 0000000000000000000000000000000000000000..0c05d9fa191d99bb12576c55dba90709d0169f5e --- /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=" "/> + <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 0000000000000000000000000000000000000000..d69f8e8ed2fe4e19585f56eb171f60248a8aa15f --- /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=" "/> + <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 0000000000000000000000000000000000000000..0b74eb7ce7f8890a9805127d6722c220090d3349 --- /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=" "/> + <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 0000000000000000000000000000000000000000..31e6e755387a34536412275fd5ef65a9de9b56c6 --- /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=" "/> + <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 0000000000000000000000000000000000000000..59e74e21a4232f6e99ff85c5fba788870b1e5f75 --- /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=" "/> + <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 0000000000000000000000000000000000000000..498085bc71e526bf05583cb9a419afa35b6faf2d --- /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 0000000000000000000000000000000000000000..ab585f8fc2f7ad62dc128734313d4212e8d98f03 --- /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 0000000000000000000000000000000000000000..20df994e833e5fc940ea5193117e10ae684e02b3 --- /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 0000000000000000000000000000000000000000..ae4e31b101dc21882b20bddca9cd614ea3fd891b --- /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 0000000000000000000000000000000000000000..37cd96a78316d801bdda019410783a2d3db8dc05 --- /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 0000000000000000000000000000000000000000..6a9495223b7ebba2135087971c15fe207ff79054 --- /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 0000000000000000000000000000000000000000..17fcf8dbe2dd092ae9204025054105b621decda2 --- /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 Binary files /dev/null and b/target/test-classes/com/flickfinder/IntegrationTests.class differ 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 Binary files /dev/null and b/target/test-classes/com/flickfinder/controller/MovieControllerTest.class differ 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 Binary files /dev/null and b/target/test-classes/com/flickfinder/controller/PersonControllerTest.class differ 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 Binary files /dev/null and b/target/test-classes/com/flickfinder/dao/MovieDAOTest.class differ 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 Binary files /dev/null and b/target/test-classes/com/flickfinder/dao/PersonDAOTest.class differ 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 Binary files /dev/null and b/target/test-classes/com/flickfinder/model/MovieTest.class differ 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 Binary files /dev/null and b/target/test-classes/com/flickfinder/model/PersonTest.class differ 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 Binary files /dev/null and b/target/test-classes/com/flickfinder/util/Seeder.class differ