예제 #1
0
        public void Post()
        {
            // Arrange
            var mockRepository = new Mock <IProductRepository>();
            var controller     = new Products2Controller(mockRepository.Object);

            // Act
            IHttpActionResult actionResult = controller.Delete(10);

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(OkResult));


            var book = new Book()
            {
                Code        = "AAA-9999",
                Title       = "Stars Wars",
                ReleaseDate = "12/13/2016",
                Price       = 99.9
            };

            _booksProvider.Setup(x => x.SaveBook(book));

            booksController.Post(book);
        }
        public void DeleteReturnsOk()
        {
            // Arrange
            var mockRepository = new Mock <IProductRepository>();
            var controller     = new Products2Controller(mockRepository.Object);

            // Act
            IHttpActionResult actionResult = controller.Delete(10);

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(OkResult));
        }
        public void GetReturnsNotFound()
        {
            // Arrange
            var mockRepository = new Mock <IProductRepository>();
            var controller     = new Products2Controller(mockRepository.Object);

            // Act
            IHttpActionResult actionResult = controller.Get(10);

            // Assert
            Assert.IsInstanceOfType(actionResult, typeof(NotFoundResult));
        }
        public void PostMethodSetsLocationHeader()
        {
            // Arrange
            var mockRepository = new Mock <IProductRepository>();
            var controller     = new Products2Controller(mockRepository.Object);

            // Act
            IHttpActionResult actionResult = controller.Post(new Product {
                Id = 10, Name = "Product1"
            });
            var createdResult = actionResult as CreatedAtRouteNegotiatedContentResult <Product>;

            // Assert
            Assert.IsNotNull(createdResult);
            Assert.AreEqual("DefaultApi", createdResult.RouteName);
            Assert.AreEqual(10, createdResult.RouteValues["id"]);
        }
        public void PutReturnsContentResult()
        {
            // Arrange
            var mockRepository = new Mock <IProductRepository>();
            var controller     = new Products2Controller(mockRepository.Object);

            // Act
            IHttpActionResult actionResult = controller.Put(new Product {
                Id = 10, Name = "Product"
            });
            var contentResult = actionResult as NegotiatedContentResult <Product>;

            // Assert
            Assert.IsNotNull(contentResult);
            Assert.AreEqual(HttpStatusCode.Accepted, contentResult.StatusCode);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(10, contentResult.Content.Id);
        }
        public void GetReturnsNotFound()
        {
            // arrange
            var item = this.GetDemoProduct();

            var mockDbSet = Substitute.For<DbSet<Product>>();
            var mockDbContext = Substitute.For<StoreAppTestControllerContext>();
            mockDbContext.Products = mockDbSet;
            mockDbContext.Products.Find(item.Id).Returns(item);

            var controller = new Products2Controller(mockDbContext);

            // act
            IHttpActionResult actionResult = controller.Get(10);

            // assert
            Assert.IsType(typeof(NotFoundResult), actionResult);
        }
        public void DeleteReturnsOk()
        {
            // arrange
            var item = this.GetDemoProduct();

            var mockDbSet = Substitute.For<DbSet<Product>>();
            var mockDbContext = Substitute.For<StoreAppTestControllerContext>();
            mockDbContext.Products = mockDbSet;
            mockDbContext.Products.Find(item.Id).Returns(item);
            mockDbContext.Products.Remove(item).Returns(item);

            var controller = new Products2Controller(mockDbContext);

            // act
            var actionResult = controller.Delete(1);

            // assert
            Assert.IsType(typeof(OkResult), actionResult);
        }
        public void GetReturnsProductWithSameId()
        {
            // Arrange
            var mockRepository = new Mock <IProductRepository>();

            mockRepository.Setup(x => x.GetById(42))
            .Returns(new Product {
                Id = 42
            });

            var controller = new Products2Controller(mockRepository.Object);

            // Act
            IHttpActionResult actionResult = controller.Get(42);
            var contentResult = actionResult as OkNegotiatedContentResult <Product>;

            // Assert
            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(42, contentResult.Content.Id);
        }
        public void GetReturnsProductWithSameId()
        {
            // arrange
            var item = this.GetDemoProduct();

            var mockDbSet = Substitute.For<DbSet<Product>>();
            var mockDbContext = Substitute.For<StoreAppTestControllerContext>();
            mockDbContext.Products = mockDbSet;
            mockDbContext.Products.Find(item.Id).Returns(item);

            var controller = new Products2Controller(mockDbContext);

            // act
            IHttpActionResult actionResult = controller.Get(1);
            var contentResult = actionResult as OkNegotiatedContentResult<Product>;

            // assert
            Assert.NotNull(contentResult);
            Assert.NotNull(contentResult.Content);
            Assert.Equal(1, contentResult.Content.Id);
        }
        public void PostMethodSetsLocationHeader()
        {
            // arrange
            var item = this.GetDemoProduct();

            var mockDbSet = Substitute.For<DbSet<Product>>();
            var mockDbContext = Substitute.For<StoreAppTestControllerContext>();
            mockDbContext.Products = mockDbSet;
            mockDbContext.Products.Add(item).Returns(item);

            var controller = new Products2Controller(mockDbContext);

            // act
            var actionResult = controller.Post(item);
            var createResult = actionResult as CreatedAtRouteNegotiatedContentResult<Product>;

            // assert
            Assert.NotNull(createResult);
            Assert.Equal("DefaultApi", createResult.RouteName);
            Assert.Equal(1, createResult.RouteValues["id"]);
        }
        public void PutReturnsContentResult()
        {
            // arrange
            var item = this.GetDemoProduct();

            var mockDbSet = Substitute.For<DbSet<Product>>();
            var mockDbContext = Substitute.For<StoreAppTestControllerContext>();
            mockDbContext.Products = mockDbSet;

            var controller = new Products2Controller(mockDbContext);

            // act
            var contentResult = controller.Put(item) as NegotiatedContentResult<Product>;

            // assert
            Assert.NotNull(contentResult);
            Assert.Equal(HttpStatusCode.Accepted, contentResult.StatusCode);
            Assert.NotNull(contentResult.Content);
            Assert.Equal(1, contentResult.Content.Id);
        }