public async Task FetchTableName_Success() { IPostsRepository postsRepository = new PostsRepository(); IoCManager.Resolver.InjectProperties(postsRepository); var tableName = await postsRepository.FetchTableName(); Assert.IsNotNull(tableName); Assert.AreEqual("post", tableName); }
public async Task DataFlow_SyncServerId_Test() { var lastSuccessfulSyncRepository = IoCManager.Resolver.ResolveInstance <ILastSuccessfulSyncRepository>(); IPostsRepository postsRepository = new PostsRepository(); IoCManager.Resolver.InjectProperties(postsRepository); var tableName = await postsRepository.FetchTableName(); var samplePost1 = new PostEntity { Title = Post1Title1, Content = Post1Content1 }; var samplePost2 = new PostEntity { Title = Post2Title1, Content = Post2Content1 }; var savedPosts = await postsRepository.SaveAll( new[] { samplePost1, samplePost2 }, updateTimestamp : true); Assert.IsNotNull(savedPosts); Assert.IsNotEmpty(savedPosts); Assert.AreEqual(2, savedPosts.Count); samplePost1 = savedPosts[0]; samplePost2 = savedPosts[1]; Assert.NotNull(samplePost1); Assert.NotNull(samplePost2); await Task.Delay(1200); var lastSuccessfulSync = await lastSuccessfulSyncRepository.FindByTableIdAndBackendId(tableName); Assert.IsNotNull(lastSuccessfulSync); var pendingToSync = await postsRepository.FindAllPendingToSync( lastSuccessfulSync.SyncTimestamp, new[] { 3 }); Assert.IsNotNull(pendingToSync); Assert.IsNotEmpty(pendingToSync); Assert.AreEqual(2, pendingToSync.Count); lastSuccessfulSync.SyncTimestamp = DateTimeOffset.Now; lastSuccessfulSync = await lastSuccessfulSyncRepository.Save(lastSuccessfulSync); Assert.IsNotNull(lastSuccessfulSync); pendingToSync = await postsRepository.FindAllPendingToSync(lastSuccessfulSync.SyncTimestamp, 3); Assert.IsNotNull(pendingToSync); Assert.IsEmpty(pendingToSync); samplePost1.Title += " extra."; samplePost1 = await postsRepository.Save(samplePost1); Assert.IsNotNull(samplePost1); pendingToSync = await postsRepository.FindAllPendingToSync(lastSuccessfulSync.SyncTimestamp, 3); Assert.IsNotNull(pendingToSync); Assert.IsNotEmpty(pendingToSync); Assert.AreEqual(1, pendingToSync.Count); }