public void Remove_Deletes_RentalOrder()
        {
            using (var context = new VivesRentalDbContext())
            {
                //Arrange
                var userRepository        = new UserRepository(context);
                var rentalOrderRepository = new RentalOrderRepository(context);

                var user = UserFactory.CreateValidEntity();
                userRepository.Add(user);
                var rentalOrderToAdd = RentalOrderFactory.CreateValidEntity(user);
                rentalOrderRepository.Add(rentalOrderToAdd);
                var rentalOrderId = rentalOrderToAdd.Id;
                context.SaveChanges();

                //Act
                rentalOrderRepository.Remove(rentalOrderToAdd);
                context.SaveChanges();

                var rentalOrder = rentalOrderRepository.Get(rentalOrderId);

                //Assert
                Assert.IsNull(rentalOrder);
            }
        }
Example #2
0
        public void Get_Returns_RentalOrder_When_Found()
        {
            using (var context = new VivesRentalDbContext())
            {
                //Arrange
                var itemRepository            = new ItemRepository(context);
                var rentalItemRepository      = new RentalItemRepository(context);
                var userRepository            = new UserRepository(context);
                var rentalOrderRepository     = new RentalOrderRepository(context);
                var rentalOrderLineRepository = new RentalOrderLineRepository(context);

                var item = ItemFactory.CreateValidEntity();
                itemRepository.Add(item);
                var rentalItem = RentalItemFactory.CreateValidEntity(item);
                rentalItemRepository.Add(rentalItem);
                var user = UserFactory.CreateValidEntity();
                userRepository.Add(user);
                var rentalOrder = RentalOrderFactory.CreateValidEntity(user);
                rentalOrderRepository.Add(rentalOrder);
                var rentalOrderLineToAdd = RentalOrderLineFactory.CreateValidEntity(rentalOrder, rentalItem);
                rentalOrderLineRepository.Add(rentalOrderLineToAdd);

                context.SaveChanges();

                //Act
                var rentalOrderLine = rentalOrderLineRepository.Get(rentalOrderLineToAdd.Id);

                //Assert
                Assert.IsNotNull(rentalOrderLine);
            }
        }
Example #3
0
        public void Add_Returns_1_When_Adding_Valid_RentalOrder()
        {
            using (var context = new VivesRentalDbContext())
            {
                //Arrange
                var itemRepository            = new ItemRepository(context);
                var rentalItemRepository      = new RentalItemRepository(context);
                var userRepository            = new UserRepository(context);
                var rentalOrderRepository     = new RentalOrderRepository(context);
                var rentalOrderLineRepository = new RentalOrderLineRepository(context);

                //Act
                var item = ItemFactory.CreateValidEntity();
                itemRepository.Add(item);
                var rentalItem = RentalItemFactory.CreateValidEntity(item);
                rentalItemRepository.Add(rentalItem);
                var user = UserFactory.CreateValidEntity();
                userRepository.Add(user);
                var rentalOrder = RentalOrderFactory.CreateValidEntity(user);
                rentalOrderRepository.Add(rentalOrder);
                var rentalOrderLine = RentalOrderLineFactory.CreateValidEntity(rentalOrder, rentalItem);
                rentalOrderLineRepository.Add(rentalOrderLine);

                var result = context.SaveChanges();

                //Assert
                Assert.AreEqual(5, result); //Because we added five entities
            }
        }
