public void WhenTheRequestIsMade_ThenCustomersAreReturnedFromTheRepository()
        {
            var fixture = new Fixture();

            fixture.Behaviors.Remove(new ThrowingRecursionBehavior());
            fixture.Behaviors.Add(new OmitOnRecursionBehavior());

            var dummyCustomerEntities = fixture.CreateMany <CustomerEntity>().ToList();
            var options = new DbContextOptionsBuilder <TddContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var stubContext = new TddContext(options.Options);

            stubContext.Customers.AddRange(dummyCustomerEntities);
            stubContext.SaveChanges();

            var dummyApiCustomers = fixture.CreateMany <Customer>().ToList();
            var stubMapper        = new Mock <IMapper>();

            stubMapper
            .Setup(m =>
                   m.Map <IList <Customer> >(It.IsAny <IEnumerable <CustomerEntity> >()))
            .Returns(dummyApiCustomers);

            var sut = new EfCustomersHandler(stubContext, stubMapper.Object);

            var result = sut.GetAll();

            result.Should().BeEquivalentTo(dummyApiCustomers);
        }
Пример #2
0
 public EfCustomersHandler(TddContext dbContext, IMapper mapper)
 {
     _dbContext = dbContext
                  ?? throw new ArgumentNullException(nameof(dbContext));
     _mapper = mapper
               ?? throw new ArgumentNullException(nameof(mapper));
 }
Пример #3
0
        public void CreateTestDatabase()
        {
            _scope = WebApplicationFactory.Server.Host.Services.CreateScope();
            var scopedServices = _scope.ServiceProvider;

            _dbContext = scopedServices.GetRequiredService <TddContext>();
        }