コード例 #1
0
        public void TestRemoveAllCompletedOrders()
        {
            // Act
            _mockOrderRepository.Setup(x => x.RemoveCompletedOrders()).Returns("Completed Orders Cleared");
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputRemoveAllCompletedOrdersAsProviderResponseWrapper = orderProvider.RemoveCompletedOrders();

            // Assert
            Assert.AreEqual("Completed Orders Cleared", outputRemoveAllCompletedOrdersAsProviderResponseWrapper.ResponseMessage);
        }
コード例 #2
0
        public JsonResult CreateJsonResultResponse(ProviderResponseWrapper providerResponse)
        {
            JsonResult jsonResult = new JsonResult(providerResponse.ResponseMessage)
            {
                ContentType = "application/json",
                StatusCode  = (int)providerResponse.ResponseHTMLType
            };

            return(jsonResult);
        }
コード例 #3
0
        // Build exception messages
        public ProviderResponseWrapper PRWBuilder(string json, HTTPResponseCodes httpResponse)
        {
            ProviderResponseWrapper response = new ProviderResponseWrapper
            {
                ResponseMessage  = json,
                ResponseHTMLType = httpResponse
            };

            return(response);
        }
コード例 #4
0
        public void TestGetOrdersReturnsNullOrders()
        {
            // Act
            _mockOrderRepository.Setup(x => x.GetLateOrders()).Returns(CreateOrderDTOList(0));
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputGetOrdersAsProviderResponseWrapper = orderProvider.GetLateOrders();

            // Assert
            Assert.AreEqual("No late orders", outputGetOrdersAsProviderResponseWrapper.ResponseMessage);
        }
コード例 #5
0
        public void TestGetOrdersReturnsOneLateOrder()
        {
            // Act
            _mockOrderRepository.Setup(x => x.GetLateOrders()).Returns(CreateOrderDTOList(1));
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputGetOrdersAsProviderResponseWrapper = orderProvider.GetLateOrders();
            List <OrderDTO>         outputOrderList = JsonConvert.DeserializeObject <List <OrderDTO> >(outputGetOrdersAsProviderResponseWrapper.ResponseMessage);

            // Assert
            Assert.AreEqual(1, outputOrderList.Count);
            Assert.AreEqual("Test0", outputOrderList[0].Id);
        }
コード例 #6
0
        public void TestCreateNullOrder()
        {
            // Arrange
            Order newNullTestOrder = null;

            // Act
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputCreateOrderDocumentsAsProviderResponseWrapper = orderProvider.CreateOrderDocument(newNullTestOrder);

            // Assert
            Assert.AreEqual("The form has not been fully complete, please send a completed form.", outputCreateOrderDocumentsAsProviderResponseWrapper.ResponseMessage);
        }
コード例 #7
0
        public void TestCreateInvalidOrder()
        {
            // Arrange
            string nullCustomerFirst   = null;
            Order  newInvalidTestOrder = CreateTestOrder(nullCustomerFirst);

            // Act
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputCreateOrderDocumentsAsProviderResponseWrapper = orderProvider.CreateOrderDocument(newInvalidTestOrder);

            // Assert
            Assert.AreEqual("Some fields are completed incorrect. Please re-enter values again.", outputCreateOrderDocumentsAsProviderResponseWrapper.ResponseMessage);
        }
コード例 #8
0
        public async Task TestCompleteOrderNullOrderID()
        {
            // Arrange
            string orderDTOjson = null;

            // Act
            OrdersProvider          ordersProvider             = new OrdersProvider(null, null);
            ProviderResponseWrapper outputGetNullResponseAsPRW = await
                                                                 ordersProvider.BoxOrderCreateAsync(orderDTOjson);

            // Asserts
            Assert.AreEqual("Please enter a Order ID.", outputGetNullResponseAsPRW.ResponseMessage);
            Assert.AreEqual(HTTPResponseCodes.HTTP_BAD_REQUEST, outputGetNullResponseAsPRW.ResponseHTMLType);
        }
