in Amazon.QLDB.Driver.IntegrationTests/StatementExecutionTests.cs [490:546]
public void Execute_DeleteSingleDocument_DocumentIsDeleted()
{
// Given.
// Create Ion struct to insert.
IIonValue ionStruct = ValueFactory.NewEmptyStruct();
ionStruct.SetField(Constants.ColumnName, ValueFactory.NewString(Constants.SingleDocumentValue));
var query = $"INSERT INTO {Constants.TableName} ?";
var count = qldbDriver.Execute(txn =>
{
var result = txn.Execute(query, ionStruct);
var count = 0;
foreach (var row in result)
{
count++;
}
return count;
});
Assert.AreEqual(1, count);
// When.
var deleteQuery = $@"DELETE FROM { Constants.TableName}
WHERE {Constants.ColumnName} = '{Constants.SingleDocumentValue}'";
var deletedCount = qldbDriver.Execute(txn =>
{
var result = txn.Execute(deleteQuery);
var count = 0;
foreach (var row in result)
{
count++;
}
return count;
});
Assert.AreEqual(1, deletedCount);
// Then.
var searchQuery = $"SELECT COUNT(*) FROM {Constants.TableName}";
var searchCount = qldbDriver.Execute(txn =>
{
var result = txn.Execute(searchQuery);
int count = -1;
foreach (var row in result)
{
// This gives:
// {
// _1: 1
// }
IIonValue ionValue = row.GetField("_1");
count = ((IIonInt)ionValue).IntValue;
}
return count;
});
Assert.AreEqual(0, searchCount);
}