// Copyright 2016 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.api.ads.adwords.jaxws.utils.v201607.batchjob;
import com.google.api.ads.adwords.jaxws.utils.JaxWsBatchJobUploadBodyProvider;
import com.google.api.ads.adwords.jaxws.v201607.cm.AdvertisingChannelType;
import com.google.api.ads.adwords.jaxws.v201607.cm.BiddingStrategyConfiguration;
import com.google.api.ads.adwords.jaxws.v201607.cm.BiddingStrategyType;
import com.google.api.ads.adwords.jaxws.v201607.cm.Budget;
import com.google.api.ads.adwords.jaxws.v201607.cm.BudgetBudgetDeliveryMethod;
import com.google.api.ads.adwords.jaxws.v201607.cm.BudgetOperation;
import com.google.api.ads.adwords.jaxws.v201607.cm.Campaign;
import com.google.api.ads.adwords.jaxws.v201607.cm.CampaignCriterionOperation;
import com.google.api.ads.adwords.jaxws.v201607.cm.CampaignOperation;
import com.google.api.ads.adwords.jaxws.v201607.cm.CampaignStatus;
import com.google.api.ads.adwords.jaxws.v201607.cm.Keyword;
import com.google.api.ads.adwords.jaxws.v201607.cm.KeywordMatchType;
import com.google.api.ads.adwords.jaxws.v201607.cm.ManualCpcBiddingScheme;
import com.google.api.ads.adwords.jaxws.v201607.cm.Money;
import com.google.api.ads.adwords.jaxws.v201607.cm.NegativeCampaignCriterion;
import com.google.api.ads.adwords.jaxws.v201607.cm.Operator;
import com.google.api.ads.adwords.lib.utils.testing.BatchJobUploadBodyProviderTest;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
/**
* Tests for {@link JaxWsBatchJobUploadBodyProvider}.
*/
@RunWith(JUnit4.class)
public class JaxWsBatchJobUploadBodyProviderTest
extends BatchJobUploadBodyProviderTest<BatchJobMutateRequest> {
@Override
protected String getApiVersion() {
return "v201607";
}
@Override
protected BatchJobMutateRequest createMutateRequest() {
return new BatchJobMutateRequest();
}
@Override
protected void addBudgetOperation(
BatchJobMutateRequest request,
long budgetId,
String budgetName,
long budgetAmountInMicros,
String deliveryMethod) {
Budget budget = new Budget();
budget.setBudgetId(budgetId);
budget.setName(budgetName);
Money budgetAmount = new Money();
budgetAmount.setMicroAmount(budgetAmountInMicros);
budget.setAmount(budgetAmount);
budget.setDeliveryMethod(BudgetBudgetDeliveryMethod.valueOf(deliveryMethod));
BudgetOperation budgetOperation = new BudgetOperation();
budgetOperation.setOperand(budget);
budgetOperation.setOperator(Operator.ADD);
request.addOperation(budgetOperation);
}
@Override
protected void addCampaignOperation(
BatchJobMutateRequest request,
long campaignId,
String campaignName,
String status,
String advertisingChannelType,
long budgetId,
String biddingStrategyType,
boolean enhancedCpcEnabled) {
Campaign campaign = new Campaign();
campaign.setId(campaignId);
campaign.setName(campaignName);
campaign.setStatus(CampaignStatus.valueOf(status));
campaign.setAdvertisingChannelType(AdvertisingChannelType.valueOf(advertisingChannelType));
Budget budget = new Budget();
budget.setBudgetId(budgetId);
campaign.setBudget(budget);
BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration();
biddingStrategyConfiguration.setBiddingStrategyType(
BiddingStrategyType.valueOf(biddingStrategyType));
ManualCpcBiddingScheme cpcBiddingScheme = new ManualCpcBiddingScheme();
cpcBiddingScheme.setEnhancedCpcEnabled(enhancedCpcEnabled);
biddingStrategyConfiguration.setBiddingScheme(cpcBiddingScheme);
campaign.setBiddingStrategyConfiguration(biddingStrategyConfiguration);
CampaignOperation operation = new CampaignOperation();
operation.setOperand(campaign);
operation.setOperator(Operator.ADD);
request.addOperation(operation);
}
@Override
protected void addCampaignNegativeKeywordOperation(
BatchJobMutateRequest request, long campaignId, String keywordText, String keywordMatchType) {
Keyword keyword = new Keyword();
keyword.setText(keywordText);
keyword.setMatchType(KeywordMatchType.valueOf(keywordMatchType));
NegativeCampaignCriterion negativeCriterion = new NegativeCampaignCriterion();
negativeCriterion.setCampaignId(campaignId);
negativeCriterion.setCriterion(keyword);
CampaignCriterionOperation operation = new CampaignCriterionOperation();
operation.setOperand(negativeCriterion);
operation.setOperator(Operator.ADD);
request.addOperation(operation);
}
}