public void GetByTransactionStatusAndMaximumAmount_ReturnsEmptyCollection_WhenThereAreNoTransactions() { TransactionStatus status = TransactionStatus.Successfull; double amount = 90; Assert.That(testChainblock.GetByTransactionStatusAndMaximumAmount(status, amount), Is.Empty); }
public void GetByTransactionStatusAndMaximumAmount_ShouldWorkCorrectly() { //Arrange IChainblock cb = new Chainblock(); Transaction tx1 = new Transaction(2, TransactionStatus.Successfull, "valq", "pesho", 14.8); Transaction tx2 = new Transaction(1, TransactionStatus.Successfull, "valq", "pesho", 14.8); Transaction tx3 = new Transaction(4, TransactionStatus.Successfull, "valq", "pesho", 15.6); Transaction tx4 = new Transaction(3, TransactionStatus.Successfull, "valq", "pesho", 15.6); Transaction tx5 = new Transaction(8, TransactionStatus.Successfull, "valq", "pesho", 17.8); List <Transaction> expected = new List <Transaction>() { tx3, tx4, tx1, tx2 }; //Act cb.Add(tx1); cb.Add(tx3); cb.Add(tx2); cb.Add(tx4); cb.Add(tx5); //Assert List <Transaction> actual = cb .GetByTransactionStatusAndMaximumAmount(TransactionStatus.Successfull, 17.0) .ToList(); CollectionAssert.AreEqual(expected, actual); }
public static void Main() { IChainblock cb = new Chainblock(); Transaction tx1 = new Transaction(2, TransactionStatus.Successfull, "valq", "pesho", 14.8); Transaction tx2 = new Transaction(1, TransactionStatus.Successfull, "valq", "pesho", 14.8); Transaction tx3 = new Transaction(4, TransactionStatus.Successfull, "valq", "pesho", 15.6); Transaction tx4 = new Transaction(3, TransactionStatus.Successfull, "valq", "pesho", 15.6); Transaction tx5 = new Transaction(8, TransactionStatus.Failed, "valq", "pesho", 17.8); //List<Transaction> expected = new List<Transaction>() //{ // tx2 //}; //Act cb.Add(tx1); cb.Add(tx3); cb.Add(tx2); cb.Add(tx4); cb.Add(tx5); cb.RemoveTransactionById(tx1.Id); //Assert List <Transaction> actual = cb .GetByTransactionStatusAndMaximumAmount(TransactionStatus.Successfull, 15.0) .ToList(); Console.WriteLine(cb.Count); Console.WriteLine(string.Join(Environment.NewLine, actual)); }
public void GetByTransactionStatusAndMaximumAmount_ShouldReturnEmptyCollection() { //Arrange IChainblock cb = new Chainblock(); Transaction tx1 = new Transaction(2, TransactionStatus.Successfull, "valq", "pesho", 14.8); Transaction tx2 = new Transaction(1, TransactionStatus.Successfull, "valq", "pesho", 14.8); Transaction tx3 = new Transaction(4, TransactionStatus.Successfull, "valq", "pesho", 15.6); Transaction tx4 = new Transaction(3, TransactionStatus.Successfull, "valq", "pesho", 15.6); Transaction tx5 = new Transaction(8, TransactionStatus.Failed, "valq", "pesho", 17.8); //Act cb.Add(tx1); cb.Add(tx3); cb.Add(tx2); cb.Add(tx4); cb.Add(tx5); //Assert List <Transaction> actual = cb .GetByTransactionStatusAndMaximumAmount(TransactionStatus.Unauthorized, 5) .ToList(); CollectionAssert.AreEqual(new List <Transaction>(), actual); cb = new Chainblock(); actual = cb .GetByTransactionStatusAndMaximumAmount(TransactionStatus.Unauthorized, 10) .ToList(); CollectionAssert.AreEqual(new List <Transaction>(), actual); }
public void GetByTransactionStatusAndMaximumAmount_ShouldWorkFast() { IChainblock cb = new Chainblock(); List <Transaction> txs = new List <Transaction>(); Random rand = new Random(); for (int i = 0; i < 100000; i++) { int amount = rand.Next(0, 1000); Transaction tx = new Transaction(i, TransactionStatus.Successfull, i.ToString(), i.ToString(), amount); cb.Add(tx); if (amount <= 500) { txs.Add(tx); } } txs = txs.OrderByDescending(x => x.Amount).ToList(); int count = cb.Count; Assert.AreEqual(100000, count); Stopwatch watch = new Stopwatch(); watch.Start(); IEnumerable <Transaction> all = cb.GetByTransactionStatusAndMaximumAmount( TransactionStatus.Successfull, 500); int c = 0; foreach (Transaction tx in all) { Assert.AreSame(tx, txs[c]); c++; } watch.Stop(); long l1 = watch.ElapsedMilliseconds; Assert.IsTrue(l1 < 150); Assert.AreEqual(txs.Count, c); }
public void GetByTransactionStatusAndMaximumAmount_ShouldReturnEmptyCollection() { var result = chainblock.GetByTransactionStatusAndMaximumAmount(TransactionStatus.Aborted, 100); Assert.IsEmpty(result); }