コード例 #1
0
 public Task CreateBrand(AdvertiserProduct brand)
 {
     brand.AdvertiserProductUuid = IdentityValue.GenerateNewId();
     brand.UtcCreatedDateTime    = _clock.UtcNow;
     _advertiserProductRepositoryAsync.Insert(brand);
     return(_brandscreenContext.SaveChangesAsync());
 }
コード例 #2
0
        public async Task Get_ShouldReturnListOfBrands()
        {
            // Arrange
            var userId = Guid.NewGuid();
            var model  = new BrandQueryViewModel {
                UserId = userId
            };
            var buyerAccount = new BuyerAccount {
                BuyerAccountId = 1
            };
            var advertiser = new Advertiser {
                BuyerAccountId = buyerAccount.BuyerAccountId, BuyerAccount = buyerAccount, AdvertiserId = 1
            };
            var advertiserProduct1 = new AdvertiserProduct {
                AdvertiserId = advertiser.AdvertiserId, ProductName = "product a"
            };
            var advertiserProduct2 = new AdvertiserProduct {
                AdvertiserId = advertiser.AdvertiserId, ProductName = "product b"
            };
            var advertiserProducts = new List <AdvertiserProduct> {
                advertiserProduct1, advertiserProduct2
            };

            Mock.Mock <IBrandService>().Setup(x => x.GetBrands(It.IsAny <BrandQueryOptions>()))
            .Returns(advertiserProducts.ToAsyncEnumerable());

            // Act
            var retVal = await Controller.Get(model);

            // Assert
            Assert.That(retVal, Is.Not.Null);
            Assert.That(retVal.TotalItemCount, Is.EqualTo(2));
        }
コード例 #3
0
        public async Task Get_ShouldReturnBrandDetails()
        {
            // Arrange
            var brandUuid    = Guid.NewGuid();
            var buyerAccount = new BuyerAccount {
                BuyerAccountId = 1
            };
            var advertiser = new Advertiser {
                BuyerAccountId = buyerAccount.BuyerAccountId, BuyerAccount = buyerAccount, AdvertiserId = 1
            };
            var advertiserProduct = new AdvertiserProduct {
                AdvertiserId = advertiser.AdvertiserId, ProductName = "product name"
            };

            Mock.Mock <IBrandService>().Setup(x => x.GetBrand(brandUuid))
            .Returns(Task.FromResult(advertiserProduct));

            // Act
            var retVal = await Controller.Get(brandUuid);

            // Assert
            Assert.That(retVal, Is.Not.Null);
            Assert.That(retVal, Is.TypeOf <OkNegotiatedContentResult <BrandViewModel> >());
            var content = ((OkNegotiatedContentResult <BrandViewModel>)retVal).Content;

            Assert.That(content, Is.Not.Null);
            Assert.That(content.BrandName, Is.EqualTo(advertiserProduct.ProductName));
        }
コード例 #4
0
        protected override void Configure()
        {
            CreateMap <BrandCreateViewModel, AdvertiserProduct>()
            .ConstructUsing(ctx =>
            {
                var source = (BrandCreateViewModel)ctx.SourceValue;
                if (!source.AdvertiserUuid.HasValue)
                {
                    throw new InvalidOperationException("AdvertiserUuid is required.");                                      // shouldn't happen
                }
                var advertiserService = ctx.Resolve <IAdvertiserService>();
                var advertiser        = advertiserService.GetAdvertiser(source.AdvertiserUuid.Value).WaitAndUnwrapException();

                var retVal = new AdvertiserProduct
                {
                    BuyerAccountId = advertiser.BuyerAccountId,
                    AdvertiserId   = advertiser.AdvertiserId
                };
                return(retVal);
            })
            .ForMember(dst => dst.BuyerAccountId, opt => opt.Ignore())   // as mapped in ConstructUsing
            .ForMember(dst => dst.AdvertiserId, opt => opt.Ignore())     // as mapped in ConstructUsing
            .ForMember(dst => dst.ProductName, opt => opt.MapFrom(src => src.BrandName))
            .ForMember(dst => dst.AdvertiserProductHomepageUrl, opt => opt.MapFrom(src => src.BrandHomepageUrl))
            .ForMember(dst => dst.SiteListOption, opt => opt.MapFrom(src => Enum.Parse(typeof(SiteListOptionEnum), src.SiteListOption, true)))
            .ForMember(dst => dst.BrandSafetyModeId, opt => opt.MapFrom(src => Enum.Parse(typeof(BrandSafetyModeEnum), src.BrandSafetyMode, true)))
            .ForMember(dst => dst.BrandSafetyMode, opt => opt.Ignore());
        }
コード例 #5
0
 public Task UpdateBrand(AdvertiserProduct brand)
 {
     brand.UtcModifiedDateTime = _clock.UtcNow;
     _advertiserProductRepositoryAsync.Update(brand);
     return(_brandscreenContext.SaveChangesAsync());
 }