public async Task GetMovies_Should_Call_FindAllMovies()
        {
            // Arrange
            var mockRepository = new Mock<IMoviesRepository>();
            mockRepository.Setup(x => x.FindAllMovies()).ReturnsAsync(new List<Movie>());

            var controller = new MoviesController(mockRepository.Object)
            {
                Request = new HttpRequestMessage(),
                Configuration = new HttpConfiguration()
            };

            // Act
            await controller.GetMovies();

            // Assert
            mockRepository.Verify(x => x.FindAllMovies());
        }
        public async Task GetMovies_Should_Return_200_Status()
        {
            // Arrange
            var mockRepository = new Mock<IMoviesRepository>();
            mockRepository.Setup(x => x.FindAllMovies())
                .ReturnsAsync(Movies);

            var controller = new MoviesController(mockRepository.Object)
            {
                Request = new HttpRequestMessage(),
                Configuration = new HttpConfiguration()
            };

            // Act
            var results = await controller.GetMovies();

            // Assert
            Assert.AreEqual(results.StatusCode, HttpStatusCode.OK);
        }
        public async Task GetMovies_Should_Return_500_Status_TimeoutException()
        {
            // Arrange
            var mockRepository = new Mock<IMoviesRepository>();
            mockRepository.Setup(x => x.FindAllMovies())
                .Throws(new TimeoutException());

            var controller = new MoviesController(mockRepository.Object)
            {
                Request = new HttpRequestMessage(),
                Configuration = new HttpConfiguration()
            };

            // Act
            var results = await controller.GetMovies();

            // Assert
            Assert.AreEqual(results.StatusCode, HttpStatusCode.InternalServerError);
        }