public void TestInitialize()
        {
            var fileMock = new Mock <IFormFile>();

            LodgingModel = new LodgingModel()
            {
                Name        = "Name",
                Description = "Description",
                Rating      = 3,
                IsFull      = true,
                Images      = new List <IFormFile> {
                    fileMock.Object
                },
                PricePerNight       = 100,
                Address             = "Valid Address 123",
                Phone               = "+598 98 303 040",
                ConfirmationMessage = "Your reservation has been confirmed!",
                TouristSpot         = 1
            };

            LodgingReviewModel = new LodgingReviewModel
            {
                BookingId  = 1,
                Rating     = 3,
                Commentary = "a Comment"
            };

            LodgingLogicMock       = new Mock <ILodgingLogic>(MockBehavior.Strict);
            LodgingReviewLogicMock = new Mock <ILodgingReviewLogic>(MockBehavior.Strict);

            LodgingController = new LodgingController(LodgingLogicMock.Object, LodgingReviewLogicMock.Object);
        }
        public void DeleteValidLodgingTest()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.RemoveLodging(It.IsAny <Guid>()));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Delete(lodgingModelForRequest.Id);
            var createdResult = result as NoContentResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(204, createdResult.StatusCode);
        }
        public void DeleteLodgingTestWithInternalError()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.RemoveLodging(It.IsAny <Guid>())).Throws(new ServerBusinessLogicException("No se puede eliminar el hospedaje."));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Delete(lodgingModelForRequest.Id);
            var createdResult = result as ObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(500, createdResult.StatusCode);
        }
        public void GetLodgingByIdNotFound()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetLodgingById(It.IsAny <Guid>())).Throws(new ClientBusinessLogicException());
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Get(lodgingModelForSearchResponse.Id);
            var createdResult = result as NotFoundObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(404, createdResult.StatusCode);
        }
        public void CreateLodgingInternalServerErrorTest()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.Create(It.IsAny <Lodging>(), It.IsAny <Guid>(), It.IsAny <List <string> >())).Throws(new ServerBusinessLogicException("Error interno"));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Post(lodgingModelForRequest);
            var createdResult = result as ObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(500, createdResult.StatusCode);
        }
        public void GetAllLodgingsInternalErrorTest()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetAllLoadings()).Throws(new ServerBusinessLogicException("No se pudo encontrar hospedajes."));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Get();
            var createdResult = result as ObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(500, createdResult.StatusCode);
        }
        public void GetAllLodgingsNotFoundTest()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetAllLoadings()).Throws(new ClientBusinessLogicException());
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Get();
            var createdResult = result as NotFoundObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(404, createdResult.StatusCode);
        }
        public void GetLodgingByIdInternalErrorTest()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetLodgingById(It.IsAny <Guid>())).Throws(new ServerBusinessLogicException("El hospedaje solicitado no fue encontrado."));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Get(lodgingModelForSearchResponse.Id);
            var createdResult = result as ObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(500, createdResult.StatusCode);
        }
        public void DeleteLodgingNotFountTest()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.RemoveLodging(It.IsAny <Guid>())).Throws(new ClientBusinessLogicException("El hospedaje a eliminar no ha sido encontrado."));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Delete(lodgingModelForRequest.Id);
            var createdResult = result as NotFoundObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(404, createdResult.StatusCode);
        }
        public void CreateLodgingWithoutTouristSpotTest()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.Create(It.IsAny <Lodging>(), It.IsAny <Guid>(), It.IsAny <List <string> >())).
            Throws(new ClientBusinessLogicException("No se puede crear el hospedaje debido a que no se encontro el punto turistico"));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Post(lodgingModelForRequest);
            var createdResult = result as NotFoundObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(404, createdResult.StatusCode);
        }
        public void CreateLodgingInvalidTest()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.Create(It.IsAny <Lodging>(), It.IsAny <Guid>(), It.IsAny <List <string> >())).
            Throws(new DomainBusinessLogicException("No se puede crear el hospedaje debido a que no es valido."));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Post(lodgingModelForRequest);
            var createdResult = result as BadRequestObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(400, createdResult.StatusCode);
        }
        public void CreateLodgingTestOk()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.Create(It.IsAny <Lodging>(), It.IsAny <Guid>(), It.IsAny <List <string> >())).Returns(lodgingOfficial);
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Post(lodgingModelForRequest);
            var createdResult = result as CreatedAtRouteResult;
            var model         = createdResult.Value as LodgingModelForSearchResponse;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(LodgingModelForSearchResponse.ToModel(lodgingOfficial), model);
        }
        public void GetLodgingByIdTestOk()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetLodgingById(It.IsAny <Guid>())).Returns(lodgingForGet);
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);

            var result        = lodgingController.Get(lodgingModelForSearchResponse.Id);
            var createdResult = result as OkObjectResult;
            var model         = createdResult.Value as LodgingModelForResponse;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(lodgingModelForResponse, model);
        }
        public void UpdateLodgingTestOk()
        {
            Lodging lodgingUpdated = new Lodging()
            {
                Id     = lodgingModelForRequest.Id,
                Name   = "Hotel Enjoy Conrad",
                Images = new List <LodgingPicture> {
                    lodgingPicture
                },
                Address         = "En la punta de punta del este",
                QuantityOfStars = 5,
                PricePerNight   = 150,
                TouristSpot     = touristSpotAdded
            };

            LodgingModelForRequest lodgingModelForRequestToUpdate = new LodgingModelForRequest()
            {
                Id     = lodgingModelForRequest.Id,
                Name   = "Hotel Enjoy Conrad",
                Images = new List <string> {
                    image.Path
                },
            };

            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.UpdateLodging(It.IsAny <Guid>(), It.IsAny <Lodging>())).Returns(lodgingUpdated);
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Put(lodgingModelForRequestToUpdate.Id, lodgingModelForRequestToUpdate);
            var createdResult = result as CreatedAtRouteResult;
            var model         = createdResult.Value as LodgingModelForResponse;

            lodgingManagementMock.VerifyAll();

            LodgingModelForResponse lodgingModelForResponse = new LodgingModelForResponse()
            {
                Id         = lodgingModelForRequest.Id,
                Name       = "Hotel Enjoy Conrad",
                ImagesPath = new List <string> {
                    image.Path
                },
                Address                 = "En la punta de punta del este",
                QuantityOfStars         = 5,
                PricePerNight           = 150,
                LodgingTouristSpotModel = TouristSpotModelForLodgingResponseModel.ToModel(touristSpotAdded),
            };

            Assert.AreEqual(lodgingModelForResponse, model);
        }
        public void GetAllLodgingsTestOk()
        {
            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.GetAllLoadings()).Returns(new List <Lodging> {
                lodgingForGet
            });
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Get();
            var createdResult = result as OkObjectResult;
            var model         = createdResult.Value as List <LodgingModelForResponse>;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(lodgingModelForSearchResponse, model.First());
        }
