Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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
        }
Ejemplo n.º 6
0
        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"]);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
 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
     };
 }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
 public void Setup()
 {
     repository = new Mock <ICartRepository <Cart> >();
     controller = new RentController(repository.Object);
 }