Exemple #1
0
        public void AddProductPostNoActiveTransaction()
        {
            Mock <DataContext>         dbMock = new Mock <DataContext>();
            Mock <ITransactionManager> transactionManagerMock = new Mock <ITransactionManager>();
            TransactionController      controller             = new TransactionController(dbMock.Object, transactionManagerMock.Object);

            // arrange
            IActionResult result = controller.AddProductPost(null);

            // assert
            Assert.IsType <RedirectToActionResult>(result);
        }
Exemple #2
0
        public void AddProductPostToBuy()
        {
            Mock <DataContext> dbMock = new Mock <DataContext>();

            dbMock.SetupGet(q => q.Products).Returns(new[]
            {
                new Product()
                {
                    Id          = 1,
                    Name        = "Poster van Chris Kockelkorn",
                    PointsWorth = 5,
                },
                new Product()
                {
                    Id          = 2,
                    Name        = "Damian zijn ketting",
                    PointsWorth = 3,
                },
                new Product()
                {
                    Id          = 3,
                    Name        = "CD van Katy Pery",
                    PointsWorth = 1,
                }
            }.AsQueryable().BuildMockDbSet().Object);

            Mock <ITransactionManager> transactionManagerMock = new Mock <ITransactionManager>();

            transactionManagerMock.SetupGet(q => q.ActiveTransaction).Returns(new Transaction()
            {
                TransactionId = 1
            });
            transactionManagerMock.Setup(q => q.AddProductForSellToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()));
            TransactionController controller = new TransactionController(dbMock.Object, transactionManagerMock.Object);

            // arrange
            IActionResult result = controller.AddProductPost(new TransactionAddProductViewModel()
            {
                IsForSell         = false,
                Points            = 3,
                NumberOfProducts  = 1,
                SelectedProductId = 1,
            });

            // assert
            Assert.IsType <RedirectToActionResult>(result);
            transactionManagerMock.Verify(q => q.AddProductForSellToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()), Times.Never());
            transactionManagerMock.Verify(q => q.AddProductToBuyToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()), Times.Once());
        }
Exemple #3
0
        public void AddProductPostForSell()
        {
            Mock <DataContext> dbMock = new Mock <DataContext>();

            dbMock.SetupGet(q => q.Products).Returns(new[]
            {
                new Product()
                {
                    Id          = 1,
                    Name        = "Poster van Marcel van den Beek",
                    PointsWorth = 4,
                },
                new Product()
                {
                    Id          = 2,
                    Name        = "Wesley zijn horloge",
                    PointsWorth = 7,
                },
                new Product()
                {
                    Id          = 2,
                    Name        = "CD van Imagine dDagons",
                    PointsWorth = 3,
                }
            }.AsQueryable().BuildMockDbSet().Object);

            Mock <ITransactionManager> transactionManagerMock = new Mock <ITransactionManager>();

            transactionManagerMock.SetupGet(q => q.ActiveTransaction).Returns(new Transaction()
            {
                TransactionId = 1
            });
            transactionManagerMock.Setup(q => q.AddProductForSellToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()));
            TransactionController controller = new TransactionController(dbMock.Object, transactionManagerMock.Object);

            // arrange
            IActionResult result = controller.AddProductPost(new TransactionAddProductViewModel()
            {
                IsForSell         = true,
                Points            = 3,
                NumberOfProducts  = 1,
                SelectedProductId = 1,
            });

            // assert
            Assert.IsType <RedirectToActionResult>(result);
            transactionManagerMock.Verify(q => q.AddProductForSellToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()), Times.Once());
            transactionManagerMock.Verify(q => q.AddProductToBuyToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()), Times.Never());
        }
Exemple #4
0
        public void AddProductPostNoProductMatch()
        {
            Mock <DataContext> dbMock = new Mock <DataContext>();

            dbMock.SetupGet(q => q.Products).Returns(new[]
            {
                new Product()
                {
                    Id          = 1,
                    Name        = "Poster van Vincent van der Meer",
                    PointsWorth = 4,
                },
                new Product()
                {
                    Id          = 2,
                    Name        = "Arne zijn sneakers",
                    PointsWorth = 7,
                },
                new Product()
                {
                    Id          = 3,
                    Name        = "CD van Rammstein",
                    PointsWorth = 3,
                }
            }.AsQueryable().BuildMockDbSet().Object);

            Mock <ITransactionManager> transactionManagerMock = new Mock <ITransactionManager>();

            transactionManagerMock.SetupGet(q => q.ActiveTransaction).Returns(new Transaction()
            {
                TransactionId = 1
            });
            transactionManagerMock.Setup(q => q.AddProductForSellToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()));
            TransactionController controller = new TransactionController(dbMock.Object, transactionManagerMock.Object);

            // arrange
            IActionResult result = controller.AddProductPost(new TransactionAddProductViewModel()
            {
                IsForSell         = true,
                Points            = 3,
                NumberOfProducts  = 1,
                SelectedProductId = 4,
            });

            // assert
            Assert.IsType <ViewResult>(result);
            transactionManagerMock.Verify(q => q.AddProductForSellToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()), Times.Never());
            transactionManagerMock.Verify(q => q.AddProductToBuyToTransaction(It.IsAny <Product>(), It.IsAny <byte>(), It.IsAny <short?>()), Times.Never());
        }