Example #1
0
        public void ImportTestWithNonExistentCategory()
        {
            ImporterModel importerModel = new ImporterModel()
            {
                Name       = "Test",
                Parameters = new List <ValueParameter>()
                {
                    new ValueParameter()
                    {
                        Name  = "Path",
                        Value = "Path test"
                    }
                }
            };
            Region region = new Region()
            {
                Id   = 1,
                Name = "Region name"
            };
            var mockAccommodation = new Mock <IAccommodationRepository>(MockBehavior.Strict);
            var mockTouristicSpot = new Mock <ITouristicSpotRepository>(MockBehavior.Strict);
            var mockRegion        = new Mock <IRepository <Region> >(MockBehavior.Strict);

            mockRegion.Setup(p => p.GetById(It.IsAny <int>())).Returns(region);
            var mockCategory = new Mock <IRepository <Category> >(MockBehavior.Strict);

            mockCategory.Setup(p => p.GetById(It.IsAny <int>())).Returns <Category>(null);
            var logic = new ImporterLogic(mockAccommodation.Object, mockTouristicSpot.Object, mockRegion.Object, mockCategory.Object);

            var result = logic.Import(importerModel);
        }
Example #2
0
        public void ImportTestWithAlreadyExistsAccommodation()
        {
            ImporterModel importerModel = new ImporterModel()
            {
                Name       = "Test",
                Parameters = new List <ValueParameter>()
                {
                    new ValueParameter()
                    {
                        Name  = "Path",
                        Value = "Path test"
                    }
                }
            };
            Region region = new Region()
            {
                Id   = 1,
                Name = "Region name"
            };
            Category category = new Category()
            {
                Id   = 1,
                Name = "Category name"
            };
            Accommodation accommodation = new Accommodation()
            {
                Name          = "Accommodation name",
                Address       = "Accommodation address",
                ContactNumber = "Accommodation contactNumber",
                Full          = false,
                Images        = new List <AccommodationImage>()
                {
                    new AccommodationImage()
                    {
                        Image = "AccommodationImage image"
                    }
                },
                Information   = "Accommodation information",
                PricePerNight = 1
            };
            var mockAccommodation = new Mock <IAccommodationRepository>(MockBehavior.Strict);

            mockAccommodation.Setup(p => p.GetByName(It.IsAny <string>())).Returns(accommodation);
            var mockTouristicSpot = new Mock <ITouristicSpotRepository>(MockBehavior.Strict);
            var mockRegion        = new Mock <IRepository <Region> >(MockBehavior.Strict);

            mockRegion.Setup(p => p.GetById(It.IsAny <int>())).Returns(region);
            var mockCategory = new Mock <IRepository <Category> >(MockBehavior.Strict);

            mockCategory.Setup(p => p.GetById(It.IsAny <int>())).Returns(category);
            var logic = new ImporterLogic(mockAccommodation.Object, mockTouristicSpot.Object, mockRegion.Object, mockCategory.Object);

            var result = logic.Import(importerModel);
        }
        public void ImportTest()
        {
            List <string> names = new List <string>()
            {
                "Test"
            };
            List <TypeParameter> listParameters = new List <TypeParameter>()
            {
                new TypeParameter()
                {
                    Name = "Path",
                    Type = "string"
                }
            };
            ImporterModel importerModel = new ImporterModel()
            {
                Name       = "Test",
                Parameters = new List <ValueParameter>()
                {
                    new ValueParameter()
                    {
                        Name  = "Path",
                        Value = "Path test"
                    }
                }
            };
            Accommodation accommodation = new Accommodation()
            {
                Name          = "Accommodation name",
                Address       = "Accommodation address",
                ContactNumber = "Accommodation contactNumber",
                Full          = false,
                Images        = new List <AccommodationImage>()
                {
                    new AccommodationImage()
                    {
                        Image = "AccommodationImage image"
                    }
                },
                Information   = "Accommodation information",
                PricePerNight = 1
            };
            AccommodationModelOut accommodationModelOut = new AccommodationModelOut(accommodation, (0, new List <Review>()));
            var mockImporter = new Mock <IImporterLogic>(MockBehavior.Strict);

            mockImporter.Setup(p => p.Import(It.IsAny <ImporterModel>())).Returns(accommodationModelOut);
            var controller = new ImportController(mockImporter.Object);

            controller.Post(importerModel);

            mockImporter.VerifyAll();
        }
        internal SqlConnectionStringBuilder CreateSqlConnectionStringBuilder(ImporterModel model)
        {
            var con = new SqlConnectionStringBuilder();

            if (string.IsNullOrEmpty(model.Username) && string.IsNullOrEmpty(model.Password))
            {
                con.IntegratedSecurity = true;
            }
            else
            {
                con.UserID   = model.Username;
                con.Password = model.Password;
            }
            con.DataSource     = model.Host ?? string.Empty;
            con.InitialCatalog = model.Database ?? string.Empty;
            return(con);
        }
