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);
        }