コード例 #1
0
        private void DeserializeAndAddMapping(string json, Guid?guid = null)
        {
            var mappingModel = JsonConvert.DeserializeObject <MappingModel>(json);

            Check.NotNull(mappingModel, nameof(mappingModel));
            Check.NotNull(mappingModel.Request, nameof(mappingModel.Request));
            Check.NotNull(mappingModel.Response, nameof(mappingModel.Response));

            var requestBuilder  = InitRequestBuilder(mappingModel.Request);
            var responseBuilder = InitResponseBuilder(mappingModel.Response);

            IRespondWithAProvider respondProvider = Given(requestBuilder);

            if (guid != null)
            {
                respondProvider = respondProvider.WithGuid(guid.Value);
            }
            else if (mappingModel.Guid != null && mappingModel.Guid != Guid.Empty)
            {
                respondProvider = respondProvider.WithGuid(mappingModel.Guid.Value);
            }

            if (!string.IsNullOrEmpty(mappingModel.Title))
            {
                respondProvider = respondProvider.WithTitle(mappingModel.Title);
            }

            if (mappingModel.Priority != null)
            {
                respondProvider = respondProvider.AtPriority(mappingModel.Priority.Value);
            }

            respondProvider.RespondWith(responseBuilder);
        }
コード例 #2
0
        private void DeserializeAndAddOrUpdateMapping(MappingModel mappingModel, Guid?guid = null, string path = null)
        {
            Check.NotNull(mappingModel, nameof(mappingModel));
            Check.NotNull(mappingModel.Request, nameof(mappingModel.Request));
            Check.NotNull(mappingModel.Response, nameof(mappingModel.Response));

            var requestBuilder  = InitRequestBuilder(mappingModel.Request);
            var responseBuilder = InitResponseBuilder(mappingModel.Response);

            IRespondWithAProvider respondProvider = Given(requestBuilder);

            if (guid != null)
            {
                respondProvider = respondProvider.WithGuid(guid.Value);
            }
            else if (mappingModel.Guid != null && mappingModel.Guid != Guid.Empty)
            {
                respondProvider = respondProvider.WithGuid(mappingModel.Guid.Value);
            }

            if (path != null)
            {
                respondProvider = respondProvider.WithPath(path);
            }

            if (!string.IsNullOrEmpty(mappingModel.Title))
            {
                respondProvider = respondProvider.WithTitle(mappingModel.Title);
            }

            if (mappingModel.Priority != null)
            {
                respondProvider = respondProvider.AtPriority(mappingModel.Priority.Value);
            }

            if (mappingModel.Scenario != null)
            {
                respondProvider = respondProvider.InScenario(mappingModel.Scenario);
                respondProvider = respondProvider.WhenStateIs(mappingModel.WhenStateIs);
                respondProvider = respondProvider.WillSetStateTo(mappingModel.SetStateTo);
            }

            if (mappingModel.LogOnMatchFail)
            {
                respondProvider = respondProvider.WithLogOnMatchFail(true);
            }

            respondProvider.RespondWith(responseBuilder);
        }
コード例 #3
0
        private ResponseMessage MappingPut(RequestMessage requestMessage)
        {
            Guid guid         = Guid.Parse(requestMessage.Path.TrimStart(AdminMappings.ToCharArray()));
            var  mappingModel = JsonConvert.DeserializeObject <MappingModel>(requestMessage.Body);

            if (mappingModel.Request == null)
            {
                return new ResponseMessage {
                           StatusCode = 400, Body = "Request missing"
                }
            }
            ;

            if (mappingModel.Response == null)
            {
                return new ResponseMessage {
                           StatusCode = 400, Body = "Response missing"
                }
            }
            ;

            var requestBuilder  = InitRequestBuilder(mappingModel.Request);
            var responseBuilder = InitResponseBuilder(mappingModel.Response);

            IRespondWithAProvider respondProvider = Given(requestBuilder).WithGuid(guid);

            if (!string.IsNullOrEmpty(mappingModel.Title))
            {
                respondProvider = respondProvider.WithTitle(mappingModel.Title);
            }

            respondProvider.RespondWith(responseBuilder);

            return(new ResponseMessage {
                Body = "Mapping added or updated"
            });
        }