Exemplo n.º 1
0
        public void Get_By_Transaction_Status_Should_Return_Transaction_Correctly_Two_Transactions()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);
            this.secondTransaction = new Transaction(50, "Stavri", "Ivan", 90, TransactionStatus.Successfull);
            chainblock.Add(this.secondTransaction);

            var transaction = chainblock
                              .GetByTransactionStatus(TransactionStatus.Successfull)
                              .ToList();

            // Assert
            Assert.That(transaction, Is.Not.Null);

            Assert.That(transaction[0].Id, Is.EqualTo(50));
            Assert.That(transaction[1].Id, Is.EqualTo(10));

            Assert.That(transaction[0].From, Is.EqualTo("Stavri"));
            Assert.That(transaction[1].From, Is.EqualTo("Ivan"));

            Assert.That(transaction[0].To, Is.EqualTo("Ivan"));
            Assert.That(transaction[1].To, Is.EqualTo("Samuil"));

            Assert.That(transaction[0].Amount, Is.EqualTo(90));
            Assert.That(transaction[1].Amount, Is.EqualTo(50));

            Assert.That(transaction[0].Status, Is.EqualTo(TransactionStatus.Successfull));
            Assert.That(transaction[1].Status, Is.EqualTo(TransactionStatus.Successfull));
        }
Exemplo n.º 2
0
        public void Get_By_Receiver_And_Amount_Range_Should_Work_Correctly()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            var transaction1 = new Transaction(100, "Peshko", "Samuilcho", 100, TransactionStatus.Successfull);
            var transaction2 = new Transaction(101, "Peshko", "Samuilcho", 200, TransactionStatus.Successfull);
            var transaction3 = new Transaction(102, "Peshko", "Samuilcho", 300, TransactionStatus.Successfull);
            var transaction4 = new Transaction(103, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);
            var transaction5 = new Transaction(104, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);

            // Act
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);
            chainblock.Add(transaction4);
            chainblock.Add(transaction5);

            var receiver = "Samuilcho";

            var lo = 200;
            var hi = 400;

            var transactions = chainblock
                               .GetByReceiverAndAmountRange(receiver, lo, hi)
                               .ToList();

            // Assert
            Assert.That(transactions[0].Id, Is.EqualTo(102));
            Assert.That(transactions[1].Id, Is.EqualTo(101));
        }
Exemplo n.º 3
0
        public void Get_By_Receiver_Ordered_By_Amount_Descending(string receiver)
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act

            var transaction1 = new Transaction(100, "Peshko", "Samuilcho", 100, TransactionStatus.Successfull);
            var transaction2 = new Transaction(101, "Peshko", "Samuilcho", 200, TransactionStatus.Successfull);
            var transaction3 = new Transaction(102, "Peshko", "Samuilcho", 300, TransactionStatus.Successfull);
            var transaction4 = new Transaction(103, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);
            var transaction5 = new Transaction(104, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);

            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);
            chainblock.Add(transaction4);
            chainblock.Add(transaction5);

            var result = chainblock
                         .GetByReceiverOrderedByAmountThenById(receiver)
                         .ToList();

            // Assert
            Assert.That(result[0].Id, Is.EqualTo(104));
            Assert.That(result[1].Id, Is.EqualTo(103));
            Assert.That(result[2].Id, Is.EqualTo(102));
            Assert.That(result[3].Id, Is.EqualTo(101));
            Assert.That(result[4].Id, Is.EqualTo(100));
        }
Exemplo n.º 4
0
        public void Get_By_Transaction_Status_And_Maximum_Amount_Should_Work_Correctly_With_Empty_Collection()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            var transaction1 = new Transaction(100, "Peshko", "Samuilcho", 100, TransactionStatus.Successfull);
            var transaction2 = new Transaction(101, "Peshko", "Samuilcho", 200, TransactionStatus.Successfull);
            var transaction3 = new Transaction(102, "Peshko", "Samuilcho", 300, TransactionStatus.Successfull);
            var transaction4 = new Transaction(103, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);
            var transaction5 = new Transaction(104, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);

            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);
            chainblock.Add(transaction4);
            chainblock.Add(transaction5);

            var status = TransactionStatus.Successfull;
            var amount = 50;

            var transactions = chainblock
                               .GetByTransactionStatusAndMaximumAmount(status, amount)
                               .ToList();

            // Assert
            Assert.That(transactions.Count == 0);
        }
