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 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 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);
        }