public void ShouldRemoveControllerSuffix() { // Arrange var serviceProviderMock = new Mock <IServiceProvider>(); var mapperMock = new Mock <IMapper>(); var urlHelperMock = new Mock <IUrlHelper>(MockBehavior.Strict); var statusHelperMock = new Mock <StatusHelper>(); var xmlSchemaValidatorMock = new Mock <IRentXmlSchemaValidator>(); var requestMock = new Mock <HttpRequest>(); var httpContextMock = Mock.Of <HttpContext>(_ => _.Request == requestMock.Object); var controllerContext = new ControllerContext() { HttpContext = httpContextMock }; var values = new { }; var actionName = "GetAll"; var controllerName = "Rent"; var scheme = "http"; requestMock.Setup(x => x.Scheme).Returns(scheme); urlHelperMock.Setup(url => url.Action(It.IsAny <UrlActionContext>())).Returns("mock/url"); var controller = new RentController(serviceProviderMock.Object, mapperMock.Object, xmlSchemaValidatorMock.Object) { ControllerContext = controllerContext, Url = urlHelperMock.Object }; //Act UrlUtls.URI(controller, "RentController", "GetAll", values); //Assert urlHelperMock.Verify(url => url.Action(It.Is <UrlActionContext>(i => i.Action == actionName && i.Controller == controllerName && i.Protocol == scheme)), Times.Once()); }
public void Setup() { _mockRent = new Mock <IRentService>(); _mockRent.Setup(x => x.GetCars()).Returns(new List <CarDTO>()); _mockRent.Setup(x => x.GetCar(1)).Returns(new CarDTO()); _mockMapper = new Mock <IRentMapperDM>(); _mockMapper.Setup(x => x.ToCarDM.Map <IEnumerable <CarDTO>, List <CarDM> >(new List <CarDTO>())).Returns(new List <CarDM>()); _mockMapper.Setup(x => x.ToCarDM.Map <CarDTO, CarDM>(new CarDTO())).Returns(new CarDM()); _controller = new RentController(_mockRent.Object, _mockMapper.Object); }
public void RentInsuficientBalance() { //arrange var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); tempData["Funds"] = ""; var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object) { TempData = tempData }; var testUser = new User { Id = 1, UserName = "******", Balance = 10, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, RentPeriod = 5 }; var testGame = new Game { Id = 1, Name = "God of War", Quantity = 5, }; _gameList.Add(testGame); RentViewModel rentView = new RentViewModel { Rent = testRent, RentedGame = testRent.GameRented }; // inject http session variables _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; _usersList.Add(testUser); // act var result = controller.Rent(rentView); //assert Assert.AreEqual(0, testUser.RentOrders.Count); Assert.AreEqual(0, _rentList.Count); Assert.AreEqual("Not enough funds, payment is 15$!", tempData["Funds"]); var viewResult = (ViewResult)result.Result; Assert.AreEqual("Index", viewResult.ViewName); }
public async Task DisplayRents() { //Arrange _broker = new MessageBroker(new ConnectionFactory() { Uri = new Uri("amqp://*****:*****@reindeer.rmq.cloudamqp.com/zswjrhxx") }.CreateConnection()); var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object); var testUser = new User { Id = 1, UserName = "******", Balance = 120, RentOrders = new List <RentOrder>() }; var testGame = new Game { Id = 1, Name = "God of War", Quantity = 4 }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, CurrentRentedDay = DateTime.Today, RentPeriod = 5 }; _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; _gameList.Add(testGame); _usersList.Add(testUser); RentViewModel rentView = new RentViewModel { Rent = testRent, RentedGame = testGame.Name }; //Act var firstRent = controller.Rent(rentView); //Assert Assert.AreEqual(1, _rentList.Count); Assert.AreEqual(1, testUser.RentOrders.Count); //verify quantity for the games after rent Assert.AreEqual(3, testGame.Quantity); // verify expiring dates Assert.AreEqual(DateTime.Today.AddDays(5), testRent.ExpiringDate); // verify user balance Assert.AreEqual(105, testUser.Balance); _rents.Verify(m => m.GetAllObjects(), Times.Never); }
public void TestMethod1() { //Arrange var controller = new RentController(); controller.Request = new HttpRequestMessage(); controller.Configuration = new HttpConfiguration(); var rows = new List <string> { "Tractor;HeavyEquipment;5" }; //Act var response = controller.AddToCart(rows); //Assert }
public void ExtendPeriodFailed() { // arrange var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); tempData["Error"] = ""; var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object) { TempData = tempData }; var testUser = new User { Id = 1, UserName = "******", Balance = 10, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, CurrentRentedDay = DateTime.Today, ExpiringDate = DateTime.Today.AddDays(5), RentPeriod = 5 }; testUser.RentOrders.Add(testRent); // inject http session variables _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; _usersList.Add(testUser); _rentList.Add(testRent); // act // user initially had 115 balance var result = controller.Extend(testRent.Id, 5); //assert Assert.AreEqual(DateTime.Today.AddDays(5), testRent.ExpiringDate); Assert.AreEqual(10, testUser.Balance); var viewResult = (RedirectToActionResult)result.Result; Assert.AreEqual("DisplayRents", viewResult.ActionName); Assert.AreEqual("You don't have enough money to extend it's rent duartion", tempData["Error"]); }
public void ExtendGamePeriod() { // arrange _broker = new MessageBroker(new ConnectionFactory() { Uri = new Uri("amqp://*****:*****@reindeer.rmq.cloudamqp.com/zswjrhxx") }.CreateConnection()); var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object); var testUser = new User { Id = 1, UserName = "******", Balance = 100, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, CurrentRentedDay = DateTime.Today, ExpiringDate = DateTime.Today.AddDays(5), RentPeriod = 5 }; testUser.RentOrders.Add(testRent); // inject http session variables _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; _usersList.Add(testUser); _rentList.Add(testRent); // act // user initially had 115 balance var result = controller.Extend(testRent.Id, 5); //assert Assert.AreEqual(DateTime.Today.AddDays(10), testRent.ExpiringDate); Assert.AreEqual(85, testUser.Balance); var viewResult = (RedirectToActionResult)result.Result; Assert.AreEqual("DisplayRents", viewResult.ActionName); }
public void ReturnGame() { // arrange _broker = new MessageBroker(new ConnectionFactory() { Uri = new Uri("amqp://*****:*****@reindeer.rmq.cloudamqp.com/zswjrhxx") }.CreateConnection()); var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object); var testUser = new User { Id = 1, UserName = "******", Balance = 100, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, CurrentRentedDay = DateTime.Today.AddDays(-3) , ExpiringDate = DateTime.Today.AddDays(2), RentPeriod = 5 }; testUser.RentOrders.Add(testRent); var testGame = new Game { Id = 1, Name = "God of War", Quantity = 4 }; _rentList.Add(testRent); _usersList.Add(testUser); _gameList.Add(testGame); _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; //act var result = controller.Return(testRent.Id); Console.WriteLine(testUser.RentOrders.ToList().ToString()); //assert var viewResult = (RedirectToActionResult)result.Result; Assert.AreEqual("DisplayRents", viewResult.ActionName); Assert.AreEqual(0, testUser.RentOrders.Count); // rent has been removed Assert.AreEqual(91, testUser.Balance); Assert.AreEqual(5, testGame.Quantity); }
public RentControllerTests() { serviceProviderMock = new Mock <IServiceProvider>(); mapperMock = new Mock <IMapper>(); urlHelperMock = new Mock <IUrlHelper>(MockBehavior.Strict); statusHelperMock = new Mock <StatusHelper>(); xmlSchemaValidatorMock = new Mock <IRentXmlSchemaValidator>(); requestMock = new Mock <HttpRequest>(); httpContextMock = Mock.Of <HttpContext>(_ => _.Request == requestMock.Object); controllerContext = new ControllerContext() { HttpContext = httpContextMock }; videoclubDbContextMock = new Mock <IVideoclubDbContext>(); serviceProviderMock.Setup(i => i.GetService(typeof(IVideoclubDbContext))).Returns(videoclubDbContextMock.Object); controller = new RentController(serviceProviderMock.Object, mapperMock.Object, xmlSchemaValidatorMock.Object) { ControllerContext = controllerContext, Url = urlHelperMock.Object }; }
public void ReturnGameSameDayFail() { //arrange var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); tempData["Error"] = ""; var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object) { TempData = tempData }; var testUser = new User { Id = 1, UserName = "******", Balance = 10, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, RentPeriod = 5, CurrentRentedDay = DateTime.Today, TotalPayment = 15f }; _rentList.Add(testRent); _usersList.Add(testUser); //act var result = controller.Return(testRent.Id); //assert Assert.AreEqual("You can't return a game on the same day you rent it!", tempData["Error"]); var redirectResult = (RedirectToActionResult)result.Result; Assert.AreEqual("DisplayRents", redirectResult.ActionName); Assert.AreEqual(5, testRent.RentPeriod); Assert.AreEqual(15f, testRent.TotalPayment); }
public void Setup() { repository = new Mock <ICartRepository <Cart> >(); controller = new RentController(repository.Object); }