public async Task DeleteAsyncById_CanDeleteEntities() { var store = new OfflineSQLiteStore(ConnectionString); store.DefineTable(TestTable, IdEntityDefinition); await store.InitializeAsync(); await store.UpsertAsync(TestTable, IdEntityValues, false); // Page before the deletion. var page = await store.GetPageAsync(new QueryDescription(TestTable) { IncludeTotalCount = true }); Assert.Equal(IdEntityValues.Length, page.Count); Assert.Contains(page.Items, o => o.Value <string>("stringValue") == "item#1"); var ids = IdEntityValues.Skip(2).Take(2).Select(o => o.Value <string>("id")).ToArray(); await store.DeleteAsync(TestTable, ids); // Page after the deletion. var page2 = await store.GetPageAsync(new QueryDescription(TestTable) { IncludeTotalCount = true }); Assert.Equal(IdEntityValues.Length - 2, page2.Count); Assert.DoesNotContain(page2.Items, o => o.Value <string>("id") == ids[0]); Assert.DoesNotContain(page2.Items, o => o.Value <string>("id") == ids[1]); }
public async Task DeleteAsyncByQuery_Throws_OnMissingTable() { var store = new OfflineSQLiteStore(ConnectionString); store.DefineTable(TestTable, IdEntityDefinition); await store.InitializeAsync(); await Assert.ThrowsAsync <InvalidOperationException>(() => store.DeleteAsync(new QueryDescription("movies"))); }
public async Task DeleteAsyncById_EmptyListOfIds() { var store = new OfflineSQLiteStore(ConnectionString); store.DefineTable(TestTable, IdEntityDefinition); await store.InitializeAsync(); await store.UpsertAsync(TestTable, IdEntityValues, false); // Page before the deletion. var page = await store.GetPageAsync(new QueryDescription(TestTable) { IncludeTotalCount = true }); Assert.Equal(IdEntityValues.Length, page.Count); var ids = Array.Empty <string>(); await store.DeleteAsync(TestTable, ids); // Page after the deletion. var page2 = await store.GetPageAsync(new QueryDescription(TestTable) { IncludeTotalCount = true }); Assert.Equal(IdEntityValues.Length, page2.Count); }
public async Task DeleteAsyncByQuery_CanDeleteEntities() { var store = new OfflineSQLiteStore(ConnectionString); store.DefineTable(TestTable, IdEntityDefinition); await store.InitializeAsync(); await store.UpsertAsync(TestTable, IdEntityValues, false); // Page before the deletion. var page = await store.GetPageAsync(new QueryDescription(TestTable) { IncludeTotalCount = true }); Assert.Equal(IdEntityValues.Length, page.Count); Assert.Contains(page.Items, o => o.Value <string>("stringValue") == "item#1"); QueryDescription query = QueryDescription.Parse(TestTable, "$filter=(stringValue eq 'item#1')"); await store.DeleteAsync(query); // Page after the deletion. var page2 = await store.GetPageAsync(new QueryDescription(TestTable) { IncludeTotalCount = true }); Assert.Equal(IdEntityValues.Length - 1, page2.Count); Assert.DoesNotContain(page2.Items, o => o.Value <string>("stringValue") == "item#1"); }
public async Task DeleteAsyncByQuery_Throws_WhenStoreIsNotInitialized() { var store = new OfflineSQLiteStore(ConnectionString); await Assert.ThrowsAsync <InvalidOperationException>(() => store.DeleteAsync(new QueryDescription(TestTable))); }
public async Task DeleteAsyncById_Throws_WhenStoreIsNotInitialized() { var store = new OfflineSQLiteStore(ConnectionString); await Assert.ThrowsAsync <InvalidOperationException>(() => store.DeleteAsync(TestTable, new[] { "id" })); }