Example #5
0
        public void ImportTestWithNewTouristicSpot()
        {
            ImporterModel importerModel = new ImporterModel()
            {
                Name       = "Test",
                Parameters = new List <ValueParameter>()
                {
                    new ValueParameter()
                    {
                        Name  = "Path",
                        Value = "Path test"
                    }
                }
            };
            Region region = new Region()
            {
                Id   = 1,
                Name = "Region name"
            };
            Category category = new Category()
            {
                Id   = 1,
                Name = "Category name"
            };
            TouristicSpot touristicSpot = new TouristicSpot()
            {
                Name        = "TouristicSpot name",
                Description = "TouristicSpot description",
                Image       = "TouristicSpot image",
                RegionId    = 1,
                Categories  = new List <CategoryTouristicSpot>()
                {
                    new CategoryTouristicSpot()
                    {
                        CategoryId = 1
                    }
                }
            };
            Accommodation accommodation = new Accommodation()
            {
                Name          = "Accommodation name",
                Address       = "Accommodation address",
                ContactNumber = "Accommodation contactNumber",
                Full          = false,
                Images        = new List <AccommodationImage>()
                {
                    new AccommodationImage()
                    {
                        Image = "AccommodationImage image"
                    }
                },
                Information   = "Accommodation information",
                PricePerNight = 1
            };
            AccommodationModelOut accommodationModelOut = new AccommodationModelOut(accommodation, (0, new List <Review>()));
            var mockAccommodation = new Mock <IAccommodationRepository>(MockBehavior.Strict);

            mockAccommodation.Setup(p => p.GetByName(It.IsAny <string>())).Returns <Accommodation>(null);
            mockAccommodation.Setup(p => p.AddAndSave(It.IsAny <Accommodation>())).Returns(accommodation);
            var mockTouristicSpot = new Mock <ITouristicSpotRepository>(MockBehavior.Strict);

            mockTouristicSpot.SetupSequence(p => p.GetByName(It.IsAny <string>())).Returns((TouristicSpot)null).Returns(touristicSpot);
            mockTouristicSpot.Setup(p => p.AddAndSave(It.IsAny <TouristicSpot>())).Returns(touristicSpot);
            var mockRegion = new Mock <IRepository <Region> >(MockBehavior.Strict);

            mockRegion.Setup(p => p.GetById(It.IsAny <int>())).Returns(region);
            var mockCategory = new Mock <IRepository <Category> >(MockBehavior.Strict);

            mockCategory.Setup(p => p.GetById(It.IsAny <int>())).Returns(category);
            var logic = new ImporterLogic(mockAccommodation.Object, mockTouristicSpot.Object, mockRegion.Object, mockCategory.Object);

            var result = logic.Import(importerModel);

            mockAccommodation.VerifyAll();
            mockCategory.VerifyAll();
            mockTouristicSpot.VerifyAll();
            mockRegion.VerifyAll();
            Assert.AreEqual(accommodationModelOut, result);
        }
Example #6
0
 public IActionResult Post([FromBody] ImporterModel import)
 {
     return(Ok(this.importLogic.Import(import)));
 }
        public AccommodationModelOut Import(ImporterModel import)
        {
            var implementation = ObtainImplementation(import.Name);
            var parse          = new AccommodationParse();

            try
            {
                parse = implementation.Import(import.Parameters);
            }
            catch
            {
                throw new ImportParseException();
            }
            CheckTouristicSpot(parse.TouristicSpot);
            CheckRegion(parse.TouristicSpot.RegionId);
            CheckCategories(parse.TouristicSpot.Categories);
            CheckAccommodation(parse.Name);
            var touristicSpot = touristicSpotRepository.GetByName(parse.TouristicSpot.Name);

            if (touristicSpot == null)
            {
                List <CategoryTouristicSpot> categoryTouristicSpots = new List <CategoryTouristicSpot>();
                foreach (int category in parse.TouristicSpot.Categories)
                {
                    categoryTouristicSpots.Add(new CategoryTouristicSpot()
                    {
                        CategoryId = category
                    });
                }
                touristicSpot = new TouristicSpot()
                {
                    Categories  = categoryTouristicSpots,
                    Description = parse.TouristicSpot.Description,
                    Image       = parse.TouristicSpot.Image,
                    Name        = parse.TouristicSpot.Name,
                    RegionId    = parse.TouristicSpot.RegionId
                };
                touristicSpotRepository.AddAndSave(touristicSpot);
                touristicSpot = touristicSpotRepository.GetByName(parse.TouristicSpot.Name);
            }


            List <AccommodationImage> accommodationImages = new List <AccommodationImage>();

            foreach (AccommodationImageParse accommodationImage in parse.Images)
            {
                accommodationImages.Add(new AccommodationImage()
                {
                    Image = accommodationImage.Image
                });
            }
            Accommodation accommodation = this.accommodationRepository.AddAndSave(new Accommodation()
            {
                Address       = parse.Address,
                ContactNumber = parse.ContactNumber,
                Full          = parse.Full,
                Information   = parse.Information,
                Name          = parse.Name,
                PricePerNight = parse.PricePerNight,
                Images        = accommodationImages,
                Spot          = touristicSpot
            });

            return(new AccommodationModelOut(accommodation, (0, new List <Review>())));
        }