// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { string connection = Configuration.GetConnectionString("DefaultConnection"); services.AddDbContext <ApplicationContext>(options => options.UseSqlServer(connection)); var optionsBuilder = new DbContextOptionsBuilder <ApplicationContext>(); var options = optionsBuilder .UseSqlServer(connection) .Options; var db = new ApplicationContext(options); ClientService clientService = new ClientService(db); BonusCardService cardService = new BonusCardService(db); services.AddSingleton <ICreateClient>(provider => clientService); services.AddSingleton <IRemoveClient>(provider => clientService); services.AddSingleton <IEditClient>(provider => clientService); services.AddSingleton <IPersist>(provider => clientService); services.AddSingleton <IGetClients>(provider => clientService); services.AddSingleton <IGetClient>(provider => clientService); services.AddSingleton <ISearchClient>(provider => clientService); services.AddSingleton <ICreateBonusCard>(provider => cardService); services.AddSingleton <IDebit>(provider => cardService); services.AddSingleton <ICredit>(provider => cardService); services.AddSingleton <IGetBonusCard>(provider => cardService); services.AddControllersWithViews(); }
public BonusCardServiceTests() { var mockBonusCardRepository = new Mock <IRepository <BonusCard, int> >(); var mockCustomerRepository = new Mock <IRepository <Customer, int> >(); var mockUnitOfWork = new Mock <IUnitOfWork>(); fakeCustomers = new List <Customer>() { new Customer { Id = 1, FullName = "Etiam sapien enim", PhoneNumber = "8805553535" }, new Customer { Id = 2, FullName = "Molestie eget risus", PhoneNumber = "8805553534" }, new Customer { Id = 3, FullName = "Non dignissim tristique", PhoneNumber = "8805553533" } }; fakeBonusCards = new List <BonusCard>() { new BonusCard { Id = 1, Balance = 50, Number = 1, ExpirationUTCDate = DateTime.Now, Customer = fakeCustomers[0] }, new BonusCard { Id = 2, Balance = 0, Number = 2, ExpirationUTCDate = DateTime.Now.AddDays(1), Customer = fakeCustomers[1] }, new BonusCard { Id = 3, Balance = -10, Number = 3, ExpirationUTCDate = DateTime.Now.AddDays(-1), Customer = fakeCustomers[2] } }; fakeCustomers[2].BonusCard = fakeBonusCards[2]; mockBonusCardRepository.Setup(m => m.GetAll()) .Returns(fakeBonusCards.AsQueryable); mockBonusCardRepository.Setup(m => m.Get(It.IsAny <int>())) .Returns <int>(id => fakeBonusCards.FirstOrDefault(t => t.Id == id)); mockBonusCardRepository.Setup(r => r.Create(It.IsAny <BonusCard>())) .Callback <BonusCard>(t => fakeBonusCards.Add(t)); mockBonusCardRepository.Setup(r => r.Update(It.IsAny <BonusCard>())) .Callback <BonusCard>(t => fakeBonusCards.Insert(fakeBonusCards.IndexOf(fakeBonusCards.Where(i => i.Id == t.Id).First()), t)); mockCustomerRepository.Setup(m => m.GetAll()) .Returns(fakeCustomers.AsQueryable); mockCustomerRepository.Setup(m => m.Get(It.IsAny <int>())) .Returns <int>(id => fakeCustomers.FirstOrDefault(t => t.Id == id)); mockUnitOfWork.Setup(m => m.BonusCards) .Returns(mockBonusCardRepository.Object); mockUnitOfWork.Setup(m => m.Customers) .Returns(mockCustomerRepository.Object); bonusCardService = new BonusCardService(mockUnitOfWork.Object); }