Exemplo n.º 5
0
        public void Get_All_In_Amount_Range_Should_Work_Correctly()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            var transaction0 = new Transaction(99, "Peshko", "Samuilcho", 10, TransactionStatus.Successfull);
            var transaction1 = new Transaction(100, "Peshko", "Samuilcho", 100, TransactionStatus.Successfull);
            var transaction2 = new Transaction(101, "Peshko", "Samuilcho", 200, TransactionStatus.Successfull);
            var transaction3 = new Transaction(102, "Peshko", "Samuilcho", 300, TransactionStatus.Successfull);
            var transaction4 = new Transaction(103, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);
            var transaction5 = new Transaction(104, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);

            // Act
            chainblock.Add(transaction0);
            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);
            chainblock.Add(transaction4);
            chainblock.Add(transaction5);

            var lo = 100;
            var hi = 400;

            var transactions = chainblock
                               .GetAllInAmountRange(lo, hi)
                               .ToList();

            // Assert
            Assert.That(transactions[0].Id, Is.EqualTo(100));
            Assert.That(transactions[1].Id, Is.EqualTo(101));
            Assert.That(transactions[2].Id, Is.EqualTo(102));
            Assert.That(transactions[3].Id, Is.EqualTo(103));
            Assert.That(transactions[4].Id, Is.EqualTo(104));
        }
Exemplo n.º 6
0
        public void Get_By_Sender_And_Minimum_Amount_Should_Work_Correctly()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            var transaction1 = new Transaction(100, "Peshko", "Samuilcho", 100, TransactionStatus.Successfull);
            var transaction2 = new Transaction(101, "Peshko", "Samuilcho", 200, TransactionStatus.Successfull);
            var transaction3 = new Transaction(102, "Peshko", "Samuilcho", 300, TransactionStatus.Successfull);
            var transaction4 = new Transaction(103, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);
            var transaction5 = new Transaction(104, "Peshko", "Samuilcho", 400, TransactionStatus.Successfull);

            chainblock.Add(transaction1);
            chainblock.Add(transaction2);
            chainblock.Add(transaction3);
            chainblock.Add(transaction4);
            chainblock.Add(transaction5);

            var sender = "Peshko";
            var amount = 200;

            var transactions = chainblock
                               .GetBySenderAndMinimumAmountDescending(sender, amount)
                               .ToList();

            // Assert
            Assert.That(transactions[0].Id, Is.EqualTo(104));
            Assert.That(transactions[1].Id, Is.EqualTo(103));
            Assert.That(transactions[2].Id, Is.EqualTo(102));
            Assert.That(transactions[3].Id, Is.EqualTo(101));
        }
Exemplo n.º 7
0
        public void SetUp()
        {
            this.chainblock  = new Models.Chainblock();
            this.transaction = new Transaction(id, ts, from, to, amount);

            //First add
            this.chainblock.Add(this.transaction);
        }
Exemplo n.º 8
0
        Get_All_Ordered_By_Amount_Descending_Then_By_Id_Should_Throw_An_Exception_If_There_Is_No_Transactions()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetAllOrderedByAmountDescendingThenById());
        }
Exemplo n.º 9
0
        public void Get_By_Transaction_Status_And_Maximum_Amount_Should_Throw_An_Exception_If_Amount_Is_Zero()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetByTransactionStatusAndMaximumAmount(TransactionStatus.Successfull, -1000), // Act
                "Amount is not under zero");
        }
Exemplo n.º 10
0
        public void Contains_Id_Should_Throw_An_Exception_If_Id_Is_Under_Zero()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <ArgumentOutOfRangeException>(
                () => chainblock.Contains(-10), // Act
                "Id is not under zero");
        }
Exemplo n.º 11
0
        public void Get_By_Sender_And_Minimum_Amount_Should_Throw_An_Exception_If_Amount_Is_Zero()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetBySenderAndMinimumAmountDescending("Ivan", -1000), // Act
                "Amount is not under zero");
        }
Exemplo n.º 12
0
        public void Get_All_In_Amount_Range_Should_Throw_An_Exception_If_Hi_Is_Under_Zero()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetAllInAmountRange(1, -2), // Act
                "Hi is not under zero");
        }
Exemplo n.º 13
0
        public void Contains_Transactions_Should_Throw_An_Exception_If_Transaction_Is_Null()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <ArgumentNullException>(
                () => chainblock.Contains(null), // Act
                "Transaction is not null.");
        }
Exemplo n.º 14
0
        public void Get_By_Sender_And_Minimum_Amount_Descending_Should_Throw_An_Exception_If_No_Transactions_Found()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetBySenderAndMinimumAmountDescending("sender", 1), // Act
                "There is transaction.");
        }
Exemplo n.º 15
0
        public void Get_By_Receiver_And_Amount_Range_Should_Throw_An_Exception_If_No_Transaction_Is_Found()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetByReceiverAndAmountRange("A", 1, 2), // Act
                "There is existing transaction");
        }
Exemplo n.º 16
0
        public void Get_By_Receiver_And_Amount_Range_Should_Throw_An_Exception_If_Hi_Is_Under_Zero()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetByReceiverAndAmountRange("A", 1, -2), // Act
                "Hi is not under zero");
        }
