Beispiel #1
0
        public async Task TestCreateAsyncWhitValidsMoviesAndReturnsSuccess()
        {
            // Arrange
            var model    = new CreateTournamentViewModelBuilder().Build();
            var expected = new Response <string>(true, "Successfully created tournament", "12345");

            string contentMovies = File.ReadAllText($"DataTests{Path.DirectorySeparatorChar}Movies.json");
            var    movies        = JsonConvert.DeserializeObject <IEnumerable <MovieViewModel> >(contentMovies);
            var    responseMovie = new Response <IEnumerable <MovieViewModel> >(true, It.IsAny <string>(), movies);

            _movieServiceMock.Setup(x => x.GetMoviesAsync())
            .Returns(Task.FromResult(responseMovie));

            _repositoryMock.Setup(x => x.InsertOneAsync(It.IsAny <Tournament>()))
            .Returns(Task.CompletedTask);

            string contentStanding = File.ReadAllText($"DataTests{Path.DirectorySeparatorChar}StandingViewModel.json");
            var    standing        = JsonConvert.DeserializeObject <StandingViewModel>(contentStanding);

            _standingServiceMock.Setup(x => x.CreateAsync(It.IsAny <Tournament>()))
            .Returns(Task.FromResult(standing));

            var service = new TournamentService(_movieServiceMock.Object, _standingServiceMock.Object, _repositoryMock.Object, _mapperMock.Object);
            // Act
            var result = await service.CreateAsync(model);

            // Assert
            _movieServiceMock.Verify(x => x.GetMoviesAsync(), Times.Once);
            _repositoryMock.Verify(x => x.InsertOneAsync(It.IsAny <Tournament>()), Times.Once);
            _standingServiceMock.Verify(x => x.CreateAsync(It.IsAny <Tournament>()), Times.Once);
            result.Should().BeEquivalentTo(expected);
        }
Beispiel #2
0
        public async Task TestCreateAsyncWhitInvalidsMoviesAndReturnsUnsuccess()
        {
            // Arrange
            var model = new CreateTournamentViewModelBuilder()
                        .WhitMoviesIds(new List <string>()
            {
                "1", "2", "3", "4", "5", "6", "7", "8"
            })
                        .Build();
            var expected = new Response <string>(false, "Error creating the tournament. Invalid movies Ids.");

            string content       = File.ReadAllText($"DataTests{Path.DirectorySeparatorChar}Movies.json");
            var    data          = JsonConvert.DeserializeObject <IEnumerable <MovieViewModel> >(content);
            var    responseMovie = new Response <IEnumerable <MovieViewModel> >(true, It.IsAny <string>(), data);

            _movieServiceMock.Setup(x => x.GetMoviesAsync())
            .Returns(Task.FromResult(responseMovie));

            var service = new TournamentService(_movieServiceMock.Object, _standingServiceMock.Object, _repositoryMock.Object, _mapperMock.Object);
            // Act
            var result = await service.CreateAsync(model);

            // Assert
            _movieServiceMock.Verify(x => x.GetMoviesAsync(), Times.Once);
            result.Should().BeEquivalentTo(expected);
        }
        public async Task TestCreateTournamentWhitValidsMoviesAndReturnsCreated()
        {
            // Arrange
            var model    = new CreateTournamentViewModelBuilder().Build();
            var expected = new Response <string>(true, "Successfully created tournament", "12345");

            _tournamentServiceMock.Setup(x => x.CreateAsync(model))
            .Returns(Task.FromResult(expected));

            var controller = new TournamentsController(_tournamentServiceMock.Object);
            // Act
            var actionResult = await controller.PostAsync(model);

            //Assert
            var createdRequestResult = Assert.IsType <CreatedResult>(actionResult.Result);

            createdRequestResult.StatusCode.Should().Be((int)HttpStatusCode.Created);
            var result = Assert.IsType <Response <string> >(createdRequestResult.Value);

            result.Should().BeEquivalentTo(expected);
        }
        public async Task TestCreateTournamentWhitUnavailableServiceMoviesAndReturnsBadRequest()
        {
            // Arrange
            var model    = new CreateTournamentViewModelBuilder().Build();
            var expected = new Response <string>(false, "Error connecting to the movie service");

            _tournamentServiceMock.Setup(x => x.CreateAsync(model))
            .Returns(Task.FromResult(expected));

            var controller = new TournamentsController(_tournamentServiceMock.Object);
            // Act
            var actionResult = await controller.PostAsync(model);

            //Assert
            var badRequestResult = Assert.IsType <BadRequestObjectResult>(actionResult.Result);

            badRequestResult.StatusCode.Should().Be((int)HttpStatusCode.BadRequest);
            var result = Assert.IsType <Response <string> >(badRequestResult.Value);

            result.Should().BeEquivalentTo(expected);
        }