public void SaveLedgersAndRetreiveByTradeIdTest_SavesMultipleObjectInDatabase_ChecksIfTheoutputIsAsExpected() { Ledger ledger = new Ledger("1234", DateTime.Now, LedgerType.Trade, new Currency("LTC", true), 1000.543m, 0.005m, 23000, "trade123", "order123", null, null, new AccountId(1)); _persistanceRepository.SaveOrUpdate(ledger); Ledger ledger2 = new Ledger("12345", DateTime.Now, LedgerType.Trade, new Currency("LTC", true), 2000.543m, 0.005m, 3000, "trade123", "order1234", null, null, new AccountId(1)); _persistanceRepository.SaveOrUpdate(ledger2); Thread.Sleep(500); // Retreives the list in descending order of time List <Ledger> retrievedLedgers = _ledgerRepository.GetLedgersByTradeId("trade123"); Assert.IsNotNull(retrievedLedgers); Assert.AreEqual(2, retrievedLedgers.Count); Assert.AreEqual(ledger.Currency.Name, retrievedLedgers[0].Currency.Name); Assert.AreEqual(ledger.LedgerId, retrievedLedgers[0].LedgerId); Assert.AreEqual(ledger.LedgerType, retrievedLedgers[0].LedgerType); Assert.AreEqual(ledger.Amount, retrievedLedgers[0].Amount); Assert.AreEqual(ledger.Fee, retrievedLedgers[0].Fee); Assert.AreEqual(ledger.Balance, retrievedLedgers[0].Balance); Assert.AreEqual(ledger.TradeId, retrievedLedgers[0].TradeId); Assert.AreEqual(ledger.OrderId, retrievedLedgers[0].OrderId); Assert.AreEqual(ledger.AccountId.Value, retrievedLedgers[0].AccountId.Value); Assert.AreEqual(ledger2.Currency.Name, retrievedLedgers[1].Currency.Name); Assert.AreEqual(ledger2.LedgerId, retrievedLedgers[1].LedgerId); Assert.AreEqual(ledger2.LedgerType, retrievedLedgers[1].LedgerType); Assert.AreEqual(ledger2.Amount, retrievedLedgers[1].Amount); Assert.AreEqual(ledger2.Fee, retrievedLedgers[1].Fee); Assert.AreEqual(ledger2.Balance, retrievedLedgers[1].Balance); Assert.AreEqual(ledger2.TradeId, retrievedLedgers[1].TradeId); Assert.AreEqual(ledger2.OrderId, retrievedLedgers[1].OrderId); Assert.AreEqual(ledger2.AccountId.Value, retrievedLedgers[1].AccountId.Value); }