public async Task SyncBusinessUnitBrands_Test() { //Setup var basePath = AppContext.BaseDirectory; var advertiserDictionary = await _jsonTestReader.GetObject <A5DictionaryResponse>( $"{basePath}{Path.DirectorySeparatorChar}Services{Path.DirectorySeparatorChar}Brands{Path.DirectorySeparatorChar}Data{Path.DirectorySeparatorChar}advertiser_dictionary.json"); var a5Agency = await _jsonTestReader.GetObject <A5Agency>( $"{basePath}{Path.DirectorySeparatorChar}Services{Path.DirectorySeparatorChar}Brands{Path.DirectorySeparatorChar}Data{Path.DirectorySeparatorChar}a5_agency.json", true); var adcostAgency = await _jsonTestReader.GetObject <Agency>( $"{basePath}{Path.DirectorySeparatorChar}Services{Path.DirectorySeparatorChar}Brands{Path.DirectorySeparatorChar}Data{Path.DirectorySeparatorChar}agency.json"); var a5ProjectSchema = await _jsonTestReader.GetObject <A5ProjectSchema>( $"{basePath}{Path.DirectorySeparatorChar}Services{Path.DirectorySeparatorChar}Brands{Path.DirectorySeparatorChar}Data{Path.DirectorySeparatorChar}asset_element_project_common.json"); _efContext.Agency.Add(adcostAgency); _efContext.SaveChanges(); _gdamClientMock.Setup(a => a.FindProjectSchemaByAgencyId(a5Agency._id)).ReturnsAsync(a5ProjectSchema); _gdamClientMock.Setup(a => a.GetDictionary(a5Agency._id, "advertiser")).ReturnsAsync(advertiserDictionary); // Act await _brandService.SyncBusinessUnitBrands(a5Agency); //Assert _efContext.Brand.ToList().Count.Should().Be(2); _gdamClientMock.Verify(a => a.GetDictionary(a5Agency._id, "advertiser"), Times.Once); _gdamClientMock.Verify(a => a.FindProjectSchemaByAgencyId(a5Agency._id), Times.Once); }
protected async Task <A5Agency> GetA5Agency(string jsonDataFileName = "a5_agency.json") { var basePath = AppContext.BaseDirectory; var filePath = $"{basePath}{Path.DirectorySeparatorChar}JsonData{Path.DirectorySeparatorChar}{jsonDataFileName}"; var a5Agency = await JsonReader.GetObject <A5Agency>(filePath, true); return(a5Agency); }
public async Task HandleA5EventObject_BusinessUnitCreated() { var basePath = AppContext.BaseDirectory; var filePath = $"{basePath}{Path.DirectorySeparatorChar}JsonData{Path.DirectorySeparatorChar}a5_agency.json"; var a5Agency = await _jsonReader.GetObject <A5Agency>(filePath, true); _gdamClientMock.Setup(a => a.FindAgencyById(a5Agency._id)).ReturnsAsync(a5Agency); filePath = $"{basePath}{Path.DirectorySeparatorChar}JsonData{Path.DirectorySeparatorChar}agency_created.json"; var a5EventObject = await _jsonReader.GetObject <A5EventObject>(filePath); await _handler.Handle(a5EventObject); _gdamClientMock.Verify(a => a.FindAgencyById(a5Agency._id), Times.Once); _agencyServiceMock.Verify(a => a.AddAgencyToDb(a5Agency), Times.Once); }
public async Task HandleA5EventObject_ProjectCreated() { //Setup var basePath = AppContext.BaseDirectory; var projectFilePath = $"{basePath}{Path.DirectorySeparatorChar}JsonData{Path.DirectorySeparatorChar}a5_project.json"; var agencyFilePath = $"{basePath}{Path.DirectorySeparatorChar}JsonData{Path.DirectorySeparatorChar}a5_agency.json"; var a5Project = await _jsonReader.GetObject <A5Project>(projectFilePath, false); _gdamClientMock.Setup(a => a.FindProjectById(a5Project._id)).ReturnsAsync(a5Project); _permissionServiceMock.Setup(a => a.CreateDomainNode(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <Guid>())) .ReturnsAsync(new[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }); var costUser = new CostUser { Id = Guid.NewGuid(), GdamUserId = a5Project.CreatedBy._id, ParentId = Guid.NewGuid() }; var agency = new Agency { Id = Guid.NewGuid(), GdamAgencyId = a5Project.Agency._id, Labels = new[] { Constants.BusinessUnit.CostModulePrimaryLabelPrefix } }; var brand = new Brand { Id = Guid.NewGuid(), Name = "Brand", AdIdPrefix = "prefix", Sector = new Sector { AgencyId = agency.Id } }; var a5Agency = await _jsonReader.GetObject <A5Agency>(agencyFilePath, true); _gdamClientMock.Setup(a => a.FindAgencyById(agency.GdamAgencyId)).ReturnsAsync(a5Agency); var agencies = new List <Agency> { agency }.AsQueryable(); var projectsList = new List <Project>().AsQueryable(); var costUsers = new List <CostUser> { costUser }.AsQueryable(); var brands = new List <Brand> { brand }.AsQueryable(); var dictionary = new Dictionary { Name = "Campaign", DictionaryEntries = new List <DictionaryEntry> { new DictionaryEntry { Id = Guid.NewGuid(), Key = "Key", Value = "Value", Visible = true } }, Id = Guid.NewGuid() }; _moduleServiceMock.Setup(a => a.GetClientModulePerUserAsync(It.IsAny <CostUser>())).ReturnsAsync(new core.Models.AbstractTypes.Module { Id = Guid.NewGuid() }); _dictionaryServiceMock.Setup(a => a.GetDictionaryWithEntriesByName(It.IsAny <Guid>(), It.IsAny <string>())).Returns(dictionary); _elasticSearchServiceMock.Setup(a => a.UpdateSearchItem(It.IsAny <ProjectSearchItem>(), Constants.ElasticSearchIndices.ProjectsIndexName)).Returns(Task.CompletedTask); _efContextMock.MockAsyncQueryable(projectsList, c => c.Project); _efContextMock.MockAsyncQueryable(costUsers, c => c.CostUser); _efContextMock.MockAsyncQueryable(brands, c => c.Brand); _efContextMock.MockAsyncQueryable(agencies, c => c.Agency); //Act await _projectService.AddProjectToDb(a5Project); //Assert _efContextMock.Verify(a => a.Add(It.IsAny <Project>()), Times.Once); _elasticSearchServiceMock.Verify(a => a.UpdateSearchItem(It.IsAny <ProjectSearchItem>(), Constants.ElasticSearchIndices.ProjectsIndexName), Times.Once); }