public async Task Should_Pull_Disasters() { var result = new UpdateResult <Disaster>(); _pullService.Pull <Disaster>().Returns(Task.FromResult(result)); var syncResult = await _service.Sync(_user); Assert.That(syncResult.HasErrors, Is.False); await _pullService.Received().Pull <Disaster>(); }
public async Task Should_Persist_Successful_Items() { var tm1 = CreateTestModel(); var tm2 = CreateTestModel(); SetupSuccessfulPull(tm1, tm2); await _service.Pull <TestModel>(); _persistenceContext.Received().Save(tm1); _persistenceContext.Received().Save(tm2); }
public async Task Should_NOT_Pull_Attributes_When_Assessments_Are_Not_Pulled_Successfully() { SetupEmptyPush(); var assessmentUpdateResult = new UpdateResult <Assessment>(); assessmentUpdateResult.Failed(CreateItem <Assessment>(), "error!!"); _pullService.Pull <Assessment>(_query).Returns(Task.FromResult(assessmentUpdateResult)); var syncResult = await _syncService.Sync(_user); Assert.That(syncResult.HasErrors); await _pullService.DidNotReceiveWithAnyArgs().Pull <AssessmentAttribute>(); }
public void Setup() { _pushService = Substitute.For <IPushService>(); _pullService = Substitute.For <IPullService>(); _persistenceContextFactory = Substitute.For <IPersistenceContextFactory>(); _queryProvider = Substitute.For <IBackendlessQueryProvider>(); _query = Substitute.For <IBackendlessQuery>(); _queryProvider.Where().Returns(_query); _pullService.Pull <Assessment>().ReturnsForAnyArgs(Task.FromResult(new UpdateResult <Assessment>())); _pullService.Pull <AssessmentAttribute>().ReturnsForAnyArgs(Task.FromResult(new UpdateResult <AssessmentAttribute>())); _user = new User { Token = "blah", ObjectId = "xyz" }; _query.OwnedBy(_user.ObjectId).IsActive().Returns(_query); _syncService = new AttributedItemSyncService <Assessment, AssessmentAttribute>(_pushService, _pullService, _queryProvider, _persistenceContextFactory); }
public async Task <IEnumerable <Disaster> > GetDisasters(bool reload = false) { var lastDownload = GetLastDownloadDate(); if (reload || (lastDownload.HasValue && DateTimeOffset.UtcNow.Subtract(lastDownload.Value).TotalDays >= 1)) { await _pullService.Pull <Disaster>(); UpdateLastDownloadDate(); } return(await _service.GetDisasters()); }
public async Task <SyncResult> Sync(User user) { var pullResult = await _pullService.Pull <Disaster>(); var pulledItems = new HashSet <string>(pullResult.SuccessfulItems.Select(i => i.ObjectId)); if (!pullResult.FailedItems.Any() && pulledItems.Any()) { PurgeRelated <Assessment>(pulledItems); PurgeRelated <Shelter>(pulledItems); } return(pullResult.FailedItems.Any() ? SyncResult.Failed("Unable to pull latest Disasters.") : SyncResult.Success()); }
public async Task <SyncResult> Sync(User user) { var result = await _pullService.Pull <Attribute>(); return(result.FailedItems.Any() ? SyncResult.Failed("Unable to pull latest Attributes.") : SyncResult.Success()); }
private async Task <bool> PullAttributes(IQuery query) { var pulledAttributesResult = await _pullService.Pull <TValuedAttribute>(query); return(!pulledAttributesResult.FailedItems.Any()); }