1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.adservices.adselection; 18 19 import android.adservices.common.AdData; 20 import android.adservices.common.AdDataFixture; 21 import android.adservices.common.AdTechIdentifier; 22 import android.adservices.common.CommonFixture; 23 import android.net.Uri; 24 25 import com.google.common.collect.ImmutableList; 26 import com.google.common.collect.ImmutableMap; 27 28 import java.util.List; 29 import java.util.stream.Collectors; 30 31 /** 32 * This is a static class meant to help with tests that involve creating an {@link ContextualAds}. 33 */ 34 public class ContextualAdsFixture { 35 36 public static final AdTechIdentifier BUYER = CommonFixture.VALID_BUYER_1; 37 public static final AdTechIdentifier BUYER_2 = CommonFixture.VALID_BUYER_2; 38 39 // Uri Constants 40 public static final String DECISION_LOGIC_FRAGMENT = "/decisionFragment"; 41 42 public static final Uri DECISION_LOGIC_URI = 43 CommonFixture.getUri(BUYER, DECISION_LOGIC_FRAGMENT); 44 45 private static final AdData VALID_AD_DATA = AdDataFixture.getValidAdDataByBuyer(BUYER, 0); 46 private static final double TEST_BID = 0.1; 47 48 public static final AdWithBid AD_WITH_BID_1 = new AdWithBid(VALID_AD_DATA, TEST_BID); 49 public static final AdWithBid AD_WITH_BID_2 = new AdWithBid(VALID_AD_DATA, TEST_BID * 2); 50 public static final List<AdWithBid> ADS_WITH_BID = 51 ImmutableList.of(AD_WITH_BID_1, AD_WITH_BID_2); 52 aContextualAdBuilder()53 public static ContextualAds.Builder aContextualAdBuilder() { 54 return new ContextualAds.Builder() 55 .setBuyer(BUYER) 56 .setDecisionLogicUri(DECISION_LOGIC_URI) 57 .setAdsWithBid(ADS_WITH_BID); 58 } 59 generateContextualAds( AdTechIdentifier buyer, List<Double> bids)60 public static ContextualAds.Builder generateContextualAds( 61 AdTechIdentifier buyer, List<Double> bids) { 62 return new ContextualAds.Builder() 63 .setBuyer(buyer) 64 .setDecisionLogicUri(CommonFixture.getUri(buyer, DECISION_LOGIC_FRAGMENT)) 65 .setAdsWithBid( 66 bids.stream() 67 .map( 68 bid -> 69 new AdWithBid( 70 AdDataFixture.getValidAdDataByBuyer( 71 buyer, bid.intValue()), 72 bid)) 73 .collect(Collectors.toList())); 74 } 75 aContextualAd()76 public static ContextualAds aContextualAd() { 77 return aContextualAdBuilder().build(); 78 } 79 aContextualAd(AdTechIdentifier buyer)80 public static ContextualAds aContextualAd(AdTechIdentifier buyer) { 81 return aContextualAdBuilder().setBuyer(buyer).build(); 82 } 83 getBuyerContextualAdsMap()84 public static ImmutableMap<AdTechIdentifier, ContextualAds> getBuyerContextualAdsMap() { 85 return ImmutableMap.of( 86 CommonFixture.VALID_BUYER_1, 87 aContextualAd(CommonFixture.VALID_BUYER_1), 88 CommonFixture.VALID_BUYER_2, 89 aContextualAd(CommonFixture.VALID_BUYER_2)); 90 } 91 } 92