예제 #1
0
        public async Task CreateAsyncWithCorrectDataShouldReturnCorrectResult()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;
            var dbContext             = new ApplicationDbContext(options);
            var genresRepository      = new EfDeletableEntityRepository <Genre>(dbContext);
            var groupGenresRepository = new EfRepository <GroupGenre>(dbContext);
            var genresService         = new GenresService(groupGenresRepository, genresRepository);

            var actual = await genresService.CreateAsync("Power metal");

            var expected = 1;

            Assert.Equal(expected, actual);
        }
예제 #2
0
        public async Task CreateAsyncWithDublicateNameShouldThrowArgumentException()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;
            var dbContext             = new ApplicationDbContext(options);
            var genresRepository      = new EfDeletableEntityRepository <Genre>(dbContext);
            var groupGenresRepository = new EfRepository <GroupGenre>(dbContext);
            var genresService         = new GenresService(groupGenresRepository, genresRepository);

            await genresRepository.AddAsync(new Genre
            {
                Name = "Power metal",
            });

            await genresRepository.SaveChangesAsync();

            await Assert.ThrowsAsync <ArgumentException>(async() =>
            {
                await genresService.CreateAsync("Power metal");
            });
        }