Exemple #16
0
        public LodgingControllerTest()
        {
            var contextMock    = new Mock <LodgingContext>(_options);
            var loggerMock     = new Mock <ILogger <LodgingController> >();
            var repositoryMock = new Mock <LodgingRepo>(new LodgingContext(_options));
            var unitOfWorkMock = new Mock <UnitOfWork>(contextMock.Object);

            repositoryMock.Setup(m => m.SelectAsync()).Returns(Task.FromResult <IEnumerable <LodgingModel> >(null));
            repositoryMock.Setup(m => m.SelectAsync(0)).Returns(Task.FromResult(new LodgingModel()));
            repositoryMock.Setup(m => m.SelectAsync(1)).Returns(Task.FromResult <LodgingModel>(null));
            unitOfWorkMock.Setup(m => m.Lodging).Returns(repositoryMock.Object);

            _logger     = loggerMock.Object;
            _unitOfWork = unitOfWorkMock.Object;
            _controller = new LodgingController(_logger, _unitOfWork);
        }
Exemple #17
0
        public LodgingControllerTest()
        {
            var contextMock    = new Mock <LodgingContext>(_options);
            var loggerMock     = new Mock <ILogger <LodgingController> >();
            var repositoryMock = new Mock <Repository <LodgingModel> >(new LodgingContext(_options));
            var unitOfWorkMock = new Mock <UnitOfWork>(contextMock.Object);

            repositoryMock.Setup(m => m.DeleteAsync(0)).Throws(new Exception());
            repositoryMock.Setup(m => m.DeleteAsync(1)).Returns(Task.FromResult(1));
            repositoryMock.Setup(m => m.InsertAsync(It.IsAny <LodgingModel>())).Returns(Task.FromResult <LodgingModel>(null));
            repositoryMock.Setup(m => m.SelectAsync()).Returns(Task.FromResult <IEnumerable <LodgingModel> >(null));
            repositoryMock.Setup(m => m.SelectAsync(0)).Throws(new Exception());
            repositoryMock.Setup(m => m.SelectAsync(1)).Returns(Task.FromResult <LodgingModel>(null));
            repositoryMock.Setup(m => m.Update(It.IsAny <LodgingModel>()));
            unitOfWorkMock.Setup(m => m.Lodging).Returns(repositoryMock.Object);

            _unitOfWork = unitOfWorkMock.Object;
            _controller = new LodgingController(_unitOfWork);
        }
