Exemplo n.º 1
0
        public async Task ChangeStateAsyncTest()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;
            var dbContext = new ApplicationDbContext(options);

            dbContext.Orders.Add(new Order
            {
                Id        = "First order",
                UserId    = "Test",
                ProductId = 1,
                State     = DeliveryState.Ordered,
            });
            await dbContext.SaveChangesAsync();

            var repository = new EfDeletableEntityRepository <Order>(dbContext);
            var service    = new OrdersService(repository);

            var newState = new EditStateViewModel
            {
                Id       = "First order",
                NewState = (int)DeliveryState.OnRoute,
            };
            await service.ChangeStateAsync(newState);

            var order = repository.All()
                        .Where(a => a.Id == "First order")
                        .FirstOrDefault();

            Assert.Equal(DeliveryState.OnRoute, order.State);
        }
Exemplo n.º 2
0
        public async Task ChangeStateAsyncDeletesOrdersTest()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;
            var dbContext = new ApplicationDbContext(options);

            dbContext.Orders.Add(new Order
            {
                Id        = "First order",
                UserId    = "Test",
                ProductId = 1,
                State     = DeliveryState.OnTheAdress,
            });
            await dbContext.SaveChangesAsync();

            var repository = new EfDeletableEntityRepository <Order>(dbContext);
            var service    = new OrdersService(repository);

            var newState = new EditStateViewModel
            {
                Id       = "First order",
                NewState = (int)DeliveryState.Received,
            };
            await service.ChangeStateAsync(newState);

            var orderIsGetsDeleted = repository.All().Any(a => a.Id == "First order");
            var orderIsStillInDb   = repository.AllWithDeleted().Any(a => a.Id == "First order");

            Assert.True(orderIsStillInDb);
            Assert.False(orderIsGetsDeleted);
        }
Exemplo n.º 3
0
        public async Task ChangeStateAsync(EditStateViewModel model)
        {
            var order = this.repository.All()
                        .Where(a => a.Id == model.Id)
                        .FirstOrDefault();

            order.State = (DeliveryState)model.NewState;
            if ((DeliveryState)model.NewState == DeliveryState.Received)
            {
                this.repository.Delete(order);
            }

            await this.repository.SaveChangesAsync();
        }