コード例 #1
0
        public void EditPhysical_POST_InvalidId_Throws404()
        {
            Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake();
            MockPhysicalGameProducts(dbStub);

            GameProductsController controller = new GameProductsController(dbStub.Object, idGetter: null);

            Assert.That(async () => await controller.EditPhysicalSKU(id: null, gameProduct: null), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404));
        }
コード例 #2
0
        public async void EditPhysical_POST_HasModelErrors_ShowEditPage()
        {
            Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake();
            MockPhysicalGameProducts(dbStub);
            MockPlatforms(dbStub);
            MockCompanies(dbStub);

            GameProductsController controller = new GameProductsController(dbStub.Object, idGetter: null);
            controller.ModelState.AddModelError("Name", "Name is required");

            var result = await controller.EditPhysicalSKU(physicalGameProduct.Id, physicalGameProduct) as ViewResult;

            Assert.That(result != null);
            Assert.That(result.Model, Is.InstanceOf<PhysicalGameProduct>());
            Assert.That(result.Model, Is.EqualTo(physicalGameProduct));
        }
コード例 #3
0
        public async void EditPhysical_GET_ValidId_ReturnsView()
        {
            Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake();
            MockPlatforms(dbStub);
            MockCompanies(dbStub);
            var physicalGameProductsDbStub = MockPhysicalGameProducts(dbStub);
            physicalGameProductsDbStub.Setup(db => db.FindAsync(physicalGameProduct.Id)).ReturnsAsync(physicalGameProduct);

            GameProductsController controller = new GameProductsController(dbStub.Object, idGetter: null);

            var result = await controller.EditPhysicalSKU(physicalGameProduct.Id) as ViewResult;

            Assert.That(result != null);
            Assert.That(result.Model, Is.InstanceOf<PhysicalGameProduct>());
            Assert.That(result.Model, Is.EqualTo(physicalGameProduct));
        }
コード例 #4
0
        public async void EditPhysical_POST_Valid_RedirectsToGameDetails()
        {
            Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake();
            MockPhysicalGameProducts(dbStub)
                .Setup(db => db.FindAsync(physicalGameProduct.Id))
                .ReturnsAsync(physicalGameProduct);

            GameProductsController controller = new GameProductsController(dbStub.Object, idGetter: null);

            var result = await controller.EditPhysicalSKU(physicalGameProduct.Id, physicalGameProduct) as RedirectToRouteResult;

            Assert.That(result != null);
            Assert.That(result.RouteValues["Controller"], Is.EqualTo("Games"));
            Assert.That(result.RouteValues["Action"], Is.EqualTo("Details"));
            Assert.That(result.RouteValues["Id"], Is.EqualTo(physicalGameProduct.GameId));
        }
コード例 #5
0
        public async void EditPhysical_POST_Valid_SaveChangesCalledOnce()
        {
            Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake();
            MockPhysicalGameProducts(dbStub)
                .Setup(db => db.FindAsync(physicalGameProduct.Id))
                .ReturnsAsync(physicalGameProduct);

            dbStub.Setup(db => db.SaveChangesAsync()).ReturnsAsync(1).Verifiable();

            GameProductsController controller = new GameProductsController(dbStub.Object, idGetter: null);

            await controller.EditPhysicalSKU(physicalGameProduct.Id, physicalGameProduct);

            Assert.That(() => dbStub.Verify(db => db.SaveChangesAsync(), Times.Once), Throws.Nothing);
        }