public void DisposingAWebRequestTracerStopsIt()
        {
            // given
            IDisposable target = new TestWebRequestTracerBase(logger, beacon, 17);

            // when disposing the target
            target.Dispose();

            // then
            Assert.That(((WebRequestTracerBase)target).IsStopped, Is.True);
        }
        public void AWebRequestTracerIsStoppedAfterStopHasBeenCalled()
        {
            // given
            var target = new TestWebRequestTracerBase(beacon, action);

            // when calling the stop method
            target.Stop();

            // then
            Assert.That(target.IsStopped, Is.True);
        }
        public void SetBytesReceivedSetsTheNumberOfReceivedBytes()
        {
            // given
            var target = new TestWebRequestTracerBase(logger, beacon, 17);

            // when setting the received bytes
            var obtained = target.SetBytesReceived(4321);

            // then
            Assert.That(target.BytesReceived, Is.EqualTo(4321));
            Assert.That(obtained, Is.SameAs(target));
        }
        public void SetBytesSentSetsTheNumberOfSentBytes()
        {
            // given
            var target = new TestWebRequestTracerBase(logger, beacon, 17);

            // when setting the sent bytes
            var obtained = target.SetBytesSent(1234);

            // then
            Assert.That(target.BytesSent, Is.EqualTo(1234));
            Assert.That(obtained, Is.SameAs(target));
        }
        public void SetResponseCodeSetsTheResponseCode()
        {
            // given
            var target = new TestWebRequestTracerBase(logger, beacon, 17);

            // when setting response code
            var obtained = target.SetResponseCode(418);

            // then
            Assert.That(target.ResponseCode, Is.EqualTo(418));
            Assert.That(obtained, Is.SameAs(target));
        }
        public void StartSetsTheStartTime()
        {
            // given
            var target = new TestWebRequestTracerBase(logger, beacon, 17);

            mockTimingProvider.ProvideTimestampInMilliseconds().Returns(123456789L);

            // when starting web request tracing
            var obtained = target.Start();

            // then
            Assert.That(target.StartTime, Is.EqualTo(123456789L));
            Assert.That(obtained, Is.SameAs(target));
        }
        public void SetBytesReceivedDoesNotSetAnythingIfStopped()
        {
            // given
            var target = new TestWebRequestTracerBase(logger, beacon, 17);

            target.Stop();

            // when setting the received bytes
            var obtained = target.SetBytesReceived(4321);

            // then
            Assert.That(target.BytesReceived, Is.EqualTo(-1));
            Assert.That(obtained, Is.SameAs(target));
        }
        public void SetBytesSentDoesNotSetAnythingIfStopped()
        {
            // given
            var target = new TestWebRequestTracerBase(beacon, action);

            target.Stop();

            // when setting the sent bytes
            var obtained = target.SetBytesSent(1234);

            // then
            Assert.That(target.BytesSent, Is.EqualTo(-1));
            Assert.That(obtained, Is.SameAs(target));
        }
        public void SetResponseCodeDoesNotSetTheResponseCodeIfStopped()
        {
            // given
            var target = new TestWebRequestTracerBase(beacon, action);

            target.Stop();

            // when setting response code
            var obtained = target.SetResponseCode(418);

            // then
            Assert.That(target.ResponseCode, Is.EqualTo(-1));
            Assert.That(obtained, Is.SameAs(target));
        }
        public void DefaultValues()
        {
            // given
            var target = new TestWebRequestTracerBase(logger, beacon, 17);

            // then
            Assert.That(target.URL, Is.EqualTo("<unknown>"));
            Assert.That(target.ResponseCode, Is.EqualTo(-1));
            Assert.That(target.StartTime, Is.EqualTo(0L));
            Assert.That(target.EndTime, Is.EqualTo(-1L));
            Assert.That(target.StartSequenceNo, Is.EqualTo(1));
            Assert.That(target.EndSequenceNo, Is.EqualTo(-1));
            Assert.That(target.BytesSent, Is.EqualTo(-1));
            Assert.That(target.BytesReceived, Is.EqualTo(-1));
        }
        public void StartDoesNothingIfAlreadyStopped()
        {
            // given
            var target = new TestWebRequestTracerBase(beacon, action);

            mockTimingProvider.ProvideTimestampInMilliseconds().Returns(123456789L);
            target.Stop();

            // when starting web request tracing
            var obtained = target.Start();

            // then
            Assert.That(target.StartTime, Is.EqualTo(-1L));
            Assert.That(obtained, Is.SameAs(target));
        }