Пример #1
0
        public void ShouldReturnDefaultViewModelWithNoErrorWhenModelIsValid()
        {
            // Arrange
            var success     = new Result(ResultType.Success);
            var genreSvMock = new Mock <IGenreService>();

            genreSvMock.Setup(x => x.AddGenre(It.IsAny <Genres>())).Returns(success);
            var fakeGenre       = new GenreCreateViewModel();
            var sut             = new GenresController(genreSvMock.Object);
            var fakeHttpContext = new Mock <HttpContextBase>();

            sut.ControllerContext = new ControllerContext
            {
                Controller  = sut,
                HttpContext = fakeHttpContext.Object
            };
            var mapper = new AutoMapperConfig();

            mapper.Execute(Assembly.GetExecutingAssembly());
            Mapper.Initialize(cfg =>
                              cfg.CreateMap <GenreCreateViewModel, Genres>());

            // Act & Assert
            sut
            .WithCallTo(c => c.Create(fakeGenre))
            .ShouldRenderDefaultView()
            .WithModel <GenreCreateViewModel>(x => Assert.AreEqual(x.Result.ResulType, ResultType.Success));
        }
Пример #2
0
        public async Task PutGenre_ExistingIdCorrectGenreWithNameChanged_NoContentResult()
        {
            // Arrange
            const int genreId = 3;

            InitializeInmemoryDatabase(out DbContextOptions <GameReviewsContext> options, GetFakeList());

            Genre genreToUpdate = GetFakeList().Where(d => d.ID == genreId).FirstOrDefault(),
            // Should use ICopyable interface here
                  expectedGenre = GetFakeList().Where(d => d.ID == genreId).FirstOrDefault();


            // Act
            using (var context = new GameReviewsContext(options))
            {
                genreToUpdate.Name = "newName";
                expectedGenre.Name = "newName";

                GenresController genresController = new GenresController(context);
                var result = (await genresController.PutGenre(genreId, genreToUpdate));

                Genre actualGenre = await context.Genres.Where(d => d.ID == genreId).FirstOrDefaultAsync();

                // Assert
                Assert.True(AreEqual(expectedGenre, actualGenre));
                Assert.IsType <NoContentResult>(result);
            }
        }
        public async Task DeleteGenreSuccessfully()
        {
            //Preparation
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            context.Genres.Add(new Genre()
            {
                Name = "Genre 1"
            });
            context.SaveChanges();

            var context2 = BuildContext(databaseName);

            //Testing
            var controller = new GenresController(context2, mapper);

            controller.ControllerContext = BuildControllerContextWithDefaultUser();
            var response = await controller.Delete(1);

            //Verification
            var result = response as StatusCodeResult;

            Assert.AreEqual(204, result.StatusCode);

            var context3 = BuildContext(databaseName);
            var isExist  = await context3.Genres.AnyAsync();

            Assert.IsFalse(isExist);
        }
Пример #4
0
        public async Task PostGenre_CorrectGenreWithCorrectValuesAndNonexistingIdSetted_CreatedAtActionResultWithSettedId()
        {
            // Arrange
            const int idToSet = 10;

            InitializeInmemoryDatabase(out DbContextOptions <GameReviewsContext> options, GetFakeList());

            Genre genreToCreate = new Genre()
            {
                Name = "NewDevelope",
                ID   = idToSet
            };

            // Act
            using (var context = new GameReviewsContext(options))
            {
                GenresController genresController = new GenresController(context);
                var result = (await genresController.PostGenre(genreToCreate)).Result;

                // Assert
                Assert.True(context.Genres.Contains(genreToCreate));
                Assert.True(genreToCreate.ID == idToSet);
                Assert.IsType <CreatedAtActionResult>(result);
            }
        }
        public async Task UpdateGenre()
        {
            //Preparation
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            context.Genres.Add(new Genre()
            {
                Name = "Genre 1"
            });
            context.SaveChanges();

            var context2            = BuildContext(databaseName);
            var genreForCreationDto = new GenreForCreationDto()
            {
                Name = "New Genre"
            };

            //Testing
            var id         = 1;
            var controller = new GenresController(context, mapper);
            var response   = await controller.Put(id, genreForCreationDto);

            //Verification
            var result = response as StatusCodeResult;

            Assert.AreEqual(204, result.StatusCode);

            var context3 = BuildContext(databaseName);
            var isExist  = await context3.Genres.AnyAsync(x => x.Name == "New Genre");

            Assert.IsTrue(isExist);
        }
