public async Task Should_Not_Record_Last_Sync_When_Failed()
        {
            _service1.Sync(_user).Returns(Task.FromResult(SyncResult.Failed("test error!")));
            _service2.Sync(_user).Returns(Task.FromResult(SyncResult.Success()));

            await _syncService.Sync(_user);

            _persistenceContextFactory.DidNotReceive().CreateFor <SyncInfo>();
        }
        public async Task Should_Return_Failure_When_Any_Of_The_Services_Fails()
        {
            _service1.Sync(_user).Returns(Task.FromResult(SyncResult.Success()));
            _service2.Sync(_user).Returns(Task.FromResult(SyncResult.Failed("test error")));

            var syncResult = await _syncService.Sync(_user);

            Assert.That(syncResult.HasErrors);
            Assert.That(syncResult.ErrorMessage, Is.EqualTo("test error"));
        }
        public async Task Should_Not_Execute_Subsequent_SyncServices_On_Failure()
        {
            _service1.Sync(_user).Returns(Task.FromResult(SyncResult.Failed("test error")));
            _service2.Sync(_user).Returns(Task.FromResult(SyncResult.Success()));

            var syncResult = await _syncService.Sync(_user);

            await _service2.DidNotReceive().Sync(_user);

            Assert.That(syncResult.HasErrors);
            Assert.That(syncResult.ErrorMessage, Is.EqualTo("test error"));
        }