示例#1
0
        // 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();
        }
示例#2
0
        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);
        }