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); }
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); }
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); }
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>()))); }