public void ResetToBeginning_WhenCalled_ResetsOrderPosition() { var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite); PopulateFactoryWithMultipleResponses(factory, 3); Assert.AreEqual(1, factory.CreateResponse(new MockHttpRequest()).StatusCode); Assert.AreEqual(2, factory.CreateResponse(new MockHttpRequest()).StatusCode); factory.ResetToBeginning(); Assert.AreEqual(1, factory.CreateResponse(new MockHttpRequest()).StatusCode); }
public void CreateResponse_WithoutResponsesWithOrderedThenDefaultBehavior_ReturnsDefault() { var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedThenFailure); var response = factory.CreateResponse(new MockHttpRequest()); Assert.NotNull(response); Assert.AreEqual(factory.FailureResponse.StatusCode, response.StatusCode); }
public void CreateResponse_WhenFactoryIsDisposed_ThrowsExpcetion() { var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite); factory.Dispose(); Assert.Throws <ObjectDisposedException>(() => factory.CreateResponse(new MockHttpRequest())); }
public void Clear_WhenCalled_ResetsOrderPosition() { var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite); PopulateFactoryWithMultipleResponses(factory, 3); Assert.AreEqual(1, factory.CreateResponse(new MockHttpRequest()).StatusCode); Assert.AreEqual(2, factory.CreateResponse(new MockHttpRequest()).StatusCode); factory.Clear(); factory.Add(new BasicHttpResponse { StatusCode = 4 }); Assert.AreEqual(4, factory.CreateResponse(new MockHttpRequest()).StatusCode); }
private List <IStumpsHttpResponse> GetMultipleResponsesFromFactory(StumpResponseFactory factory, int count) { var request = new MockHttpRequest(); var responses = new List <IStumpsHttpResponse>(); for (var i = 0; i < count; i++) { responses.Add(factory.CreateResponse(request)); } return(responses); }
public void CreateResponse_WithOrderedInfiniteBehaviorInMultithreadedEnvironment_ReturnsExpectedValues() { var counts = new int[21]; var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite); PopulateFactoryWithMultipleResponses(factory, 20); var mockRequest = new MockHttpRequest(); Parallel.For(0, 1000, (i) => { var response = factory.CreateResponse(mockRequest); Interlocked.Increment(ref counts[response.StatusCode]); }); for (var i = 1; i <= 20; i++) { Assert.AreEqual(50, counts[i]); } }
public void CreateResponse_WithOrderedBehavior_CanResetUsingRequestHeader() { const string UpperCasedStumpsHeader = "X-STUMPS"; const string UpperCasedResetSequence = "RESET-SEQUENCE"; var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite); PopulateFactoryWithMultipleResponses(factory, 5); GetMultipleResponsesFromFactory(factory, 3); var responses = GetMultipleResponsesFromFactory(factory, 10); var expectedStatusCodeSequence = new int[] { 1, 2, 3 }; var request = new MockHttpRequest { Headers = new HttpHeaders() }; request.Headers[UpperCasedStumpsHeader] = UpperCasedResetSequence; var response = factory.CreateResponse(request); Assert.AreEqual(1, response.StatusCode); }