Пример #6
0
        public async Task DeleteGenre()
        {
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            context.Genres.Add(new Genre()
            {
                Name = "Genre 1"
            });
            context.SaveChanges();

            var context2 = BuildContext(databaseName);

            var controller = new GenresController(context2, mapper);

            controller.ControllerContext = BuildControllerContextWithDefaultUser();

            var response = await controller.Delete(1);

            var result = response as StatusCodeResult;

            Assert.AreEqual(204, result.StatusCode);

            var context3 = BuildContext(databaseName);
            var exists   = await context3.Genres.AnyAsync();

            Assert.IsFalse(exists);
        }
        public async Task CreateGenre_ShouldReturn201AndAddEntryInDb()
        {
            // Arrange
            var databaseName = Guid.NewGuid().ToString();

            BuildGenreTestDatabase(databaseName);

            var createDbContext = BuildContext(databaseName);
            var verifyDbContext = BuildContext(databaseName);
            var mapper          = BuildMapper();
            var expectedName    = "Test Genre";
            var expectedCount   = createDbContext.Genres.Count() + 1;

            var createGenreDTO = new CreateGenreDTO()
            {
                Name = expectedName
            };

            var controller = new GenresController(createDbContext, mapper);

            // Act
            var response = await controller.Post(createGenreDTO);

            var result      = response as CreatedAtRouteResult;
            var actualName  = verifyDbContext.Genres.Find(expectedCount).Name;
            var actualCount = verifyDbContext.Genres.Count();

            // Assert
            Assert.AreEqual(StatusCodes.Status201Created, result.StatusCode);
            Assert.AreEqual(expectedName, actualName);
            Assert.AreEqual(expectedCount, actualCount);
        }
Пример #8
0
        public void ShouldReturnInstanceOfGenresController()
        {
            var moqGenresService = new Mock <IGenreService>();
            var sut = new GenresController(moqGenresService.Object);

            Assert.IsInstanceOfType(sut, typeof(GenresController));
        }
        public async Task ReplaceGenre_InvalidId_ShouldReturnNotFound()
        {
            // Arrange
            var databaseName = Guid.NewGuid().ToString();
            var dbContext    = BuildContext(databaseName);
            var mapper       = BuildMapper();

            var testGenresCount = dbContext.Genres.Count();
            var expectedName    = "New Genre Name";

            var createGenreDTO = new CreateGenreDTO()
            {
                Name = expectedName
            };

            var controller = new GenresController(dbContext, mapper);

            // Act
            var response = await controller.Put(testGenresCount + 1, createGenreDTO);

            var result = response as StatusCodeResult;

            // Assert
            Assert.AreEqual(StatusCodes.Status404NotFound, result.StatusCode);
        }
        public async Task GetAllGenres()
        {
            //Preparation
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            context.Genres.Add(new Genre()
            {
                Name = "Genre 1"
            });
            context.Genres.Add(new Genre()
            {
                Name = "Genre 2"
            });
            context.SaveChanges();

            var context2 = BuildContext(databaseName);

            //Testing
            var controller = new GenresController(context2, mapper);
            var response   = await controller.GetGenres();

            //Verification
            var genres = response.Value;

            Assert.AreEqual(2, genres.Count);
        }
        public async Task GetGenreByIdSuccessfully()
        {
            //Preparation
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            context.Genres.Add(new Genre()
            {
                Name = "Genre 1"
            });
            context.Genres.Add(new Genre()
            {
                Name = "Genre 2"
            });
            context.SaveChanges();

            var context2 = BuildContext(databaseName);

            //Testing
            var id         = 1;
            var controller = new GenresController(context2, mapper);
            var response   = await controller.GetGenre(id);

            //Verification
            var result = response.Value;

            Assert.AreEqual(1, result.Id);
        }
