public async Task GetLedgerByAccountAsync_ExceptionThrownAccessingDatabase() { // Arrange _mockDatabaseFactory.Setup(f => f.CreateConnection()).Returns(_mockDatabase.Object); _mockDatabase.Setup(d => d.FetchAsync <Ledger>(It.IsAny <string>(), It.IsAny <object>())) .ThrowsAsync(new Exception()); var ledgerRepository = new LedgerRepository(_mockDatabaseFactory.Object); // Act & Assert await Assert.ThrowsAsync <Exception>(() => ledgerRepository.GetLedgerByAccountAsync(0)); _mockDatabase.Verify(d => d.FetchAsync <Ledger>(It.IsAny <string>(), It.IsAny <object>()), Times.Once); }
public async Task GetLedgerByAccountAsync_ListOfLedgerEntriesRetrievedSuccessfully() { // Arrange var expectedLedgerEntries = _fixture.CreateMany <Ledger>().ToList(); _mockDatabaseFactory.Setup(f => f.CreateConnection()).Returns(_mockDatabase.Object); _mockDatabase.Setup(d => d.FetchAsync <Ledger>(It.IsAny <string>(), It.IsAny <object>())) .ReturnsAsync(expectedLedgerEntries); var ledgerRepository = new LedgerRepository(_mockDatabaseFactory.Object); // Act var result = await ledgerRepository.GetLedgerByAccountAsync(0); // Assert Assert.Equal(expectedLedgerEntries, result); _mockDatabase.Verify(d => d.FetchAsync <Ledger>(It.IsAny <string>(), It.IsAny <object>()), Times.Once); }