public void TracksEventWhenAppGoesToBackground() { var backgroundService = new BackgroundService(TimeService, AnalyticsService, UpdateRemoteConfigCacheService); backgroundService.EnterBackground(); AnalyticsService.Received().AppSentToBackground.Track(); }
public void TracksEventWhenAppResumed() { var backgroundService = new BackgroundService(TimeService, AnalyticsService); backgroundService.EnterBackground(); backgroundService.EnterForeground(); AnalyticsService.Received().AppDidEnterForeground.Track(); }
public void EmitsValueWhenEnteringForegroundAfterBeingInBackground() { bool emitted = false; var backgroundService = new BackgroundService(TimeService, AnalyticsService, UpdateRemoteConfigCacheService); TimeService.CurrentDateTime.Returns(now); backgroundService .AppResumedFromBackground .Subscribe(_ => emitted = true); backgroundService.EnterBackground(); backgroundService.EnterForeground(); emitted.Should().BeTrue(); }
public void EmitsAValueWhenEnteringForegroundAfterBeingInBackgroundForMoreThanTheLimit(NonNegativeInt waitingTime) { TimeSpan?resumedAfter = null; var backgroundService = new BackgroundService(TimeService, AnalyticsService, UpdateRemoteConfigCacheService); backgroundService .AppResumedFromBackground .Subscribe(timeInBackground => resumedAfter = timeInBackground); TimeService.CurrentDateTime.Returns(now); backgroundService.EnterBackground(); TimeService.CurrentDateTime.Returns(now.AddMinutes(waitingTime.Get).AddSeconds(1)); backgroundService.EnterForeground(); resumedAfter.Should().NotBeNull(); resumedAfter.Should().BeGreaterThan(TimeSpan.FromMinutes(waitingTime.Get)); }
public void DoesNotEmitAnythingWhenTheEnterForegroundIsCalledMultipleTimes() { bool emitted = false; var backgroundService = new BackgroundService(TimeService, AnalyticsService, UpdateRemoteConfigCacheService); TimeService.CurrentDateTime.Returns(now); backgroundService.EnterBackground(); TimeService.CurrentDateTime.Returns(now.AddMinutes(1)); backgroundService.EnterForeground(); TimeService.CurrentDateTime.Returns(now.AddMinutes(2)); backgroundService .AppResumedFromBackground .Subscribe(_ => emitted = true); backgroundService.EnterForeground(); emitted.Should().BeFalse(); }