public async Task AddAgencyToDb_When_ValidGlobalAgencyRegionLabel_And_ExistingGlobalAgency_Should_AddGlobalAgencyRegion() { // Arrange var agencyName = "Saatchi"; var regionName = "Japan"; var globalAgencyRegionLabel = $"{Constants.BusinessUnit.GlobalAgencyRegionLabelPrefix}{agencyName}_{regionName}"; var a5Agency = await PrepareTestData(globalAgencyRegionLabel); var costAgency = EFContext.Agency.First(); var existingGlobalAgencyRegion = new GlobalAgencyRegion { Region = "North America", GlobalAgency = new GlobalAgency { Name = agencyName } }; costAgency.GlobalAgencyRegion = existingGlobalAgencyRegion; EFContext.GlobalAgencyRegion.Add(existingGlobalAgencyRegion); EFContext.SaveChanges(); // Act await AgencyService.AddAgencyToDb(a5Agency); // Assert EFContext.GlobalAgency.Should().HaveCount(1); EFContext.GlobalAgencyRegion.Should().HaveCount(2); }
public async Task AddAgencyToDb_When_ValidGlobalAgencyRegionLabel_And_ChanginGlobalAgencyForBU_Should_UpdateGlobalAgencyOfAgency() { // Arrange var agencyName = "Saatchi"; var regionName = "Japan"; var globalAgencyRegionLabel = $"{Constants.BusinessUnit.GlobalAgencyRegionLabelPrefix}{agencyName}_{regionName}"; var a5Agency = await PrepareTestData(globalAgencyRegionLabel); var existingGlobalAgencyRegion = new GlobalAgencyRegion { Region = regionName, GlobalAgency = new GlobalAgency { Name = "Any other global agency" } }; var costAgency = EFContext.Agency.First(); costAgency.GlobalAgencyRegion = existingGlobalAgencyRegion; EFContext.GlobalAgencyRegion.Add(existingGlobalAgencyRegion); EFContext.SaveChanges(); // Act await AgencyService.AddAgencyToDb(a5Agency); // Assert EFContext.GlobalAgency.Should().HaveCount(2); EFContext.GlobalAgencyRegion.Should().HaveCount(2); costAgency.GlobalAgencyRegion.Region.Should().Be(regionName); costAgency.GlobalAgencyRegion.GlobalAgency.Name.Should().Be(agencyName); }
public async Task AddAgencyToDb_When_NoGlobalAgencyRegionLabel_ShouldNotCreateGlobalAgencyAndRegion() { // Arrange var a5Agency = await PrepareTestData(); // Act await AgencyService.AddAgencyToDb(a5Agency); // Assert EFContext.GlobalAgency.Should().HaveCount(0); EFContext.GlobalAgencyRegion.Should().HaveCount(0); }
public async Task AddAgencyToDb_When_ValidGlobalAgencyRegionLabel_And_NewGlobalAgency_Should_CreateGlobalAgencyAndRegion() { // Arrange var agencyName = "Saatchi"; var regionName = "Japan"; var globalAgencyRegionLabel = $"{Constants.BusinessUnit.GlobalAgencyRegionLabelPrefix}{agencyName}_{regionName}"; var a5Agency = await PrepareTestData(globalAgencyRegionLabel); // Act await AgencyService.AddAgencyToDb(a5Agency); // Assert EFContext.GlobalAgency.Should().HaveCount(1); EFContext.GlobalAgencyRegion.Should().HaveCount(1); }
public async Task AddAgencyToDb_When_RegionIsMissingInGlobalAgencyRegionLabel_And_NewGlobalAgency_ShouldNotCreateGlobalAgencyAndRegion() { // Arrange var agencyName = "Saatchi"; var regionName = ""; var globalAgencyRegionLabel = $"{Constants.BusinessUnit.GlobalAgencyRegionLabelPrefix}{agencyName}_{regionName}"; var a5Agency = await PrepareTestData(globalAgencyRegionLabel); // Act await AgencyService.AddAgencyToDb(a5Agency); // Assert EFContext.GlobalAgency.Should().HaveCount(0); EFContext.GlobalAgencyRegion.Should().HaveCount(0); LoggerAsMock.Verify(l => l.Error(It.IsAny <string>()), Times.Once); }
public async Task AddAgencyToDb_When_MultipleGlobalAgencyRegionLabels__Should_UseFirstLabel() { // Arrange var agencyName1 = "Saatchi1"; var regionName1 = "Japan1"; var agencyName2 = "Saatchi2"; var regionName2 = "Japan2"; var globalAgencyRegionLabel1 = $"{Constants.BusinessUnit.GlobalAgencyRegionLabelPrefix}{agencyName1}_{regionName1}"; var globalAgencyRegionLabel2 = $"{Constants.BusinessUnit.GlobalAgencyRegionLabelPrefix}{agencyName2}_{regionName2}"; var a5Agency = await PrepareTestData(globalAgencyRegionLabel1, globalAgencyRegionLabel2); // Act await AgencyService.AddAgencyToDb(a5Agency); // Assert EFContext.GlobalAgency.Should().HaveCount(1); EFContext.GlobalAgencyRegion.Should().HaveCount(1); EFContext.GlobalAgency.First().Name.Should().Be(agencyName1); EFContext.GlobalAgencyRegion.First().Region.Should().Be(regionName1); }
public async Task HandleA5EventObject_BU_AgencyCreated() { //Setup var a5Agency = await GetA5Agency(); var labelz = a5Agency._cm.Common.Labels.ToList(); labelz.Add("CM_Prime_P&G"); a5Agency._cm.Common.Labels = labelz.ToArray(); var costUser = new CostUser { Id = Guid.NewGuid(), GdamUserId = a5Agency.CreatedBy._id, ParentId = Guid.NewGuid() }; var agency = new Agency { Id = Guid.NewGuid(), GdamAgencyId = a5Agency._id }; var brand = new Brand { Id = Guid.NewGuid(), Name = "Brand", AdIdPrefix = "prefix" }; var country = new Country { Iso = "GB", Id = Guid.NewGuid() }; var currency = new Currency { DefaultCurrency = true, Code = "TEST", Description = "Test Currency" }; var costUsers = new List <CostUser> { costUser }.AsQueryable(); var brands = new List <Brand> { brand }.AsQueryable(); var abstractTypes = new List <AbstractType> { new AbstractType { Type = AbstractObjectType.Agency.ToString(), Id = Guid.NewGuid() }, new AbstractType { Type = AbstractObjectType.Module.ToString(), Module = new Module { ClientType = ClientType.Pg }, Id = Guid.NewGuid() } }; EFContext.AbstractType.AddRange(abstractTypes); EFContext.Country.Add(country); EFContext.Agency.Add(new Agency { Name = "Media Agency", Version = 1, Labels = new string[] { } }); EFContext.CostUser.AddRange(costUsers); EFContext.Brand.AddRange(brands); EFContext.Currency.Add(currency); EFContext.SaveChanges(); PluginAgencyServiceMock.Setup(a => a.AddAgencyAbstractType(It.IsAny <Agency>(), It.IsAny <AbstractType>())) .ReturnsAsync(new AbstractType { Id = Guid.NewGuid(), ObjectId = Guid.NewGuid() }); PgUserServiceMock.Setup(a => a.AddUsersToAgencyAbstractType(It.IsAny <AbstractType>(), It.IsAny <Guid>())).Returns(Task.CompletedTask); //Act var addedAgency = await AgencyService.AddAgencyToDb(a5Agency); //Assert PermissionServiceMock.Verify(a => a.CreateDomainNode(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <Guid>()), Times.Once); EFContext.Agency.Should().HaveCount(2); EFContext.AbstractType.Should().HaveCount(3); EFContext.GlobalAgencyRegion.Should().HaveCount(0); EFContext.GlobalAgency.Should().HaveCount(0); addedAgency.Should().NotBeNull(); addedAgency.Name.Should().Be("Saatchi"); addedAgency.Labels.Length.Should().Be(7); addedAgency.GdamAgencyId.Should().Be(a5Agency._id); }
public async Task HandleA5EventObject_Media_AgencyCreated() { //Setup var basePath = AppContext.BaseDirectory; var filePath = $"{basePath}{Path.DirectorySeparatorChar}JsonData{Path.DirectorySeparatorChar}a5_agency.json"; var a5Agency = await JsonReader.GetObject <A5Agency>(filePath, true); a5Agency._cm.Common.Labels = a5Agency._cm.Common.Labels.Where(a => !a.StartsWith("SMO_")).ToArray(); 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 = a5Agency.CreatedBy._id, ParentId = Guid.NewGuid() }; var agency = new Agency { Id = Guid.NewGuid(), GdamAgencyId = a5Agency._id }; var brand = new Brand { Id = Guid.NewGuid(), Name = "Brand", AdIdPrefix = "prefix" }; var country = new Country { Iso = "GB", Id = Guid.NewGuid() }; var currency = new Currency { DefaultCurrency = true, Code = "TEST", Description = "Test Currency" }; var costUsers = new List <CostUser> { costUser }.AsQueryable(); var brands = new List <Brand> { brand }.AsQueryable(); var abstractTypes = new List <AbstractType> { new AbstractType { Type = AbstractObjectType.Agency.ToString(), Id = Guid.NewGuid() }, new AbstractType { Type = AbstractObjectType.Module.ToString(), Module = new Module { ClientType = ClientType.Pg }, Id = Guid.NewGuid() } }; EFContext.AbstractType.AddRange(abstractTypes); EFContext.Country.Add(country); EFContext.CostUser.AddRange(costUsers); EFContext.Brand.AddRange(brands); EFContext.Currency.Add(currency); EFContext.SaveChanges(); //Act await AgencyService.AddAgencyToDb(a5Agency); //Assert PermissionServiceMock.Verify(a => a.CreateDomainNode(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <Guid>()), Times.Never); EFContext.Agency.Should().HaveCount(1); EFContext.GlobalAgencyRegion.Should().HaveCount(0); EFContext.GlobalAgency.Should().HaveCount(0); }