I have a method as below.
I would like to write two test cases for the below method.
1) A successful transaction with committing data
2) A failed transaction with rollback data
How can I write a test case with transaction involved and make success and fail?
public async Task<List<string>> UpdateRequest(MetaData data, List<string> Ids, string requestedBy)
{
var transaction = await _databaseUtility.CreateTransaction(ConnectionString);
var messages = new List<string>();
try
{
// Update data
await _testDal.Update(data, requestedBy, transaction);
// Update status
await _sampleDal.UpdateStatus(Ids, requestedBy, transaction);
// Update saved data
await _testDal.UpdateSavedData(data, requestedBy, transaction);
_databaseUtility.CommitTransaction(transaction);
}
catch (Exception exception)
{
_databaseUtility.RollbackTransaction(transaction);
}
return messages;
}