Example #4
0
        public void Remove_Throws_Exception_When_Not_Found()
        {
            using (var context = new VivesRentalDbContext())
            {
                //Arrange
                var itemRepository            = new ItemRepository(context);
                var rentalItemRepository      = new RentalItemRepository(context);
                var userRepository            = new UserRepository(context);
                var rentalOrderRepository     = new RentalOrderRepository(context);
                var rentalOrderLineRepository = new RentalOrderLineRepository(context);

                var item = ItemFactory.CreateValidEntity();
                itemRepository.Add(item);
                var rentalItem = RentalItemFactory.CreateValidEntity(item);
                rentalItemRepository.Add(rentalItem);
                var user = UserFactory.CreateValidEntity();
                userRepository.Add(user);
                var rentalOrder = RentalOrderFactory.CreateValidEntity(user);
                rentalOrderRepository.Add(rentalOrder);
                var rentalOrderLineToAdd = RentalOrderLineFactory.CreateValidEntity(rentalOrder, rentalItem);
                rentalOrderLineRepository.Add(rentalOrderLineToAdd);

                context.SaveChanges();

                //Act
                rentalOrderLineRepository.Remove(RentalOrderLineFactory.CreateValidEntity(rentalOrder, rentalItem));
                context.SaveChanges();

                //Assert
            }
        }
Example #5
0
        public void GetAll_Returns_10_RentalOrders()
        {
            using (var context = new VivesRentalDbContext())
            {
                //Arrange
                var itemRepository            = new ItemRepository(context);
                var rentalItemRepository      = new RentalItemRepository(context);
                var userRepository            = new UserRepository(context);
                var rentalOrderRepository     = new RentalOrderRepository(context);
                var rentalOrderLineRepository = new RentalOrderLineRepository(context);

                for (int i = 0; i < 10; i++)
                {
                    var item = ItemFactory.CreateValidEntity();
                    itemRepository.Add(item);
                    var rentalItem = RentalItemFactory.CreateValidEntity(item);
                    rentalItemRepository.Add(rentalItem);
                    var user = UserFactory.CreateValidEntity();
                    userRepository.Add(user);
                    var rentalOrder = RentalOrderFactory.CreateValidEntity(user);
                    rentalOrderRepository.Add(rentalOrder);
                    var rentalOrderLineToAdd = RentalOrderLineFactory.CreateValidEntity(rentalOrder, rentalItem);
                    rentalOrderLineRepository.Add(rentalOrderLineToAdd);
                }
                context.SaveChanges();

                //Act
                var rentalOrderLines = rentalOrderLineRepository.GetAll();

                //Assert
                Assert.AreEqual(10, rentalOrderLines.Count());
            }
        }
Example #6
0
 public UnitOfWork()
 {
     _context         = new VivesRentalDbContext();
     Items            = new ItemRepository(_context);
     RentalItems      = new RentalItemRepository(_context);
     RentalOrders     = new RentalOrderRepository(_context);
     RentalOrderLines = new RentalOrderLineRepository(_context);
     Users            = new UserRepository(_context);
 }
        public void Get_Returns_Null_When_Not_Found()
        {
            using (var context = new VivesRentalDbContext())
            {
                //Arrange
                var rentalOrderRepository = new RentalOrderRepository(context);

                //Act
                var rentalOrder = rentalOrderRepository.Get(1);

                //Assert
                Assert.IsNull(rentalOrder);
            }
        }
        public void Add_Throws_Exception_When_Adding_InValid_RentalOrder()
        {
            using (var context = new VivesRentalDbContext())
            {
                //Arrange
                var rentalOrderRepository = new RentalOrderRepository(context);

                //Act
                var rentalOrder = RentalOrderFactory.CreateInvalidEntity();
                rentalOrderRepository.Add(rentalOrder);

                var result = context.SaveChanges();

                //No Assert
            }
        }
        public UnitOfWork()
        {
            string connectionString = "server=MANNOBC96\\SQLEXPRESS;database=VivesRental;trusted_connection=true;";

            _context = new VivesRentalDbContext(connectionString);

            if (!_context.Database.Exists())
            {
                throw new NoDatabaseConnectionException();
            }

            Items            = new ItemRepository(_context);
            RentalItems      = new RentalItemRepository(_context);
            RentalOrders     = new RentalOrderRepository(_context);
            RentalOrderLines = new RentalOrderLineRepository(_context);
            Users            = new UserRepository(_context);
        }