コード例 #9
0
        public void TestCreateValidOrder()
        {
            // Arrange
            string validCustomerFirst = "test";
            Order  newValidTestOrder  = CreateTestOrder(validCustomerFirst);

            // Act
            _mockOrderRepository.Setup(x => x.CreateOrderDocument(It.IsAny <OrderDTO>())).Returns("New item Inserted");
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputCreateOrderDocumentsAsProviderResponseWrapper = orderProvider.CreateOrderDocument(newValidTestOrder);

            // Assert
            Assert.AreEqual("New item Inserted", outputCreateOrderDocumentsAsProviderResponseWrapper.ResponseMessage);
        }
コード例 #10
0
        public async Task TestCompletedOrderInvalidOrderID()
        {
            // Arrange
            string orderDTOjson = "60242a787f13737283ef0bce";

            // Act
            OrdersProvider          ordersProvider             = new OrdersProvider(null, null);
            ProviderResponseWrapper outputGetNullResponseAsPRW = await
                                                                 ordersProvider.BoxOrderCreateAsync(orderDTOjson);

            // Asserts
            Assert.AreEqual("No Order ID document could be found.", outputGetNullResponseAsPRW.ResponseMessage);
            Assert.AreEqual(HTTPResponseCodes.HTTP_NOT_FOUND, outputGetNullResponseAsPRW.ResponseHTMLType);
        }
コード例 #11
0
        public async Task TestRemoveOrderNullID()
        {
            // Arrange
            string nullOrderID = null;

            // Act
            OrdersProvider          ordersProvider = new OrdersProvider(_mockOrdersRepository.Object, _mockHttpClient.Object);
            ProviderResponseWrapper outputGetRemovedItemMessageAsPRW = await
                                                                       ordersProvider.RemoveOrder(nullOrderID);

            // Asserts
            Assert.AreEqual("No order exists, null given", outputGetRemovedItemMessageAsPRW.ResponseMessage);
            Assert.AreEqual(HTTPResponseCodes.HTTP_NOT_FOUND, outputGetRemovedItemMessageAsPRW.ResponseHTMLType);
        }
コード例 #12
0
        public async Task TestRemoveOrderInvalidID()
        {
            // Arrange
            string invalidOrderID = "invalid";

            // Act
            OrdersProvider          ordersProvider = new OrdersProvider(_mockOrdersRepository.Object, _mockHttpClient.Object);
            ProviderResponseWrapper outputGetRemovedItemMessageAsPRW = await
                                                                       ordersProvider.RemoveOrder(invalidOrderID);

            // Asserts
            Assert.AreEqual("No record matches given ID", outputGetRemovedItemMessageAsPRW.ResponseMessage);
            Assert.AreEqual(HTTPResponseCodes.HTTP_NOT_FOUND, outputGetRemovedItemMessageAsPRW.ResponseHTMLType);
        }
コード例 #13
0
        public void TestGetOrdersReturnsOneThousandLateOrders()
        {
            // Act
            _mockOrderRepository.Setup(x => x.GetLateOrders()).Returns(CreateOrderDTOList(1000));
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputGetOrdersAsProviderResponseWrapper = orderProvider.GetLateOrders();
            List <OrderDTO>         outputOrderList = JsonConvert.DeserializeObject <List <OrderDTO> >(outputGetOrdersAsProviderResponseWrapper.ResponseMessage);

            // Assert
            Assert.AreEqual(1000, outputOrderList.Count);
            for (int i = 0; i < outputOrderList.Count; i++)
            {
                Assert.AreEqual("Test" + i.ToString(), outputOrderList[i].Id);
            }
        }
