public RunSyncInteractor CreateSyncInteractor(PushNotificationSyncSourceState sourceState) { return(new RunSyncInteractor( SyncManager, AnalyticsService, sourceState )); }
public async Task TracksIfSyncSucceeds(PushNotificationSyncSourceState sourceState) { SyncManager.ForceFullSync().Returns(Observable.Return(SyncState.Sleep)); var interactor = CreateSyncInteractor(sourceState); await interactor.Execute().SingleAsync(); AnalyticsService.PushNotificationSyncStarted.Received().Track(sourceState.ToString()); AnalyticsService.PushNotificationSyncFinished.Received().Track(sourceState.ToString()); AnalyticsService.PushNotificationSyncFailed.DidNotReceive().Track(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()); }
public RunSyncInteractor( ISyncManager syncManager, IAnalyticsService analyticsService, PushNotificationSyncSourceState sourceState) { Ensure.Argument.IsNotNull(syncManager, nameof(syncManager)); Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService)); Ensure.Argument.IsNotNull(sourceState, nameof(sourceState)); this.syncManager = syncManager; this.analyticsService = analyticsService; this.sourceState = sourceState; }
public async Task TracksIfSyncFails(PushNotificationSyncSourceState sourceState) { var exception = new Exception(); SyncManager.ForceFullSync().Returns(Observable.Throw <SyncState>(exception)); var interactor = CreateSyncInteractor(sourceState); await interactor.Execute().SingleAsync(); AnalyticsService.PushNotificationSyncStarted.Received().Track(sourceState.ToString()); AnalyticsService.PushNotificationSyncFinished.Received().Track(sourceState.ToString()); AnalyticsService.PushNotificationSyncFailed.Received().Track(sourceState.ToString(), exception.GetType().FullName, exception.Message, exception.StackTrace); }
public async Task ReturnsFailedIfSyncFails(PushNotificationSyncSourceState sourceState) { var interactor = CreateSyncInteractor(sourceState); (await interactor.Execute().SingleAsync()).Should().Be(SyncOutcome.Failed); }
public async Task ReturnsNewDataIfSyncSucceeds(PushNotificationSyncSourceState sourceState) { var interactor = CreateSyncInteractor(sourceState); (await interactor.Execute().SingleAsync()).Should().Be(SyncOutcome.NewData); }