Example #1
0
            private static Tuple <HttpConfiguration, HttpRequestMessage> GetConfigAndRequestMessage(
                Guid[] shipmentKeys,
                Guid validshipmentKey,
                ShipmentStateRequestModel requestModel)
            {
                var config = IntegrationTestHelper
                             .GetInitialIntegrationTestConfig(GetContainer(shipmentKeys));

                var request = HttpRequestMessageHelper
                              .ConstructRequest(
                    httpMethod: HttpMethod.Post,
                    uri: string.Format(
                        "https://localhost/{0}",
                        string.Format(ApiBaseRequestPathFormat, validshipmentKey)),
                    mediaType: "application/json",
                    username: Constants.ValidEmployeeUserName,
                    password: Constants.ValidEmployeePassword);

                if (requestModel != null)
                {
                    request.Content = new ObjectContent <ShipmentStateRequestModel>(
                        requestModel, new JsonMediaTypeFormatter());
                }

                return(Tuple.Create(config, request));
            }
Example #2
0
            public async Task Returns_400_If_Request_Authorized_But_Invalid()
            {
                // Arrange
                Guid[] shipmentKeys     = IntegrationTestHelper.GetKeys(9);
                var    validshipmentKey = shipmentKeys[1];

                var shipmentStateRequestModel = new ShipmentStateRequestModel {
                    ShipmentStatus = "Done"
                };

                var configAndRequest = GetConfigAndRequestMessage(
                    shipmentKeys, validshipmentKey, shipmentStateRequestModel);

                // Act
                var httpError = await IntegrationTestHelper
                                .GetResponseMessageBodyAsync <HttpError>(
                    configAndRequest.Item1,
                    configAndRequest.Item2,
                    HttpStatusCode.BadRequest);

                var modelState = (HttpError)httpError["ModelState"];
                var shipmentStatusModelError = modelState["requestModel.ShipmentStatus"] as string[];

                // Assert
                Assert.NotNull(shipmentStatusModelError);
            }
Example #3
0
        public HttpResponseMessage PostShipmentState(Guid key, ShipmentStateRequestModel requestModel)
        {
            var createdShipmentState = _shipmentService.AddShipmentState(
                key, RetrieveShipmentStatus(requestModel.ShipmentStatus));

            if (!createdShipmentState.IsSuccess)
            {
                return(new HttpResponseMessage(HttpStatusCode.Conflict));
            }

            var response = Request.CreateResponse(HttpStatusCode.Created,
                                                  createdShipmentState.Entity.ToShipmentStateDto());

            return(response);
        }
Example #4
0
            public async Task Returns_409_If_Request_Authorized_But_Conflicted()
            {
                // Arrange
                Guid[] shipmentKeys     = IntegrationTestHelper.GetKeys(9);
                var    validshipmentKey = shipmentKeys[1];

                var shipmentStateRequestModel = new ShipmentStateRequestModel {
                    ShipmentStatus = "Ordered"
                };

                var configAndRequest = GetConfigAndRequestMessage(
                    shipmentKeys, validshipmentKey, shipmentStateRequestModel);

                // Act
                var response = await IntegrationTestHelper
                               .GetResponseAsync(configAndRequest.Item1, configAndRequest.Item2);

                // Assert
                Assert.Equal(HttpStatusCode.Conflict, response.StatusCode);
            }
Example #5
0
            public async Task Returns_201_And_ShipmentState_If_Request_Authorized_And_Success()
            {
                // Arrange
                Guid[] shipmentKeys     = IntegrationTestHelper.GetKeys(9);
                var    validshipmentKey = shipmentKeys[1];

                var shipmentStateRequestModel = new ShipmentStateRequestModel {
                    ShipmentStatus = "InTransit"
                };

                var configAndRequest = GetConfigAndRequestMessage(
                    shipmentKeys, validshipmentKey, shipmentStateRequestModel);

                // Act
                var shipmentStateDto = await IntegrationTestHelper
                                       .GetResponseMessageBodyAsync <ShipmentStateDto>(
                    configAndRequest.Item1,
                    configAndRequest.Item2,
                    HttpStatusCode.Created);

                // Assert
                Assert.Equal(shipmentStateRequestModel.ShipmentStatus, shipmentStateDto.ShipmentStatus);
                Assert.Equal(validshipmentKey, shipmentStateDto.ShipmentKey);
            }