Пример #1
0
        public void Chainblock_GetByIdMethodThrowsExceptionWhenAccesingIncorrectId(int id)
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Failed,
                                              "Gosho", "Pesho", 250);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Failed,
                                               "Gosho", "Stamat", 300);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Kiro", 350);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Failed,
                                               "Gosho", "Pesho", 400);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);

            Assert.Throws <InvalidOperationException>(() => chainblock.GetById(id));
        }
Пример #2
0
        public void Chainblock_ContainsMethodReturnsFalse()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 200);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 200);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 200);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 200);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);

            Assert.IsFalse(chainblock.Contains(transaction3));
        }
Пример #3
0
        public void Chainblock_GetByIdMethodReturnsCorrectTransaction()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Failed,
                                              "Gosho", "Pesho", 250);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Failed,
                                               "Gosho", "Stamat", 300);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Kiro", 350);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Failed,
                                               "Gosho", "Pesho", 400);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);
            var result = chainblock.GetById(1);

            Assert.AreEqual(result.CompareTo(transaction), 0);
        }
Пример #4
0
        public void Chainblock_GetAllOrderedByAmountDescendingThenByIdReturnsCorrectCollection()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 250);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 300);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 350);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 400);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);
            List <ITransaction> listOfTransactions = new List <ITransaction>()
            {
                transaction, transaction1, transaction2, transaction3
            };

            listOfTransactions = listOfTransactions.OrderByDescending(x => x.Amount).ThenBy(x => x.Id).ToList();

            var result = chainblock.GetAllOrderedByAmountDescendingThenById();

            CollectionAssert.AreEqual(result, listOfTransactions);
        }
Пример #5
0
        public void Chainblock_GetAllSendersWithTransactionStatusThrowsExceptionWhenSuchStatusCannotBeFound()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Failed,
                                              "Gosho", "Pesho", 250);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Failed,
                                               "Gosho", "Stamat", 300);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Kiro", 350);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Failed,
                                               "Gosho", "Pesho", 400);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);

            Assert.Throws <InvalidOperationException>(() => chainblock.GetAllSendersWithTransactionStatus(TransactionStatus.Aborted));
        }
Пример #6
0
        public void Chainblock_GetAllInAmountRangeReturnsEmptyCollection()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 250);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 300);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 350);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 400);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);


            var result = chainblock.GetAllInAmountRange(401, 500);

            Assert.AreEqual(result.Count(), 0);
        }
Пример #7
0
        public void Chainblock_ChangeTransactionStatusThrowsExceptionWhenIdIsMissing()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 200);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 200);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 200);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 200);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);

            Assert.Throws <ArgumentException>(() => chainblock.ChangeTransactionStatus(8, TransactionStatus.Failed));
        }
Пример #8
0
        public void Chainblock_AddMethodThrowsExceptionWhenIdHasAlredyBeenAdded()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 200);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);

            Assert.Throws <InvalidOperationException>(() => chainblock.Add(transaction));
        }
Пример #9
0
        public void Chainblock_AddMethodAddsElemets()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 200);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);

            Assert.AreEqual(chainblock.Count, 1);
        }
Пример #10
0
        public void Chainblock_GetAllOrderedByAmountDescendingThenByIdThrwsExceptionWhenCollectionIsEmpty()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 250);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 300);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 350);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 400);
            var chainblock = new ChainblockTransaction();

            Assert.Throws <InvalidOperationException>(() => chainblock.GetAllOrderedByAmountDescendingThenById());
        }
Пример #11
0
        public void Chainblock_CountMethodReturnsCorrectValue()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 200);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 200);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 200);

            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);

            Assert.AreEqual(chainblock.Count, 3);
        }
Пример #12
0
        public void Chainblock_GetAllInAmountRangeReturnsCorrectElements()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Successfull,
                                              "Gosho", "Pesho", 250);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 300);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 350);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Successfull,
                                               "Gosho", "Pesho", 400);
            var chainblock = new ChainblockTransaction();

            List <ITransaction> listOfTransactions = new List <ITransaction>()
            {
                transaction, transaction1, transaction2, transaction3
            };

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);

            var result = chainblock.GetAllInAmountRange(250, 400);

            Assert.AreEqual(result.Count(), 4);
            int index = 0;

            foreach (var item in result)
            {
                Assert.AreEqual(item.CompareTo(listOfTransactions[index++]), 0);
            }
        }
Пример #13
0
        public void Chainblock_GetAllSendersWithTransactionStatusReturnsCorrectCollectionOfNames()
        {
            var transaction = new Transaction(1,
                                              TransactionStatus.Failed,
                                              "Gosho1", "Pesho", 250);

            var transaction1 = new Transaction(2,
                                               TransactionStatus.Failed,
                                               "Gosho2", "Stamat", 300);

            var transaction2 = new Transaction(3,
                                               TransactionStatus.Successfull,
                                               "Gosho3", "Kiro", 350);

            var transaction3 = new Transaction(4,
                                               TransactionStatus.Failed,
                                               "Gosho4", "Pesho", 400);
            var chainblock = new ChainblockTransaction();

            chainblock.Add(transaction);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);

            List <ITransaction> listOfTransactions = new List <ITransaction>()
            {
                transaction, transaction1, transaction2, transaction3
            };
            var result       = listOfTransactions.Where(x => x.Status == TransactionStatus.Failed).OrderByDescending(x => x.Amount).Select(x => x.From).ToList();
            var actualResult = chainblock.GetAllSendersWithTransactionStatus(TransactionStatus.Failed);
            int index        = 0;

            foreach (var item in actualResult)
            {
                Assert.AreEqual(item, result.ElementAt(index++));
            }
        }
Пример #14
0
        public void Chainblock_GetByIdMethodThrowsExceptionWhenCollectionIsEmpty()
        {
            var chainblock = new ChainblockTransaction();

            Assert.Throws <InvalidOperationException>(() => chainblock.GetById(1));
        }
Пример #15
0
        public void Chainblock_GetAllSendersWithTransactionStatusThrowsExceptionWhenCollectionIsEmpty()
        {
            var chainblock = new ChainblockTransaction();

            Assert.Throws <InvalidOperationException>(() => chainblock.GetAllSendersWithTransactionStatus(TransactionStatus.Aborted));
        }