Exemplo n.º 17
0
        public void Get_By_Id_Should_Throw_An_Exception_If_Id_Is_Not_Existing()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetById(1110), // Act
                "This id is existing.");
        }
Exemplo n.º 18
0
        public void Contains_Id_Should_Return_False_If_Not_Existing()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            var isExisting = chainblock.Contains(500);

            // Assert
            Assert.That(isExisting, Is.False);
        }
Exemplo n.º 19
0
        public void Change_Transaction_By_Id_Status_Should_Throw_An_Exception_If_Id_Is_Under_Zero()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            // Assert
            Assert.Throws <ArgumentOutOfRangeException>(
                () => chainblock.ChangeTransactionStatus(-10, TransactionStatus.Aborted), // Act
                "Id is not under zero.");
        }
Exemplo n.º 20
0
        public void Get_By_Id_Should_Throw_An_Exception_If_Id_Is_Under_Zero()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            // Assert
            Assert.Throws <ArgumentOutOfRangeException>(
                () => chainblock.GetById(-100), // Act
                "This id is not zero.");
        }
Exemplo n.º 21
0
        public void Remove_Transaction_By_Id_Should_Throw_An_Exception_If_Id_Is_Not_Found()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.RemoveTransactionById(78), // Act
                "Id is existing.");
        }
Exemplo n.º 22
0
        public void Change_Transaction_By_Id_Status_Should_Throw_An_Exception_If_Id_Is_Not_Found()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.ChangeTransactionStatus(78, TransactionStatus.Aborted), // Act
                "Id is existing.");
        }
Exemplo n.º 23
0
        public void Get_All_Receivers_Should_Throw_An_Exception_If_Status_Is_Not_Existing()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetAllReceiversWithTransactionStatus(TransactionStatus.Aborted), // Act
                "This status is existing.");
        }
Exemplo n.º 24
0
        public void Add_Existing_Transaction_Should_Throw_An_Exception()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            //Act
            chainblock.Add(this.firstTransaction);

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.Add(this.secondTransaction), // Act
                "Transactions are not same.");
        }
Exemplo n.º 25
0
        public void Add_Should_Increase_Count_Correctly_By_One()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            //Act
            chainblock.Add(this.firstTransaction);

            var actualCount   = chainblock.Count;
            var expectedCount = 1;

            // Assert
            Assert.That(actualCount, Is.EqualTo(expectedCount));
        }
Exemplo n.º 26
0
        public void Get_By_Receiver_Ordered_By_Amount_Descending_Should_Throw_An_Exception_If_Collection_Is_Empty()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            string sender = "6i6ko";

            // Assert
            Assert.Throws <InvalidOperationException>(
                () => chainblock.GetByReceiverOrderedByAmountThenById(sender));
        }
Exemplo n.º 27
0
        public void Change_Transaction_By_Id_Status_Should_Change_Status_Correctly()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            chainblock.ChangeTransactionStatus(10, TransactionStatus.Aborted);

            var actualStatus   = this.firstTransaction.Status;
            var expectedStatus = TransactionStatus.Aborted;

            // Assert
            Assert.That(actualStatus, Is.EqualTo(expectedStatus));
        }
Exemplo n.º 28
0
        public void Remove_Transaction_By_Id_Should_Be_Removed_Correctly()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            chainblock.RemoveTransactionById(10);

            var actualCount   = chainblock.Count;
            var expectedCount = 0;

            // Assert
            Assert.That(actualCount, Is.EqualTo(expectedCount));
        }
Exemplo n.º 29
0
        public void Add_Should_Increase_Count_Correctly_By_Two()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            this.secondTransaction = new Transaction(20, "Ivancho", "Samuilcho", 501, TransactionStatus.Successfull);

            //Act
            chainblock.Add(this.firstTransaction);
            chainblock.Add(this.secondTransaction);

            var actualCount   = chainblock.Count;
            var expectedCount = 2;

            // Assert
            Assert.That(actualCount, Is.EqualTo(expectedCount));
        }
Exemplo n.º 30
0
        public void Get_By_Id_Should_Return_Transaction_Correctly()
        {
            // Arrange
            var chainblock = new Models.Chainblock();

            // Act
            chainblock.Add(this.firstTransaction);

            var transaction = chainblock.GetById(10);

            // Assert
            Assert.That(transaction, Is.Not.Null);
            Assert.That(transaction.Id, Is.EqualTo(10));
            Assert.That(transaction.From, Is.EqualTo("Ivan"));
            Assert.That(transaction.To, Is.EqualTo("Samuil"));
            Assert.That(transaction.Amount, Is.EqualTo(50));
            Assert.That(transaction.Status, Is.EqualTo(TransactionStatus.Successfull));
        }