Пример #12
0
        public void CreateGenre_Returns_CreatedAtRoute()
        {
            // Arrange
            var genreRepositoryMock = new Mock <IGenreRepository>();
            var genreIMapperMock    = new MapperConfiguration(config =>
            {
                config.AddProfile(new MovieMapper());
            });
            var genreMapper = genreIMapperMock.CreateMapper();
            var logMock     = new Mock <ILogger <GenresController> >();
            ILogger <GenresController> logger = logMock.Object;

            GenresController genreApiController = new
                                                  GenresController(genreRepositoryMock.Object, mapper: genreMapper, logger);
            var genreDto = new GenreDTO()
            {
                Name        = "Comedy",
                DateCreated = DateTime.Parse("15 May 2015"),
                Id          = new Guid()
            };

            genreRepositoryMock.Setup(repo => repo.GenreExist(It.IsAny <string>()))
            .Returns(false);
            genreRepositoryMock.Setup(repo => repo.CreateGenre(It.IsAny <GenreModel>()))
            .Returns(true);

            // Act
            var genreResult          = genreApiController.CreateGenre(genreDto);
            var createdAtRouteResult = genreResult as CreatedAtRouteResult;

            // Assert
            Assert.True(createdAtRouteResult.StatusCode is StatusCodes.Status201Created);
        }
Пример #13
0
        public void GetGenreById_Returns_OkObjectResult()
        {
            // Arrange
            var genreRepositoryMock = new Mock <IGenreRepository>();
            var genreIMapperMock    = new MapperConfiguration(config =>
            {
                config.AddProfile(new MovieMapper());
            });
            var genreMapper = genreIMapperMock.CreateMapper();
            var logMock     = new Mock <ILogger <GenresController> >();
            ILogger <GenresController> logger = logMock.Object;

            GenresController genreApiController = new
                                                  GenresController(genreRepositoryMock.Object, mapper: genreMapper, logger);
            var genreModel = new GenreModel()
            {
                Name        = "Adult Content",
                DateCreated = DateTime.Parse("15 May 2015"),
                Id          = Guid.NewGuid()
            };

            genreRepositoryMock.Setup(repo => repo.GetGenre(It.IsAny <Guid>()))
            .Returns(genreModel);
            // Act
            var genreResult = genreApiController.GetGenreById(It.IsAny <Guid>());
            var okResult    = genreResult as OkObjectResult;

            // Assert
            Assert.True(okResult.StatusCode is StatusCodes.Status200OK);
        }
Пример #14
0
        public void DeleteGenre_Returns_NoContent()
        {
            // Arrange
            var genreRepositoryMock = new Mock <IGenreRepository>();
            var genreIMapperMock    = new MapperConfiguration(config =>
            {
                config.AddProfile(new MovieMapper());
            });
            var genreMapper = genreIMapperMock.CreateMapper();
            var logMock     = new Mock <ILogger <GenresController> >();
            ILogger <GenresController> logger = logMock.Object;

            GenresController genreApiController = new
                                                  GenresController(genreRepositoryMock.Object, mapper: genreMapper, logger);
            var genreModel = new GenreModel()
            {
                Name        = "Comedy",
                DateCreated = DateTime.Parse("15 May 2015"),
                Id          = new Guid()
            };

            genreRepositoryMock.Setup(repo => repo.GenreExist(It.IsAny <Guid>()))
            .Returns(true);
            genreRepositoryMock.Setup(repo => repo.GetGenre(It.IsAny <Guid>()))
            .Returns(genreModel);
            genreRepositoryMock.Setup(repo => repo.DeleteGenre(It.IsAny <GenreModel>()))
            .Returns(true);

            // Act
            var genreResult     = genreApiController.DeleteGenre(genreModel.Id);
            var noContentResult = genreResult as NoContentResult;

            // Assert
            Assert.True(noContentResult.StatusCode is StatusCodes.Status204NoContent);
        }
