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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }