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)); }
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(); }
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); }
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(); }
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[]>()); }
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(); }