Write test cases which test the following actions/checks:
- check GET
- check POST
- check DELETE
- check authentication
- check query parameters: mandatory, optional
- check schema
- Given the API key is set for all requests
- Given the {movie_id} is added to the GET request
- When the "GET movie by id" request is sent
- Then the response should contain status code 200
- Given the {movie_id} is added to the GET request
- When the "GET movie by id" request is sent
- Then the response should contain the proper movie title
- And the response should have proper schema
- Give the {movie_id} is added to the POST request
- And the {"value": 8.0} is added to the POST request's body
- When the "POST movie rating" request is sent
- Then the response should contain status code 201
- Give the {movie_id} is added to the POST request
- And the {"value": 8.0} is added to the POST request's body
- When the "POST movie rating" request is sent
- Then the response should contain the "Success." status message
- Give the {movie_id} is added to the POST request
- And the {"value": 10.1} is added to the POST request's body
- When the "POST movie rating" request is sent
- Then the response should contain the proper status message
- Given the {movie_id} is added to the DELETE request
- When the "DELETE movie rating by id" request is sent
- Then the response should contain status code 200
- Given the {movie_id} is added to the DELETE request
- When the "DELETE movie rating by id" request is sent
- Then the response should contain the "The item/record was deleted successfully." status message
- Given the {movie_id} is not added to the GET request
- When the "GET movie by id" request is sent
- Then the response should contain status code 404