Ejemplo n.º 1
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.º 2
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);
        }