in Amazon.QLDB.Driver.IntegrationTests/StatementExecutionTests.cs [309:356]
public void Execute_InsertDocumentWithMultipleFields_DocumentIsInserted()
{
// Given.
// Create Ion struct to insert.
IIonValue ionStruct = ValueFactory.NewEmptyStruct();
ionStruct.SetField(Constants.ColumnName, ValueFactory.NewString(Constants.SingleDocumentValue));
ionStruct.SetField(Constants.SecondColumnName, ValueFactory.NewString(Constants.SingleDocumentValue));
// When.
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);
// Then.
var searchQuery = $@"SELECT {Constants.ColumnName}, {Constants.SecondColumnName} FROM {Constants.TableName}
WHERE {Constants.ColumnName} = '{Constants.SingleDocumentValue}' AND {Constants.SecondColumnName} = '{Constants.SingleDocumentValue}'";
IIonValue value = qldbDriver.Execute(txn =>
{
var result = txn.Execute(searchQuery);
IIonValue value = null;
foreach (var row in result)
{
value = row;
}
return value;
});
var ionReader = IonReaderBuilder.Build(value);
ionReader.MoveNext();
ionReader.StepIn();
ionReader.MoveNext();
Assert.AreEqual(Constants.ColumnName, ionReader.CurrentFieldName);
Assert.AreEqual(Constants.SingleDocumentValue, ionReader.StringValue());
ionReader.MoveNext();
Assert.AreEqual(Constants.SecondColumnName, ionReader.CurrentFieldName);
Assert.AreEqual(Constants.SingleDocumentValue, ionReader.StringValue());
}