public async Task GetItemAsync_ReturnsNull_WhenMissing()
        {
            var store = new OfflineSQLiteStore(ConnectionString);

            store.DefineTable(TestTable, IdEntityDefinition);
            await store.InitializeAsync();

            await store.UpsertAsync(TestTable, IdEntityValues, false);

            // Page before the deletion.
            var result = await store.GetItemAsync(TestTable, Guid.NewGuid().ToString());

            Assert.Null(result);
        }
        public async Task GetItemAsync_ReturnsItem_WhenPresent()
        {
            var store = new OfflineSQLiteStore(ConnectionString);

            store.DefineTable(TestTable, IdEntityDefinition);
            await store.InitializeAsync();

            await store.UpsertAsync(TestTable, IdEntityValues, false);

            var expected = IdEntityValues.Skip(2).First();
            var result   = await store.GetItemAsync(TestTable, expected.Value <string>("id"));

            Assert.Equal(expected.ToString(Formatting.None), result.ToString(Formatting.None));
        }
 public async Task GetItemAsync_Throws_WhenStoreIsNotInitialized()
 {
     var store = new OfflineSQLiteStore(ConnectionString);
     await Assert.ThrowsAsync <InvalidOperationException>(() => store.GetItemAsync(TestTable, "id"));
 }