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); }
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()); }
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()); }
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()); }