public void CreateValidTouristSpot()
        {
            TouristSpot touristSpot = new TouristSpot
            {
                Id          = Guid.NewGuid(),
                Name        = "Punta del este",
                Description = "Lo mejor para gastar.",
                Image       = picture
            };
            var touristSpotRepositoryMock = new Mock <ITouristSpotRepository>(MockBehavior.Strict);

            touristSpotRepositoryMock.Setup(m => m.Add(It.IsAny <TouristSpot>()));
            touristSpotRepositoryMock.Setup(m => m.GetTouristSpotByName(touristSpot.Name)).Returns(value: null);


            Guid        regionId         = Guid.NewGuid();
            List <Guid> listIdCategories = new List <Guid>();
            Guid        id = Guid.NewGuid();

            listIdCategories.Add(id);

            var categoriesRepositoryMock = new Mock <ICategoryRepository>(MockBehavior.Strict);

            categoriesRepositoryMock.Setup(m => m.Get(id)).Returns(new Category()
            {
                Id = id
            });

            var regionsRepositoryMock = new Mock <IRepository <Region> >(MockBehavior.Strict);

            regionsRepositoryMock.Setup(m => m.Get(regionId)).Returns(new Region()
            {
                Id = regionId
            });

            var categoryLogic = new CategoryManagement(categoriesRepositoryMock.Object);
            var regionLogic   = new RegionManagement(regionsRepositoryMock.Object);

            var touristSpotLogic = new TouristSpotManagement(touristSpotRepositoryMock.Object, regionLogic, categoryLogic);

            var result = touristSpotLogic.Create(touristSpot, regionId, listIdCategories);

            touristSpotRepositoryMock.VerifyAll();
            Assert.AreEqual(result.Id, touristSpot.Id);
        }
        public void CreateInvalidTouristSpotWithErrorInAdd()
        {
            TouristSpot touristSpot = new TouristSpot
            {
                Id          = Guid.NewGuid(),
                Name        = "Punta del este",
                Description = "Donde la naturaleza y el lujo convergen",
                Image       = picture
            };
            var touristSpotRepositoryMock = new Mock <ITouristSpotRepository>(MockBehavior.Strict);

            touristSpotRepositoryMock.Setup(m => m.Add(It.IsAny <TouristSpot>())).Throws(new ServerException());
            touristSpotRepositoryMock.Setup(m => m.GetTouristSpotByName(touristSpot.Name)).Returns(value: null);

            Guid        regionId         = Guid.NewGuid();
            List <Guid> listIdCategories = new List <Guid>();
            Guid        id = Guid.NewGuid();

            listIdCategories.Add(id);

            var categoriesRepositoryMock = new Mock <ICategoryRepository>(MockBehavior.Strict);

            categoriesRepositoryMock.Setup(m => m.Get(id)).Returns(new Category()
            {
                Id = id
            });

            var regionsRepositoryMock = new Mock <IRepository <Region> >(MockBehavior.Strict);

            regionsRepositoryMock.Setup(m => m.Get(regionId)).Returns(new Region()
            {
                Id = regionId
            });

            var categoryLogic = new CategoryManagement(categoriesRepositoryMock.Object);
            var regionLogic   = new RegionManagement(regionsRepositoryMock.Object);

            var touristSpotLogic = new TouristSpotManagement(touristSpotRepositoryMock.Object, regionLogic, categoryLogic);

            var result = touristSpotLogic.Create(touristSpot, regionId, listIdCategories);
        }
        public void CreateInvalidTouristSpotInternalErrorWhenSearchTouristSpotByName()
        {
            TouristSpot touristSpot = new TouristSpot
            {
                Id          = Guid.NewGuid(),
                Name        = "Punta del este",
                Description = "Lo mejor para gastar.",
                Image       = picture
            };
            var touristSpotRepositoryMock = new Mock <ITouristSpotRepository>(MockBehavior.Strict);

            touristSpotRepositoryMock.Setup(m => m.Add(It.IsAny <TouristSpot>()));
            touristSpotRepositoryMock.Setup(m => m.GetTouristSpotByName(touristSpot.Name)).Throws(new ServerException());


            Guid        regionId         = Guid.NewGuid();
            List <Guid> listIdCategories = new List <Guid>();
            Guid        id = Guid.NewGuid();

            var categoriesRepositoryMock = new Mock <ICategoryRepository>(MockBehavior.Strict);

            categoriesRepositoryMock.Setup(m => m.Get(id)).Returns(new Category()
            {
                Id = id
            });

            var regionsRepositoryMock = new Mock <IRepository <Region> >(MockBehavior.Strict);

            regionsRepositoryMock.Setup(m => m.Get(regionId)).Returns(new Region()
            {
                Id = regionId
            });

            var categoryLogic = new CategoryManagement(categoriesRepositoryMock.Object);
            var regionLogic   = new RegionManagement(regionsRepositoryMock.Object);

            var touristSpotLogic = new TouristSpotManagement(touristSpotRepositoryMock.Object, regionLogic, categoryLogic);

            var result = touristSpotLogic.Create(touristSpot, regionId, listIdCategories);
        }