コード例 #1
0
        private static CellarController InitializeController(FakePersistenceContext persistenceContext, int pageSize = 5)
        {
            persistenceContext.AddSet(TestData.Users);
            persistenceContext.AddSet(TestData.Beers);

            var sessionContext = new FakeSessionContext(TestData.Users.First());

            CellarController controller = new CellarController(persistenceContext, sessionContext, pageSize);
            controller.ControllerContext = new FakeControllerContext();

            return controller;
        }
コード例 #2
0
        public void POST_Edit_ShouldReturnNotFoundIfBeerDoesNotExists()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var model = new EditBeerViewModel();

            // Act
            var result = controller.Edit(model);

            // Assert
            result.ShouldBeType<HttpNotFoundResult>();
            persistenceContext.Saved.ShouldBeFalse();
        }
コード例 #3
0
        public void POST_Edit_ShouldSaveBeerChanges()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var model = new EditBeerViewModel { ID = 1, Name = "beer 100", Quantity = 12 };

            // Act
            var result = controller.Edit(model) as ViewResult;

            // Assert
            persistenceContext.Saved.ShouldBeTrue();
        }
コード例 #4
0
        public void POST_Edit_ShouldNotSaveBeerChangesIfModelIsNotValid()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var model = new EditBeerViewModel();

            controller.ModelState.AddModelError("", "");

            // Act
            var result = controller.Edit(model) as ViewResult;

            // Assert
            result.ShouldNotBeNull();
            persistenceContext.Saved.ShouldBeFalse();
        }
コード例 #5
0
        public void POST_Drink_ShouldNotDecreaseQuantityIfStocksAreAlreadyEmpty()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var beer = TestData.Beers.First();
            var model = new DrinkBeerViewModel { ID = beer.ID };

            beer.Quantity = 0;

            // Act
            var result = controller.Drink(model) as ViewResult;

            // Assert
            persistenceContext.Saved.ShouldBeTrue();
            beer.Quantity.ShouldEqual(0);
        }
コード例 #6
0
        public void POST_Drink_ShouldDecreaseQuantityByOneAndSaveChanges()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var beer = TestData.Beers.First();
            var model = new DrinkBeerViewModel { ID = beer.ID };
            var qtyBefore = beer.Quantity;

            // Act
            var result = controller.Drink(model) as ViewResult;

            // Assert
            persistenceContext.Saved.ShouldBeTrue();
            beer.Quantity.ShouldEqual(qtyBefore - 1);
        }
コード例 #7
0
        public void Post_Delete_ShouldDeleteBeer()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var model = new DeleteBeerViewModel { ID = TestData.Beers.First().ID };

            // Act
            var result = controller.Delete(model) as ViewResult;

            // Assert
            persistenceContext.Saved.ShouldBeTrue();
            persistenceContext.Removed.Count.ShouldEqual(1);
        }
コード例 #8
0
        public void POST_Create_ShouldAddNewBeer()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var model = new CreateBeerViewModel();

            // Act
            var result = controller.Create(model) as ViewResult;

            // Assert
            persistenceContext.Saved.ShouldBeTrue();
            persistenceContext.Added.Count.ShouldEqual(1);
        }