Esempio n. 1
0
        public void NewSessionRequestsAreMadeForAllNewSessions()
        {
            // given
            var target = new BeaconSendingCaptureOnState();

            var sessionOne = new SessionWrapper(CreateValidSession("127.0.0.1"));
            var sessionTwo = new SessionWrapper(CreateEmptySession("127.0.0.2"));

            newSessions.AddRange(new[] { sessionOne, sessionTwo });

            httpClient.SendNewSessionRequest().Returns(new StatusResponse("mp=5", 200, new Dictionary <string, List <string> >()),
                                                       null,
                                                       new StatusResponse("mp=3", 200, new Dictionary <string, List <string> >()));

            // when
            target.Execute(context);

            // verify for both new sessions a new session request has been made
            httpClient.Received(2).SendNewSessionRequest();

            // also verify that sessionOne got a new configuration
            Assert.That(sessionOne.IsBeaconConfigurationSet, Is.True);
            Assert.That(sessionOne.BeaconConfiguration.Multiplicity, Is.EqualTo(5));

            // for session two the number of requests was decremented
            Assert.That(sessionTwo.IsBeaconConfigurationSet, Is.False);
            Assert.That(sessionTwo.NumNewSessionRequestsLeft, Is.EqualTo(3));
        }
Esempio n. 2
0
        public void TimeSyncRequetsAreRetried()
        {
            // given
            httpClient.SendTimeSyncRequest().Returns(
                // request 1 fails 2 times
                x => null,
                x => null,
                x => CreateValidTimeResponse(currentTime, 10),
                // request 2 fails 1 time
                x => null,
                x => CreateValidTimeResponse(currentTime, 10),
                // request 3 fails 4 times
                x => null,
                x => null,
                x => null,
                x => null,
                x => CreateValidTimeResponse(currentTime, 10),
                // request 4 fails 0 times
                x => CreateValidTimeResponse(currentTime, 10),
                // request 5 fails 1 time
                x => null,
                x => CreateValidTimeResponse(currentTime, 10)
                );

            // when
            var target = new BeaconSendingTimeSyncState();

            target.Execute(context);

            // then
            httpClient.Received(13).SendTimeSyncRequest();
        }
        public void TimeSyncRequetsAreRetried()
        {
            // given
            var erroneousResponse = new TimeSyncResponse(Substitute.For <ILogger>(), string.Empty, Response.HttpBadRequest, new Dictionary <string, List <string> >());

            httpClient.SendTimeSyncRequest().Returns(
                // request 1 fails 2 times
                x => erroneousResponse,
                x => erroneousResponse,
                x => CreateValidTimeResponse(currentTime, 10),
                // request 2 fails 1 time
                x => erroneousResponse,
                x => CreateValidTimeResponse(currentTime, 10),
                // request 3 fails 4 times
                x => erroneousResponse,
                x => erroneousResponse,
                x => erroneousResponse,
                x => erroneousResponse,
                x => CreateValidTimeResponse(currentTime, 10),
                // request 4 fails 0 times
                x => CreateValidTimeResponse(currentTime, 10),
                // request 5 fails 1 time
                x => erroneousResponse,
                x => CreateValidTimeResponse(currentTime, 10)
                );

            // when
            var target = new BeaconSendingTimeSyncState();

            target.Execute(context);

            // then
            httpClient.Received(13).SendTimeSyncRequest();
        }
        public void SendStatusRequestIsAbortedWhenShutDownIsRequested()
        {
            // given
            context.IsShutdownRequested.Returns(true);
            httpClient.SendStatusRequest().Returns((StatusResponse)null);

            // when
            var obtained = BeaconSendingRequestUtil.SendStatusRequest(context, 5, 1000);

            // then
            Assert.That(obtained, Is.Null);

            context.Received(1).GetHTTPClient();
            context.ReceivedWithAnyArgs(0).Sleep(0);

            httpClient.Received(1).SendStatusRequest();
        }
Esempio n. 5
0
        public void StatusRequestIsRetried()
        {
            // given
            httpClient.SendStatusRequest().Returns((StatusResponse)null); // always return null

            // when
            var target = new BeaconSendingCaptureOffState();

            target.Execute(context);

            // then
            httpClient.Received(6).SendStatusRequest();
        }
        public void FinishedSessionsAreSent()
        {
            // given
            var clientIp       = "127.0.0.1";
            var statusResponse = new StatusResponse(string.Empty, 200);

            finishedSessions.Enqueue(CreateValidSession(clientIp));
            finishedSessions.Enqueue(CreateValidSession(clientIp));
            finishedSessions.Enqueue(CreateValidSession(clientIp));

            httpClient.SendBeaconRequest(Arg.Any <string>(), Arg.Any <byte[]>()).Returns(x => statusResponse);

            // when
            var target = new BeaconSendingCaptureOnState();

            target.Execute(context);

            // then
            httpClient.Received(3).SendBeaconRequest(clientIp, Arg.Any <byte[]>());
            context.Received(1).HandleStatusResponse(statusResponse);
            Assert.That(finishedSessions, Is.Empty);
        }
Esempio n. 7
0
        public void StatusRequestIsRetried()
        {
            // given
            httpClient.SendStatusRequest().Returns((StatusResponse)null); // always return null
            context.IsShutdownRequested.Returns(false, false, false, false, false, true);

            // when
            var target = new BeaconSendingInitState();

            target.Execute(context);

            // then
            httpClient.Received(6).SendStatusRequest();
        }
Esempio n. 8
0
        public void StatusRequestIsRetried()
        {
            // given
            var erroneousResponse = new StatusResponse(logger, string.Empty, Response.HttpBadRequest, new Dictionary <string, List <string> >());

            httpClient.SendStatusRequest().Returns(erroneousResponse); // always return erroneous response
            context.IsShutdownRequested.Returns(false, false, false, false, false, true);
            var target = new BeaconSendingInitState();

            // when
            target.Execute(context);

            // then
            httpClient.Received(6).SendStatusRequest();
        }
        public void FinishedSessionsAreSent()
        {
            // given
            finishedSessions.Enqueue(CreateValidSession("127.0.0.1"));
            finishedSessions.Enqueue(CreateValidSession("127.0.0.1"));

            httpClient.SendBeaconRequest(Arg.Any <string>(), Arg.Any <byte[]>()).Returns(x => new StatusResponse(string.Empty, 200));

            // when
            var target = new BeaconSendingFlushSessionsState();

            target.Execute(context);

            // then
            httpClient.Received(2).SendBeaconRequest(Arg.Any <string>(), Arg.Any <byte[]>());
        }
Esempio n. 10
0
        public void SendStatusRequestIsAbortedWhenShutDownIsRequested()
        {
            // given
            var erroneousResponse = new StatusResponse(Substitute.For <ILogger>(), string.Empty, Response.HttpBadRequest, new Dictionary <string, List <string> >());

            context.IsShutdownRequested.Returns(true);
            httpClient.SendStatusRequest().Returns(erroneousResponse);

            // when
            var obtained = BeaconSendingRequestUtil.SendStatusRequest(context, 5, 1000);

            // then
            Assert.That(obtained, Is.SameAs(erroneousResponse));

            context.Received(1).GetHTTPClient();
            context.ReceivedWithAnyArgs(0).Sleep(0);

            httpClient.Received(1).SendStatusRequest();
        }