コード例 #14
0
 public JsonResult GetOrder(string orderID)
 {
     try
     {
         ProviderResponseWrapper providerResponse = _ordersProvider.GetOrder(orderID);
         return(apiJsonResponse.CreateJsonResultResponse(providerResponse));
     }
     catch (Exception ex)
     {
         ProviderResponseWrapper apiUnavaliableResponse = new ProviderResponseWrapper
         {
             ResponseMessage  = ex.ToString(),
             ResponseHTMLType = HTTPResponseCodes.HTTP_SERVER_FAILURE_RESPONSE
         };
         return(apiJsonResponse.CreateJsonResultResponse(apiUnavaliableResponse));
     }
 }
コード例 #15
0
        public void ModifyOrderStatusSuccess()
        {
            // Arrange

            string validOrderID = "5c979251a7d6851258d7b574";
            string statusType   = "Completed";

            // Act

            _mockOrderRepository.Setup(x => x.ModifyOrderStatus(It.IsAny <string>(), It.IsAny <string>())).Returns("Stock status has been adjusted.");
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputModifyOrderStatusAsPRW = orderProvider.ModifyOrderStatus(validOrderID, statusType);

            // Assert

            Assert.AreEqual(outputModifyOrderStatusAsPRW.ResponseMessage, "Stock status has been adjusted.");
            Assert.AreEqual(outputModifyOrderStatusAsPRW.ResponseHTMLType, HTTPResponseCodes.HTTP_OK_RESPONSE);
        }
コード例 #16
0
        public void ModifyOrderStatusNullOrderId()
        {
            // Arrange

            string validOrderID = "";
            string statusType   = "";

            // Act

            _mockOrderRepository.Setup(x => x.ModifyOrderStatus(It.IsAny <string>(), It.IsAny <string>())).Throws(new NullReferenceException());
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputModifyOrderStatusAsPRW = orderProvider.ModifyOrderStatus(validOrderID, statusType);

            // Assert

            Assert.AreEqual(outputModifyOrderStatusAsPRW.ResponseMessage, "No Order ID was given, please enter an Order ID");
            Assert.AreEqual(HTTPResponseCodes.HTTP_BAD_REQUEST, outputModifyOrderStatusAsPRW.ResponseHTMLType);
        }
コード例 #17
0
 public JsonResult GetLateOrders()
 {
     try
     {
         ProviderResponseWrapper providerResponse = _ordersProvider.GetLateOrders();
         return(apiJsonResponse.CreateJsonResultResponse(providerResponse));
     }
     // If error with upper API level
     catch (Exception ex)
     {
         ProviderResponseWrapper apiUnavaliableResponse = new ProviderResponseWrapper
         {
             ResponseMessage  = ex.ToString(),
             ResponseHTMLType = HTTPResponseCodes.HTTP_SERVER_FAILURE_RESPONSE
         };
         return(apiJsonResponse.CreateJsonResultResponse(apiUnavaliableResponse));
     }
 }
コード例 #18
0
        public void ModifyOrderStatusInvalidOrderID()
        {
            // Arrange

            string invalidOrderID = "Invalid Test ID";
            string statusType     = "Completed";

            // Act

            _mockOrderRepository.Setup(x => x.ModifyOrderStatus(It.IsAny <string>(), It.IsAny <string>())).Throws(new FormatException());
            OrdersProvider          orderProvider = new OrdersProvider(_mockOrderRepository.Object, null);
            ProviderResponseWrapper outputModifyOrderStatusAsPRW = orderProvider.ModifyOrderStatus(invalidOrderID, statusType);

            // Assert

            Assert.AreEqual("Order ID does not exist", outputModifyOrderStatusAsPRW.ResponseMessage);
            Assert.AreEqual(HTTPResponseCodes.HTTP_BAD_REQUEST, outputModifyOrderStatusAsPRW.ResponseHTMLType);
        }