Exemple #18
0
        public LodgingControllerTest()
        {
            var loggerMock     = new Mock <ILogger <LodgingController> >();
            var repositoryMock = new Mock <ILodgingRepo>();
            var unitOfWorkMock = new Mock <IUnitOfWork>();

            repositoryMock.Setup(m => m.SelectAsync()).ReturnsAsync((IEnumerable <LodgingModel>)null);
            repositoryMock.Setup(m => m.SelectAsync(0)).ReturnsAsync(new LodgingModel());
            repositoryMock.Setup(m => m.SelectAsync(1)).ReturnsAsync((LodgingModel)null);
            repositoryMock.Setup(m => m.SelectAsync(2)).ReturnsAsync(new LodgingModel()
            {
                Id = 2, LocationId = 2, Name = "name", Bathrooms = 1
            });
            unitOfWorkMock.Setup(m => m.Lodging).Returns(repositoryMock.Object);

            _logger     = loggerMock.Object;
            _unitOfWork = unitOfWorkMock.Object;
            _controller = new LodgingController(_logger, _unitOfWork);
        }
        public LodgingControllerTest()
        {
            var loggerMock     = new Mock <ILogger <LodgingController> >();
            var repositoryMock = new Mock <IRepository <LodgingModel> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();

            repositoryMock.Setup(m => m.SelectAsync()).ReturnsAsync((IEnumerable <LodgingModel>)null);
            repositoryMock.Setup(m => m.SelectAsync(e => e.EntityId == -1)).Throws(new KeyNotFoundException());
            repositoryMock.Setup(m => m.SelectAsync(e => e.EntityId == 0)).ReturnsAsync(new List <LodgingModel>());
            repositoryMock.Setup(m => m.SelectAsync(e => e.EntityId == 1)).ReturnsAsync((IEnumerable <LodgingModel>)null);
            repositoryMock.Setup(m => m.SelectAsync(e => e.EntityId == 2)).ReturnsAsync(new[] { new LodgingModel()
                                                                                                {
                                                                                                    EntityId = 2, AddressId = 2, Name = "name", Bathrooms = 1
                                                                                                } });
            unitOfWorkMock.Setup(m => m.Lodging).Returns(repositoryMock.Object);

            _logger     = loggerMock.Object;
            _unitOfWork = unitOfWorkMock.Object;
            _controller = new LodgingController(_logger, _unitOfWork);
        }
        public void UpdateInvalidLodgingWithAnyErrorFieldTest()
        {
            Lodging lodgingUpdated = new Lodging()
            {
                Id     = lodgingModelForRequest.Id,
                Name   = "",
                Images = new List <LodgingPicture>()
                {
                    lodgingPicture
                },
                Address         = "En la punta de punta del este",
                QuantityOfStars = 5,
                PricePerNight   = 150,
                TouristSpot     = touristSpotAdded
            };

            LodgingModelForRequest lodgingModelForRequestToUpdate = new LodgingModelForRequest()
            {
                Id     = lodgingModelForRequest.Id,
                Name   = "",
                Images = new List <string> {
                    image.Path
                },
            };

            var lodgingManagementMock = new Mock <ILodgingManagement>(MockBehavior.Strict);

            lodgingManagementMock.Setup(m => m.UpdateLodging(It.IsAny <Guid>(), It.IsAny <Lodging>())).
            Throws(new DomainBusinessLogicException("No se puede actualizar el hospedaje deseado."));
            LodgingController lodgingController = new LodgingController(lodgingManagementMock.Object);
            var result        = lodgingController.Put(lodgingModelForRequestToUpdate.Id, lodgingModelForRequestToUpdate);
            var createdResult = result as BadRequestObjectResult;

            lodgingManagementMock.VerifyAll();
            Assert.AreEqual(400, createdResult.StatusCode);
        }