コード例 #1
0
ファイル: ProductTests.cs プロジェクト: tamoj32/product-demo
        private void GetAll_Controller()
        {
            //var controller = _ninjectKernel.Get<Controllers.ProductController>();

            var controller = new Controllers.ProductController(repo);

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            var options = new DbContextOptionsBuilder <ProductContext>()
                          .UseInMemoryDatabase("Product.InMemory")
                          .Options;

            // Run the test against one instance of the context
            using (var context = new ProductContext(options))
            {
                var repo = new ProductRepository(context);
                repo.Add(new Product {
                    Id = "1", Description = "Product 1", Brand = "Brand 1", Model = "Model 1"
                });
            };

            // Act
            var result = controller.Get();

            // Assert
            Assert.AreEqual(result.Count(), 1);
        }
コード例 #2
0
        public void GetProducts_InternalServerError_InternalServerError()
        {
            var mockRepo = new Mock <IProductRepo>();

            mockRepo.Setup(m => m.GetHttpProducts()).Throws(new Exception());
            var service  = new Controllers.ProductController(mockRepo.Object);
            var result   = service.GetProductsAsync().Result;
            var expected = HttpStatusCode.InternalServerError;

            Assert.AreEqual(expected, result.StatusCode);
        }
コード例 #3
0
        public void GetProducts_HttpNoContent_HttpNoContent()
        {
            var mockRepo     = new Mock <IProductRepo>();
            var nullProducts = Task.FromResult(Enumerable.Empty <Dtos.Product>());

            mockRepo.Setup(m => m.GetWcfProducts()).Returns(nullProducts);
            mockRepo.Setup(m => m.GetHttpProducts()).Returns(nullProducts);
            var service = new Controllers.ProductController(mockRepo.Object);
            var result  = service.GetProductsAsync().Result;

            Assert.AreEqual(HttpStatusCode.NoContent, result.StatusCode);
        }
コード例 #4
0
        public void GetProducts_OnlyHttpProducts_HttpProducts()
        {
            var mockRepo = new Mock <IProductRepo>();

            mockRepo.Setup(m => m.GetHttpProducts()).Returns(mockData.HttpData());
            mockRepo.Setup(m => m.GetWcfProducts()).Returns(Task.FromResult(Enumerable.Empty <Dtos.Product>()));
            var service  = new Controllers.ProductController(mockRepo.Object);
            var response = service.GetProductsAsync().Result;
            var result   = response.Content.ReadAsAsync <IEnumerable <Dtos.Product> >().Result;
            var expected = mockData.HttpData().Result;

            expected.ShouldBeEquivalentTo(result, "Expected result not equal to actual result.");
        }
コード例 #5
0
        public void GetProducts_NoErrors_CheapestProducts()
        {
            var mockRepo = new Mock <IProductRepo>();

            mockRepo.Setup(m => m.GetWcfProducts()).Returns(mockData.WcfData);
            mockRepo.Setup(m => m.GetHttpProducts()).Returns(mockData.HttpData);
            var service        = new Controllers.ProductController(mockRepo.Object);
            var resultResponse = service.GetProductsAsync().Result;
            var result         = resultResponse.Content.ReadAsAsync <IEnumerable <Dtos.Product> >().Result;
            var expected       = mockData.TestGetCheapestProductsData().Content.ReadAsAsync <IEnumerable <Dtos.Product> >().Result;

            expected.ShouldBeEquivalentTo(result, "Expected response not the same as actual response.");
        }
コード例 #6
0
        public void GetProducts_WcfTimeoutException_HttpProducts()
        {
            var mockStore = new Mock <BazzasBazaar.IStore>();

            mockStore.Setup(m => m.GetFilteredProducts(null, null, null, null)).Throws(new TimeoutException());
            MockHttpMessageHandler mockHttp     = new MockHttpMessageHandler();
            HttpResponseMessage    fakeResponse = new HttpResponseMessage(HttpStatusCode.OK);

            fakeResponse.Content = new StringContent(JsonConvert.SerializeObject(mockData.HttpData().Result), Encoding.UTF8, "application/json");
            mockHttp.When("http://localhost:24697/api/*").Respond(fakeResponse);
            HttpClient client            = new HttpClient(mockHttp);
            Dictionary <string, Uri> uri = new Dictionary <string, Uri> {
                { "Fake", new Uri("http://localhost:24697/api/Products") }
            };

            var repo     = new Repos.ProductRepo(client, mockStore.Object, uri);
            var service  = new Controllers.ProductController(repo);
            var response = service.GetProductsAsync().Result;
            var results  = response.Content.ReadAsAsync <IEnumerable <Dtos.Product> >().Result;
            var expected = mockData.HttpDataFake().Result;

            expected.ShouldBeEquivalentTo(results, "Expected results not equal to actual results.");
        }
コード例 #7
0
 public ProductController1()
 {
     this.productController =
         new Controllers.ProductController(ObjectFactory.GetInstance <IProductCatalogService>(), ObjectFactory.GetInstance <ICookieStorageService>());
 }
コード例 #8
0
        //myshetlf add to cart receiving an array list
        public HttpResponseMessage Postmyshelf(short days, myshelf[] myshelfarr)
        {
            int    cnt         = 0;
            short  invheaderid = 0;
            double sumamt      = 0;

            if (ModelState.IsValid)
            {
                foreach (myshelf myshelf in myshelfarr)
                {
                    ProductController ProductController = new Controllers.ProductController();
                    product           product           = ProductController.Getproduct(myshelf.product_productid);
                    sumamt = sumamt + product.price;
                }
                foreach (myshelf myshelf in myshelfarr)
                {
                    myshelf.purchasedate = DateTime.Now;


                    if (myshelf.purchasetype.Equals("purchase"))
                    {
                        myshelf.enddate = null;

                        // myshelf.enddate = Convert.ToDateTime(999912312);
                    }
                    else
                    {
                        myshelf.enddate = myshelf.purchasedate.Value.AddDays(days);
                    }


                    ProductController ProductController = new Controllers.ProductController();
                    product           product           = ProductController.Getproduct(myshelf.product_productid);

                    if (cnt == 0)
                    {
                        InvoiceheaderController InvoiceheaderController = new InvoiceheaderController();
                        invoiceheader           invoiceheader           = new Models.invoiceheader();

                        invoiceheader.date                = DateTime.Now;
                        invoiceheader.totalamount         = sumamt;
                        invoiceheader.customer_customerid = myshelf.customer_customerid;

                        invoiceheader = InvoiceheaderController.Postinvoiceheader(invoiceheader, myshelf, product, myshelf.purchasetype, days);
                        myshelf.invoiceheader_invoiceheaderid = invoiceheader.invoiceheaderid;
                        invheaderid = invoiceheader.invoiceheaderid;
                        myshelf.invoiceheader_invoiceheaderid = invoiceheader.invoiceheaderid;

                        cnt++;
                        db.myshelves.Add(myshelf);


                        db.SaveChanges();
                    }
                    else
                    {
                        InvoicedetailController InvoicedetailController = new Controllers.InvoicedetailController();

                        invoicedetail invoicedetail = new invoicedetail();
                        invoicedetail.invoiceheader_invoiceheaderid = invheaderid;
                        invoicedetail.product_productid             = myshelf.product_productid;
                        invoicedetail.amount = product.price;

                        InvoicedetailController.Postinvoicedetail(invoicedetail, myshelf.purchasetype);
                        myshelf.invoiceheader_invoiceheaderid = invheaderid;

                        db.myshelves.Add(myshelf);
                        db.SaveChanges();
                    }
                }

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, myshelfarr);
                return(response);
            }


            else
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
        }