Ejemplo n.º 1
0
            public void TracksEventWhenAppGoesToBackground()
            {
                var backgroundService = new BackgroundService(TimeService, AnalyticsService, UpdateRemoteConfigCacheService);

                backgroundService.EnterBackground();
                AnalyticsService.Received().AppSentToBackground.Track();
            }
Ejemplo n.º 2
0
            public void TracksEventWhenAppResumed()
            {
                var backgroundService = new BackgroundService(TimeService, AnalyticsService);

                backgroundService.EnterBackground();
                backgroundService.EnterForeground();
                AnalyticsService.Received().AppDidEnterForeground.Track();
            }
Ejemplo n.º 3
0
            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();
            }
Ejemplo n.º 4
0
            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));
            }
Ejemplo n.º 5
0
            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();
            }