public void Add_WithTightThread_IsReasonablyWriteSafe()
        {
            const int ItemCount = 1000;

            var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite);

            var t = new Thread(() =>
            {
                Parallel.For(0, ItemCount, (i) =>
                {
                    var response = new BasicHttpResponse()
                    {
                        StatusCode = i
                    };

                    factory.Add(response);
                });
            });

            t.Start();

            Assert.IsTrue(t.Join(5000));

            if (t.IsAlive)
            {
                t.Abort();
            }

            Assert.AreEqual(ItemCount, factory.Count);
        }
        public void Add_WithValidResponse_AddsToCollection()
        {
            var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite);

            factory.Add(new BasicHttpResponse());

            Assert.AreEqual(1, factory.Count);
        }
        public void Add_WhenFactoryIsDisposed_ThrowsExpcetion()
        {
            var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite);

            factory.Dispose();

            Assert.Throws <ObjectDisposedException>(() => factory.Add(new BasicHttpResponse()));
        }
        public void HasResponse_GivenABehavior_WithResponsesAndFailureResponse_ReturnsTrue(ResponseFactoryBehavior behavior)
        {
            var factory = new StumpResponseFactory(behavior);

            factory.Add(new MockHttpResponse());

            Assert.IsTrue(factory.HasResponse);
        }
        public void HasResponse_GivenABehavior_WhenFailureResponseIsNull_ReturnsCorrectResult(ResponseFactoryBehavior behavior, bool expectedResponse)
        {
            var factory = new StumpResponseFactory(behavior);

            factory.Add(new MockHttpResponse());
            factory.FailureResponse = null;

            Assert.AreEqual(expectedResponse, factory.HasResponse);
        }
Esempio n. 6
0
        /// <summary>
        ///     Asserts that the <see cref="StumpResponseFactory"/> will respond with a <see cref="BasicHttpResponse"/>.
        /// </summary>
        /// <param name="responseFactory">The <see cref="StumpResponseFactory"/> to which the new <see cref="BasicHttpResponse"/> is added.</param>
        /// <returns>A <see cref="BasicHttpResponse"/> created for the <paramref name="responseFactory"/>.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="responseFactory"/> is <c>null</c>.</exception>
        public static BasicHttpResponse Responds(this StumpResponseFactory responseFactory)
        {
            responseFactory = responseFactory ?? throw new ArgumentNullException(nameof(responseFactory));

            var response = new BasicHttpResponse();

            responseFactory.Add(response);

            return(response);
        }
        public void Clear_WhenCalled_RemoveAllItemsInCollection()
        {
            var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite);

            factory.Add(new BasicHttpResponse());

            factory.Clear();

            Assert.AreEqual(0, factory.Count);
        }
 public void Add_WithNullResponse_ThrowsException()
 {
     Assert.That(
         () =>
     {
         var factory = new StumpResponseFactory(ResponseFactoryBehavior.OrderedInfinite);
         factory.Add(null);
     },
         Throws.Exception.TypeOf <ArgumentNullException>().With.Property("ParamName").EqualTo("response"));
 }
        private void PopulateFactoryWithMultipleResponses(StumpResponseFactory factory, int count)
        {
            for (var i = 1; i <= count; i++)
            {
                var response = new BasicHttpResponse()
                {
                    StatusCode = i
                };

                factory.Add(response);
            }
        }
        public void Add_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.Add(new BasicHttpResponse
            {
                StatusCode = 4
            });

            Assert.AreEqual(1, factory.CreateResponse(new MockHttpRequest()).StatusCode);
        }