Пример #15
0
        public async Task GetGenreByIdExist()
        {
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            context.Genres.Add(new Genre()
            {
                Name = "Genre 1"
            });
            context.Genres.Add(new Genre()
            {
                Name = "Genre 2"
            });
            context.SaveChanges();

            var context2 = BuildContext(databaseName);

            var controller = new GenresController(context2, mapper);

            var id       = 1;
            var response = await controller.Get(id);

            var result = response.Value;

            Assert.AreEqual(id, result.Id);
        }
        public async Task ReplaceGenre_ValidId_ShouldReplaceGenre()
        {
            // Arrange
            var databaseName = Guid.NewGuid().ToString();

            BuildGenreTestDatabase(databaseName);
            var testDbContext   = BuildContext(databaseName);
            var verifyDbContext = BuildContext(databaseName);

            var mapper = BuildMapper();

            var expectedGenresCount = verifyDbContext.Genres.Count();
            var expectedName        = "New Genre Name";

            var createGenreDTO = new CreateGenreDTO()
            {
                Name = expectedName
            };

            var controller = new GenresController(testDbContext, mapper);

            // Act
            var response = await controller.Put(1, createGenreDTO);

            var result     = response as StatusCodeResult;
            var actualName = verifyDbContext.Genres.Find(1).Name;

            // Assert
            Assert.AreEqual(StatusCodes.Status204NoContent, result.StatusCode);
            Assert.AreEqual(expectedName, actualName);
        }
Пример #17
0
        public async Task UpdateGenre()
        {
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            context.Genres.Add(new Genre()
            {
                Name = "Genre 1"
            });
            context.SaveChanges();

            var context2   = BuildContext(databaseName);
            var controller = new GenresController(context2, mapper);

            var genreCreationDTO = new GenreCreationDTO {
                Name = "New name"
            };

            var id       = 1;
            var response = await controller.Put(id, genreCreationDTO);

            var result = response as StatusCodeResult;

            Assert.AreEqual(204, result.StatusCode);

            var context3 = BuildContext(databaseName);
            var exists   = await context3.Genres.AnyAsync(x => x.Name == "New name");

            Assert.IsTrue(exists);
        }
        public async Task CreateGenre()
        {
            //Preparation
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            var newGenre = new GenreForCreationDto()
            {
                Name = "New Genre"
            };

            //Testing
            var controller = new GenresController(context, mapper);
            var response   = await controller.Post(newGenre);

            //Verification
            var result = response as CreatedAtRouteResult;

            Assert.AreEqual(201, result.StatusCode);

            var context2 = BuildContext(databaseName);
            var count    = await context2.Genres.CountAsync();

            Assert.AreEqual(1, count);
        }
 public GenreControllerTests()
 {
     _mockContext      = new Mock <HorrorContext>();
     _mockRepo         = new Mock <IGenreRepository>();
     _mockMapper       = new Mock <IMapper>();
     _mockUrlHelper    = new Mock <IUrlHelper>();
     _genresController = new GenresController(_mockUrlHelper.Object, _mockRepo.Object, _mockMapper.Object);
 }
Пример #20
0
        public void InitializeGenresControllerCorrectly_WhenDependenciesAreNotNull()
        {
            var mapperMock       = new Mock <IMapper>();
            var genreServiceMock = new Mock <IGenreService>();

            var controller = new GenresController(genreServiceMock.Object, mapperMock.Object);

            Assert.IsNotNull(controller);
        }
