コード例 #1
0
        public async Task DeleteAsyncShouldWorkCorrectlyUsingMoq()
        {
            var repository = new Mock <IDeletableEntityRepository <Address> >();

            var addressesList = new List <Address>
            {
                new Address {
                    Id = "TestId1", CreatedOn = DateTime.UtcNow, Street = "Test Street 1"
                },
                new Address {
                    Id = "TestId2", CreatedOn = DateTime.UtcNow, Street = "Test Street 2"
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(addressesList.AsQueryable());
            repository.Setup(r => r.Delete(It.IsAny <Address>())).Callback((Address item) => addressesList.Remove(item));
            repository.Setup(r => r.SaveChangesAsync()).Verifiable();

            var service = new AddressesService(repository.Object, null);

            Assert.True(await service.DeleteAsync("TestId1"));
            Assert.Single(addressesList);

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
            repository.Verify(x => x.Delete(It.IsAny <Address>()), Times.Once);
            repository.Verify(x => x.SaveChangesAsync());
        }
コード例 #2
0
        public async Task DeleteAsyncShouldReturnFalseWhenIdIsInvalidUsingMoq()
        {
            var repository = new Mock <IDeletableEntityRepository <Address> >();

            var addressesList = new List <Address>
            {
                new Address {
                    Id = "TestId1", CreatedOn = DateTime.UtcNow, Street = "Test Street 1",
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(addressesList.AsQueryable());

            var service = new AddressesService(repository.Object, null);

            Assert.False(await service.DeleteAsync("TestId"));

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
        }
コード例 #3
0
        public async Task DeleteWorksCorrectly()
        {
            var options = new DbContextOptionsBuilder<ApplicationDbContext>()
                .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;
            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository<Address>(dbContext);

            var address = new Address()
            {
                Id = 1,
            };

            dbContext.Add(address);
            await dbContext.SaveChangesAsync();
            var service = new AddressesService(repository);
            await service.DeleteAsync(1);
            var addressesInDbCount = repository.All().ToList().Count();

            Assert.Equal(0, addressesInDbCount);
        }