public void TransitionToCaptureOnStateIsPerformed() { // given context.IsCaptureOn.Returns(true); httpClient.SendStatusRequest().Returns(new StatusResponse(logger, string.Empty, 200, new Dictionary <string, List <string> >())); // when var target = new BeaconSendingCaptureOffState(); target.Execute(context); // then context.Received(1).NextState = Arg.Any <BeaconSendingCaptureOnState>(); }
public void TransitionToCaptureOnStateIsPerformed() { // given context.IsCaptureOn.Returns(true); context.IsTimeSyncSupported.Returns(true); context.IsTimeSynced.Returns(true); httpClient.SendStatusRequest().Returns(new StatusResponse(string.Empty, 200)); // when var target = new BeaconSendingCaptureOffState(); target.Execute(context); // then context.Received(1).NextState = Arg.Any <BeaconSendingCaptureOnState>(); }
public void Setup() { httpClient = Substitute.For <IHTTPClient>(); context = Substitute.For <IBeaconSendingContext>(); context.GetHTTPClient().Returns(httpClient); statusResponse = new StatusResponse(Substitute.For <ILogger>(), string.Empty, 200, new Dictionary <string, List <string> >()); httpClient.SendStatusRequest().Returns(statusResponse); }
public void Setup() { logger = Substitute.For <ILogger>(); httpClient = Substitute.For <IHTTPClient>(); context = Substitute.For <IBeaconSendingContext>(); context.GetHTTPClient().Returns(httpClient); httpClient.SendStatusRequest().Returns(new StatusResponse(logger, string.Empty, Response.HttpOk, new Dictionary <string, List <string> >())); }
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 Setup() { currentTime = 0; lastStatusCheckTime = -1; logger = Substitute.For <ILogger>(); httpClient = Substitute.For <IHTTPClient>(); context = Substitute.For <IBeaconSendingContext>(); context.GetHTTPClient().Returns(httpClient); // default return success httpClient.SendStatusRequest().Returns(new StatusResponse(logger, string.Empty, 200, new Dictionary <string, List <string> >())); // current time getter context.CurrentTimestamp.Returns(x => { return(++currentTime); }); // last time sycn getter + setter context.LastStatusCheckTime = Arg.Do <long>(x => lastStatusCheckTime = x); context.LastStatusCheckTime = lastStatusCheckTime; // init with -1 }
public void LastOpenSessionBeaconSendTimeIsSetInExecute() { // given context.IsShutdownRequested.Returns(true); // shutdown is requested context.CurrentTimestamp.Returns(123456L); httpClient.SendStatusRequest().Returns(new StatusResponse(string.Empty, 200)); // return valid status response (!= null) // when var target = new BeaconSendingInitState(); target.Execute(context); // then context.Received(1).LastOpenSessionBeaconSendTime = 123456L; }
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(); }
public void ReinitializeSleepsBeforeSendingStatusRequests() { // given var count = 0; 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(_ => { return(count++ > 40); }); var target = new BeaconSendingInitState(); // when target.Execute(context); // then // verify sleeps - first total number and then correct order context.ReceivedWithAnyArgs(41).Sleep(0); Received.InOrder(() => { // from first round context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 2); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 4); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 8); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 16); // delay between first and second attempt context.Sleep(BeaconSendingInitState.REINIT_DELAY_MILLISECONDS[0]); // and again the sequence context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 2); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 4); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 8); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 16); // delay between second and third attempt context.Sleep(BeaconSendingInitState.REINIT_DELAY_MILLISECONDS[1]); // and again the sequence context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 2); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 4); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 8); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 16); // delay between third and fourth attempt context.Sleep(BeaconSendingInitState.REINIT_DELAY_MILLISECONDS[2]); // and again the sequence context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 2); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 4); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 8); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 16); // delay between fourth and fifth attempt context.Sleep(BeaconSendingInitState.REINIT_DELAY_MILLISECONDS[3]); // and again the sequence context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 2); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 4); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 8); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 16); // delay between fifth and sixth attempt context.Sleep(BeaconSendingInitState.REINIT_DELAY_MILLISECONDS[4]); // and again the sequence context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 2); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 4); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 8); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 16); // delay between sixth and seventh attempt context.Sleep(BeaconSendingInitState.REINIT_DELAY_MILLISECONDS[4]); // and again the sequence context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 2); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 4); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 8); context.Sleep(BeaconSendingInitState.INITIAL_RETRY_SLEEP_TIME_MILLISECONDS * 16); }); }