Пример #21
0
        public void ShouldRedirect()
        {
            var moqGenresService = new Mock <IGenreService>();
            var sut = new GenresController(moqGenresService.Object);

            sut
            .WithCallTo(c => c.Index())
            .ShouldRedirectTo(x => x.Create);
        }
 public void SetUp()
 {
     _genreService     = new Mock <IGenreService>();
     _gameService      = new Mock <IGameService>();
     _genresController = new GenresController(_genreService.Object, _gameService.Object)
     {
         Request = new HttpRequestMessage()
     };
     _genresController.Request.SetConfiguration(new HttpConfiguration());
 }
Пример #23
0
        public void IndexTest()
        {
            // Arrange
            GenresController controller = new GenresController();

            // Act
            var result = controller.Index();

            // Assert
            Assert.IsNotNull(result);
        }
Пример #24
0
        public void CreateTest1()
        {
            // Arrange
            GenresController controller = new GenresController();

            // Act
            var result = controller.Create();

            // Assert
            Assert.IsNotNull(result);
        }
Пример #25
0
        public void EditTest1()
        {
            // Arrange
            GenresController controller = new GenresController();

            // Act
            var result = controller.Edit(1);

            // Assert
            Assert.IsNotNull(result);
        }
Пример #26
0
        public void DeleteTest()
        {
            // Arrange
            GenresController controller = new GenresController();

            // Act
            var result = controller.Delete(0);

            // Assert
            Assert.IsNotNull(result);
        }
Пример #27
0
        public void ReturnsDefaultView()
        {
            // Arrange
            var genreSvMock = new Mock <IGenreService>();
            var sut         = new GenresController(genreSvMock.Object);

            // Act & Assert
            sut
            .WithCallTo(c => c.Create())
            .ShouldRenderDefaultView();
        }
Пример #28
0
        public string GetSignup()
        {
            var myFan = new Models.FanSignup();

            using (var c = new ArtistListingController())
            {
                c.Gets();
                foreach (var rec in c.Recordset)
                {
                    var n = new Models.FanSignup.EFanToArtist();
                    PopulateDerivedFromBase(rec, n);
                    myFan.FanToArtists.Add(n);
                }
            }

            using (var c = new AssociationsController())
            {
                c.Gets();
                foreach (var rec in c.Recordset)
                {
                    var n = new Models.FanSignup.EFanToAssociation();
                    PopulateDerivedFromBase(rec, n);
                    myFan.FanToAssociations.Add(n);
                }
            }

            using (var c = new RegionsController())
            {
                c.Gets();
                foreach (var rec in c.Recordset)
                {
                    var n = new Models.FanSignup.EFanToRegion();
                    PopulateDerivedFromBase(rec, n);
                    myFan.FanToRegions.Add(n);
                }
            }

            using (var c = new GenresController())
            {
                c.Gets();
                foreach (var rec in c.Recordset)
                {
                    var n = new Models.FanSignup.EFanToGenre();
                    PopulateDerivedFromBase(rec, n);
                    myFan.FanToGenres.Add(n);
                }
            }

            myFan.Fan = new Fan();
            var xx = JsonConvert.SerializeObject(myFan);

            return(xx);
        }
Пример #29
0
        public async void TestDeleteGenreWhenIdIsWrong()
        {
            int id       = -5;
            var mockRepo = new Mock <IGenreRepository>();

            mockRepo.Setup(repo => repo.GetGenre(id)).Returns((GenreDTO)null);

            var controller = new GenresController(mockRepo.Object);

            var result = await controller.DeleteGenre(id);

            Assert.Contains(HttpStatusCode.BadRequest.ToString(), result.Result.ToString());
        }
        public void Initialize()
        {
            // Cria primeiro o gênero de Teste
            var genresController = new GenresController();
            var genre            = new Genre
            {
                ID    = 1,
                Nome  = "Gênero de Teste",
                Ativo = true
            };

            genresController.Post(genre);
        }