コード例 #19
0
        public async Task <JsonResult> AssignOrderItems(string orderID)
        {
            try
            {
                ProviderResponseWrapper jsonOrder = _ordersProvider.GetOrder(orderID);
                //  GET response from StockAPI with OrderFullfillment Stock
                if ((int)jsonOrder.ResponseHTMLType == 200)
                {
                    ProviderResponseWrapper response = await _ordersProvider.BoxOrderCreateAsync(orderID);

                    string jsonBoxOrderCreate = response.ResponseMessage;

                    // Okay response from BoxOrderCreateAsync
                    if ((int)response.ResponseHTMLType == 200)
                    {
                        // Save items to the order document
                        ProviderResponseWrapper providerResponseAsProviderResponseWrapper =
                            _ordersProvider.AssignOrderItems(orderID, jsonOrder.ResponseMessage, jsonBoxOrderCreate);
                        return(apiJsonResponse.CreateJsonResultResponse(providerResponseAsProviderResponseWrapper));
                    }
                    else
                    {
                        return(apiJsonResponse.CreateJsonResultResponse(response));
                    }
                }
                // Error Response
                else
                {
                    return(apiJsonResponse.CreateJsonResultResponse(jsonOrder));
                }
            }
            // API error
            catch (Exception ex)
            {
                ProviderResponseWrapper apiUnavaliableResponse = new ProviderResponseWrapper
                {
                    ResponseMessage  = ex.ToString(),
                    ResponseHTMLType = HTTPResponseCodes.HTTP_SERVER_FAILURE_RESPONSE
                };
                return(apiJsonResponse.CreateJsonResultResponse(apiUnavaliableResponse));
            }
        }
コード例 #20
0
        public async Task TestGetCompletedListOfItemsForOrder()
        {
            // Arrange
            string      orderDTOjson = JsonConvert.SerializeObject(CreateOrderDTO());
            HttpContent content      = new StringContent(orderDTOjson);

            _mockHttpClient.Setup(x => x.GetAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(new HttpResponseMessage {
                Content = content, StatusCode = HttpStatusCode.OK
            }));

            _mockOrdersRepository.Setup(x => x.GetOrder(It.IsAny <string>())).Returns(CreateOrderDTO());

            // Act
            OrdersProvider          ordersProvider = new OrdersProvider(_mockOrdersRepository.Object, _mockHttpClient.Object);
            ProviderResponseWrapper outputGetCompletedListOfItemsForOrderAsPRW = await
                                                                                 ordersProvider.BoxOrderCreateAsync(orderDTOjson);

            // Asserts
            Assert.AreEqual(outputGetCompletedListOfItemsForOrderAsPRW.ResponseMessage, orderDTOjson);
            Assert.AreEqual(HTTPResponseCodes.HTTP_OK_RESPONSE, outputGetCompletedListOfItemsForOrderAsPRW.ResponseHTMLType);
        }
コード例 #21
0
        public async Task TestRemoveOrderValidID()
        {
            // Arrange
            string      orderDTOjson = JsonConvert.SerializeObject(CreateBoxItems());
            HttpContent content      = new StringContent(orderDTOjson);
            string      validOrderID = "5c8818b2f81e697d3c82d90e";

            _mockHttpClient.Setup(x => x.GetAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(new HttpResponseMessage {
                Content = content, StatusCode = HttpStatusCode.OK
            }));

            _mockOrdersRepository.Setup(x => x.RemoveOrder(It.IsAny <string>())).Returns(CreateOrder());

            // Act
            OrdersProvider          ordersProvider = new OrdersProvider(_mockOrdersRepository.Object, _mockHttpClient.Object);
            ProviderResponseWrapper outputGetRemovedItemMessageAsPRW = await
                                                                       ordersProvider.RemoveOrder(validOrderID);

            // Asserts
            Assert.AreEqual("Record has been successfully removed", outputGetRemovedItemMessageAsPRW.ResponseMessage);
            Assert.AreEqual(HTTPResponseCodes.HTTP_OK_RESPONSE, outputGetRemovedItemMessageAsPRW.ResponseHTMLType);
        }