public void GetById_ReturnsMatchingTransaction()
        {
            // arrange
            var allTransactions = new List <Transaction>()
            {
                new Transaction
                {
                    TransactionId = 1
                },
                new Transaction
                {
                    TransactionId = 2
                },
            };

            _transactionRepositoryMock.Setup(x => x.GetById(It.IsAny <long>()))
            .Returns <long>((id) => allTransactions.FirstOrDefault(t => t.TransactionId == id));

            var subject = new Api.Controllers.TransactionsController(_transactionService);

            // act
            var result = subject.Get(2);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.TransactionId);
            _transactionRepositoryMock.Verify(x => x.GetById(2), Times.Once);
            _transactionRepositoryMock.Verify(x => x.All(), Times.Never);
        }
        public void GetById_ReturnsMatchingTransaction()
        {
            // arrange
            var allTransactions = new List<Transaction>(){
                new Transaction
                {
                    TransactionId = 1
                },
                new Transaction
                {
                    TransactionId = 2
                },
            };

            _transactionRepositoryMock.Setup(x => x.GetById(It.IsAny<long>()))
                .Returns<long>((id) => allTransactions.FirstOrDefault(t=>t.TransactionId == id));

            var subject = new Api.Controllers.TransactionsController(_transactionService);

            // act
            var result = subject.Get(2);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(2,result.TransactionId);
            _transactionRepositoryMock.Verify(x => x.GetById(2), Times.Once);
            _transactionRepositoryMock.Verify(x => x.All(), Times.Never);
        }
        public void Get_ReturnsListOfTransactions()
        {
            // arrange
            var allTransactions = new List <Transaction>()
            {
                new Transaction
                {
                    TransactionId = 1
                },
                new Transaction
                {
                    TransactionId = 2
                },
            };

            _transactionRepositoryMock.Setup(x => x.All()).Returns(allTransactions);

            var subject = new Api.Controllers.TransactionsController(_transactionService);

            // act
            var result = subject.Get();

            // assert
            Assert.IsNotNull(result);
            CollectionAssert.AreEqual(allTransactions, result.ToList());
            _transactionRepositoryMock.Verify(x => x.All(), Times.Once);
        }
        public void Get_ReturnsListOfTransactions()
        {
            // arrange
            var allTransactions = new List<Transaction>(){
                new Transaction
                {
                    TransactionId = 1
                },
                new Transaction
                {
                    TransactionId = 2
                },
            };

            _transactionRepositoryMock.Setup(x => x.All()).Returns(allTransactions);

            var subject = new Api.Controllers.TransactionsController(_transactionService);

            // act
            var result = subject.Get();

            // assert
            Assert.IsNotNull(result);
            CollectionAssert.AreEqual(allTransactions, result.ToList());
            _transactionRepositoryMock.Verify(x => x.All(), Times.Once);
        }