本文整理汇总了C#中Nancy.NancyContext.SetMockInteraction方法的典型用法代码示例。如果您正苦于以下问题:C# NancyContext.SetMockInteraction方法的具体用法?C# NancyContext.SetMockInteraction怎么用?C# NancyContext.SetMockInteraction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Nancy.NancyContext
的用法示例。
在下文中一共展示了NancyContext.SetMockInteraction方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Handle_WhenExpectedResponseHasNotBeenSet_ResponseMapperIsCalledAndReturns500Response
public void Handle_WhenExpectedResponseHasNotBeenSet_ResponseMapperIsCalledAndReturns500Response()
{
var nancyContext = new NancyContext
{
Request = new Request("GET", "/", "HTTP")
};
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = new ProviderServiceRequest(), Response = null }
};
nancyContext.SetMockInteraction(interactions);
var mockRequestMapper = Substitute.For<IProviderServiceRequestMapper>();
var mockResponseMapper = Substitute.For<INancyResponseMapper>();
var mockProviderRepository = Substitute.For<IMockProviderRepository>();
mockResponseMapper.Convert(Arg.Any<ProviderServiceResponse>())
.Returns(new Response
{
StatusCode = HttpStatusCode.InternalServerError
});
IMockProviderRequestHandler handler = new MockProviderRequestHandler(mockRequestMapper, mockResponseMapper, mockProviderRepository);
var result = handler.Handle(nancyContext);
mockResponseMapper.Received(1).Convert(Arg.Is<ProviderServiceResponse>(x => x.Status == 500));
Assert.Equal(HttpStatusCode.InternalServerError, result.StatusCode);
}
示例2: GetMatchingInteraction_WithNoMatchingInteraction_ThrowsArgumentException
public void GetMatchingInteraction_WithNoMatchingInteraction_ThrowsArgumentException()
{
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = new ProviderServiceRequest { Method = HttpVerb.Get, Path = "/hello" }, Response = new ProviderServiceResponse()}
};
var context = new NancyContext();
context.SetMockInteraction(interactions);
Assert.Throws<ArgumentException>(() => context.GetMatchingInteraction(HttpVerb.Get, "/events"));
}
示例3: SetMockInteraction_WithInteractionAndNoExistingItemsInNancyContext_AddsInteractionToNancyContextItems
public void SetMockInteraction_WithInteractionAndNoExistingItemsInNancyContext_AddsInteractionToNancyContextItems()
{
var context = new NancyContext();
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = new ProviderServiceRequest(), Response = new ProviderServiceResponse() }
};
context.SetMockInteraction(interactions);
Assert.Equal(1, context.Items.Count);
Assert.Equal(interactions, context.Items[Constants.PactMockInteractionsKey]);
}
示例4: Create
public NancyContext Create(Request request)
{
var nancyContext = new NancyContext
{
Request = request,
Trace = _requestTraceFactory.Create(request)
};
nancyContext.Culture = _cultureService.DetermineCurrentCulture(nancyContext);
nancyContext.Text = new TextResourceFinder(_textResource, nancyContext);
nancyContext.SetMockInteraction(_mockContextService.GetExpectedRequestResponsePairs());
return nancyContext;
}
示例5: GetMatchingInteraction_WithOneMatchingInteraction_ReturnsInteraction
public void GetMatchingInteraction_WithOneMatchingInteraction_ReturnsInteraction()
{
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = new ProviderServiceRequest { Method = HttpVerb.Get, Path = "/events" }, Response = new ProviderServiceResponse()},
new ProviderServiceInteraction { Request = new ProviderServiceRequest { Method = HttpVerb.Post, Path = "/events" }, Response = new ProviderServiceResponse()},
};
var context = new NancyContext();
context.SetMockInteraction(interactions);
var result = context.GetMatchingInteraction(HttpVerb.Get, "/events");
Assert.Equal(interactions.First(), result);
}
示例6: SetMockInteraction_WithInteractionAndExistingItemsInNancyContext_AddsInteractionToNancyContextItems
public void SetMockInteraction_WithInteractionAndExistingItemsInNancyContext_AddsInteractionToNancyContextItems()
{
var context = new NancyContext();
context.Items.Add(new KeyValuePair<string, object>("test", "tester"));
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = new ProviderServiceRequest(), Response = new ProviderServiceResponse() },
new ProviderServiceInteraction { Request = new ProviderServiceRequest(), Response = new ProviderServiceResponse() }
};
context.SetMockInteraction(interactions);
Assert.Equal(2, context.Items.Count);
Assert.Equal(interactions, context.Items[Constants.PactMockInteractionsKey]);
}
示例7: NancyContext
public void SetMockInteraction_WithInteractionAndExistingInteractionsInNancyContext_OverwritesInteractionsInNancyContextItem()
{
var context = new NancyContext();
context.Items.Add(new KeyValuePair<string, object>(Constants.PactMockInteractionsKey, new List<KeyValuePair<ProviderServiceRequest, ProviderServiceResponse>>
{
new KeyValuePair<ProviderServiceRequest, ProviderServiceResponse>(new ProviderServiceRequest(), new ProviderServiceResponse()),
new KeyValuePair<ProviderServiceRequest, ProviderServiceResponse>(new ProviderServiceRequest(), new ProviderServiceResponse())
}));
var interactions = new List<ProviderServiceInteraction>()
{
new ProviderServiceInteraction { Request = new ProviderServiceRequest(), Response = new ProviderServiceResponse()},
new ProviderServiceInteraction { Request = new ProviderServiceRequest(), Response = new ProviderServiceResponse()}
};
context.SetMockInteraction(interactions);
Assert.Equal(1, context.Items.Count);
Assert.Equal(interactions, context.Items[Constants.PactMockInteractionsKey]);
}
示例8: Handle_WithNancyContextRequestThatMatchesExpectedRequest_ReturnsNancyResponse
public void Handle_WithNancyContextRequestThatMatchesExpectedRequest_ReturnsNancyResponse()
{
var expectedRequest = new ProviderServiceRequest
{
Method = HttpVerb.Get,
Path = "/Test"
};
var actualRequest = new ProviderServiceRequest
{
Method = HttpVerb.Get,
Path = "/Test"
};
var expectedResponse = new ProviderServiceResponse { Status = 200 };
var nancyResponse = new Response { StatusCode = HttpStatusCode.OK };
var mockRequestMapper = Substitute.For<IProviderServiceRequestMapper>();
var mockResponseMapper = Substitute.For<INancyResponseMapper>();
var mockProviderRepository = Substitute.For<IMockProviderRepository>();
var nancyContext = new NancyContext
{
Request = new Request("GET", "/Test", "HTTP")
};
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = expectedRequest, Response = expectedResponse }
};
nancyContext.SetMockInteraction(interactions);
mockRequestMapper.Convert(nancyContext.Request).Returns(actualRequest);
//mockRequestComparer.Compare Doesnt throw any exceptions
mockResponseMapper.Convert(expectedResponse).Returns(nancyResponse);
IMockProviderRequestHandler handler = new MockProviderRequestHandler(mockRequestMapper, mockResponseMapper, mockProviderRepository);
var response = handler.Handle(nancyContext);
Assert.Equal(nancyResponse, response);
}
示例9: Handle_WithNancyContext_AddHandledRequestIsCalledOnTheMockProviderRepository
public void Handle_WithNancyContext_AddHandledRequestIsCalledOnTheMockProviderRepository()
{
var expectedRequest = new ProviderServiceRequest();
var expectedResponse = new ProviderServiceResponse();
var actualRequest = new ProviderServiceRequest();
var mockRequestMapper = Substitute.For<IProviderServiceRequestMapper>();
var mockResponseMapper = Substitute.For<INancyResponseMapper>();
var mockProviderRepository = Substitute.For<IMockProviderRepository>();
var nancyContext = new NancyContext
{
Request = new Request("GET", "/", "HTTP")
};
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = expectedRequest, Response = expectedResponse }
};
nancyContext.SetMockInteraction(interactions);
mockRequestMapper.Convert(nancyContext.Request).Returns(actualRequest);
IMockProviderRequestHandler handler = new MockProviderRequestHandler(mockRequestMapper, mockResponseMapper, mockProviderRepository);
handler.Handle(nancyContext);
mockProviderRepository.Received(1).AddHandledRequest(Arg.Is<HandledRequest>(x => x.ActualRequest == actualRequest && x.MatchedInteraction == interactions.First()));
}
示例10: Handle_WithNancyContext_CompareIsCalledOnTheProviderServiceRequestComparer
public void Handle_WithNancyContext_CompareIsCalledOnTheProviderServiceRequestComparer()
{
var expectedRequest = new ProviderServiceRequest();
var expectedResponse = new ProviderServiceResponse();
var actualRequest = new ProviderServiceRequest();
var mockRequestComparer = Substitute.For<IProviderServiceRequestComparer>();
var mockRequestMapper = Substitute.For<IProviderServiceRequestMapper>();
var mockResponseMapper = Substitute.For<INancyResponseMapper>();
var nancyContext = new NancyContext
{
Request = new Request("GET", "/", "HTTP")
};
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = expectedRequest, Response = expectedResponse }
};
nancyContext.SetMockInteraction(interactions);
mockRequestMapper.Convert(nancyContext.Request).Returns(actualRequest);
IMockProviderNancyRequestHandler handler = new MockProviderNancyRequestHandler(mockRequestComparer, mockRequestMapper, mockResponseMapper);
handler.Handle(nancyContext);
mockRequestComparer.Received(1).Compare(expectedRequest, actualRequest);
}
示例11: CompareFailedException
public void Handle_WithNancyContextRequestThatDoesNotMatchExpectedRequest_ResponseMapperIsCalledAndReturns500Response()
{
var expectedRequest = new ProviderServiceRequest
{
Method = HttpVerb.Get,
Path = "/Test"
};
var actualRequest = new ProviderServiceRequest
{
Method = HttpVerb.Put,
Path = "/Test"
};
var expectedResponse = new ProviderServiceResponse { Status = 200 };
var nancyResponse = new Response { StatusCode = HttpStatusCode.OK };
var compareException = new CompareFailedException("Something failed");
var mockRequestComparer = Substitute.For<IProviderServiceRequestComparer>();
var mockRequestMapper = Substitute.For<IProviderServiceRequestMapper>();
var mockResponseMapper = Substitute.For<INancyResponseMapper>();
var nancyContext = new NancyContext
{
Request = new Request("GET", "/Test", "HTTP")
};
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = expectedRequest, Response = expectedResponse }
};
nancyContext.SetMockInteraction(interactions);
mockRequestMapper.Convert(nancyContext.Request).Returns(actualRequest);
mockRequestComparer
.When(x => x.Compare(expectedRequest, actualRequest))
.Do(x => { throw compareException; });
mockResponseMapper.Convert(expectedResponse).Returns(nancyResponse);
mockResponseMapper.Convert(Arg.Any<ProviderServiceResponse>())
.Returns(new Response
{
StatusCode = HttpStatusCode.InternalServerError
});
IMockProviderNancyRequestHandler handler = new MockProviderNancyRequestHandler(mockRequestComparer, mockRequestMapper, mockResponseMapper);
var response = handler.Handle(nancyContext);
mockResponseMapper.Received(1).Convert(Arg.Is<ProviderServiceResponse>(x => x.Status == 500));
Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
Assert.NotEmpty(response.ReasonPhrase);
}
示例12: Request
public void Handle_WithAGetRequestToInteractionsVerificationAndRegisteredInteractionWasCalledExactlyOnce_ReturnsOkResponse()
{
var context = new NancyContext
{
Request = new Request("GET", "/interactions/verification", "http")
};
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction()
};
var handler = GetSubject();
context.SetMockInteraction(interactions);
_mockProviderRepository.HandledRequests.Returns(new List<HandledRequest>
{
new HandledRequest(new ProviderServiceRequest(), interactions.First())
});
var response = handler.Handle(context);
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
示例13: GetMatchingMockInteraction_WithMoreThanOneMatchingInteraction_ThrowsPactFailureException
public void GetMatchingMockInteraction_WithMoreThanOneMatchingInteraction_ThrowsPactFailureException()
{
var requestResponsePairs = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = new ProviderServiceRequest { Method = HttpVerb.Get, Path = "/events" }, Response = new ProviderServiceResponse() },
new ProviderServiceInteraction { Request = new ProviderServiceRequest { Method = HttpVerb.Get, Path = "/events" }, Response = new ProviderServiceResponse()},
};
var context = new NancyContext();
context.SetMockInteraction(requestResponsePairs);
Assert.Throws<PactFailureException>(() => context.GetMatchingMockInteraction(HttpVerb.Get, "/events"));
}
示例14: Handle_WithAGetRequestToInteractionsVerificationAndReporterHasErrors_ReturnsErrorResponseContent
public void Handle_WithAGetRequestToInteractionsVerificationAndReporterHasErrors_ReturnsErrorResponseContent()
{
const string exceptionMessage = "Registered mock interaction with description 'My description' and provider state 'My provider state', was not used by the test.";
var context = new NancyContext
{
Request = new Request("GET", "/interactions/verification", "http")
};
var handler = GetSubject();
context.SetMockInteraction(new List<ProviderServiceInteraction> { new ProviderServiceInteraction() });
_mockReporter
.When(x => x.ThrowIfAnyErrors())
.Do(x => { throw new PactFailureException(exceptionMessage); });
var response = handler.Handle(context);
string content;
using (var stream = new MemoryStream())
{
response.Contents(stream);
stream.Position = 0;
using (var reader = new StreamReader(stream))
{
content = reader.ReadToEnd();
}
}
Assert.Equal(exceptionMessage, content);
}
示例15: Handle_WithNancyContext_ConvertIsCalledOnThProviderServiceRequestMapper
public void Handle_WithNancyContext_ConvertIsCalledOnThProviderServiceRequestMapper()
{
var expectedRequest = new ProviderServiceRequest
{
Method = HttpVerb.Get,
Path = "/"
};
var expectedResponse = new ProviderServiceResponse();
var nancyContext = new NancyContext
{
Request = new Request("GET", "/", "HTTP")
};
var mockRequestMapper = Substitute.For<IProviderServiceRequestMapper>();
var mockResponseMapper = Substitute.For<INancyResponseMapper>();
var mockProviderRepository = Substitute.For<IMockProviderRepository>();
mockRequestMapper.Convert(nancyContext.Request).Returns(expectedRequest);
var interactions = new List<ProviderServiceInteraction>
{
new ProviderServiceInteraction { Request = expectedRequest, Response = expectedResponse}
};
nancyContext.SetMockInteraction(interactions);
IMockProviderRequestHandler handler = new MockProviderRequestHandler(mockRequestMapper, mockResponseMapper, mockProviderRepository);
handler.Handle(nancyContext);
mockRequestMapper.Received(1).Convert(nancyContext.Request);
}