public void SearchLodgingsTestBadRequest()
        {
            List <Lodging> listOfLodgingsAvailables = new List <Lodging>()
            {
                lodgingOfCumbres, lodgingOfConrad
            };
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetAvailableLodgingsByTouristSpot(It.IsAny <Guid>())).Throws(new ClientBusinessLogicException());

            SearchOfLodgingController searchOfLodgingController = new SearchOfLodgingController(lodgingManagementMock.Object);
            var result        = searchOfLodgingController.Post(searchOfLodgingModel);
            var createdResult = result as NotFoundObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(404, createdResult.StatusCode);
        }
        public void SearchLodgingsTestInternalError()
        {
            List <Lodging> listOfLodgingsAvailables = new List <Lodging>()
            {
                lodgingOfCumbres, lodgingOfConrad
            };
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetAvailableLodgingsByTouristSpot(It.IsAny <Guid>())).
            Throws(new ServerBusinessLogicException("Hubo problemas al encontrar los hospedajes."));

            SearchOfLodgingController searchOfLodgingController = new SearchOfLodgingController(lodgingManagementMock.Object);
            var result        = searchOfLodgingController.Post(searchOfLodgingModel);
            var createdResult = result as ObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(500, createdResult.StatusCode);
        }
        public void SearchLodgingsWithErrorsInQuantityGuestTestBadRequest()
        {
            List <Lodging> listOfLodgingsAvailables = new List <Lodging>()
            {
                lodgingOfCumbres, lodgingOfConrad
            };
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetAvailableLodgingsByTouristSpot(It.IsAny <Guid>())).Returns(listOfLodgingsAvailables);

            SearchOfLodgingController searchOfLodgingController = new SearchOfLodgingController(lodgingManagementMock.Object);

            searchOfLodgingModel.QuantityOfAdult = -5;
            var result        = searchOfLodgingController.Post(searchOfLodgingModel);
            var createdResult = result as BadRequestObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(400, createdResult.StatusCode);
        }
        public void SearchLodgingsTestOk()
        {
            List <Lodging> listOfLodgingsAvailables = new List <Lodging>()
            {
                lodgingOfCumbres, lodgingOfConrad
            };
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetAvailableLodgingsByTouristSpot(It.IsAny <Guid>())).Returns(listOfLodgingsAvailables);
            SearchOfLodgingController searchOfLodgingController = new SearchOfLodgingController(lodgingManagementMock.Object);
            var result        = searchOfLodgingController.Post(searchOfLodgingModel);
            var createdResult = result as OkObjectResult;
            var model         = createdResult.Value as List <LodgingForSearchModel>;

            lodgingManagementMock.VerifyAll();
            List <LodgingForSearchModel> listOfModelOfSearch = new List <LodgingForSearchModel>();

            LodgingForSearchModel lodgingModelOfCumbres = new LodgingForSearchModel()
            {
                CheckIn             = searchOfLodgingModel.CheckIn,
                CheckOut            = searchOfLodgingModel.CheckOut,
                Lodging             = LodgingModelForSearchResponse.ToModel(lodgingOfCumbres),
                TotalPriceForSearch = 700.0
            };

            LodgingForSearchModel lodgingModelOfEnjoyConrad = new LodgingForSearchModel()
            {
                CheckIn             = searchOfLodgingModel.CheckIn,
                CheckOut            = searchOfLodgingModel.CheckOut,
                Lodging             = LodgingModelForSearchResponse.ToModel(lodgingOfConrad),
                TotalPriceForSearch = 350.0
            };

            listOfModelOfSearch.Add(lodgingModelOfCumbres);
            listOfModelOfSearch.Add(lodgingModelOfEnjoyConrad);
            CollectionAssert.AreEqual(listOfModelOfSearch, model);
        }