Package com.google.api.adwords.v201008

Source Code of com.google.api.adwords.v201008.CampaignTargetServiceTest

// Copyright 2011 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.adwords.v201008;

import com.google.api.adwords.lib.AdWordsService;
import com.google.api.adwords.lib.AdWordsUser;
import com.google.api.adwords.v201008.cm.CampaignTargetOperation;
import com.google.api.adwords.v201008.cm.CampaignTargetPage;
import com.google.api.adwords.v201008.cm.CampaignTargetReturnValue;
import com.google.api.adwords.v201008.cm.CampaignTargetSelector;
import com.google.api.adwords.v201008.cm.CampaignTargetServiceInterface;
import com.google.api.adwords.v201008.cm.CountryTarget;
import com.google.api.adwords.v201008.cm.GeoTarget;
import com.google.api.adwords.v201008.cm.GeoTargetList;
import com.google.api.adwords.v201008.cm.LanguageTarget;
import com.google.api.adwords.v201008.cm.LanguageTargetList;
import com.google.api.adwords.v201008.cm.NetworkCoverageType;
import com.google.api.adwords.v201008.cm.NetworkTarget;
import com.google.api.adwords.v201008.cm.NetworkTargetList;
import com.google.api.adwords.v201008.cm.Operator;
import com.google.api.adwords.v201008.cm.TargetList;

import junit.framework.TestCase;

/**
* Functional tests for {@link com.google.api.adwords.v201008.cm
* CampaignTargetService}.
*
* @author api.naoki.ishihara@gmail.com (Naoki Ishihara)
*/
public class CampaignTargetServiceTest extends TestCase {
  private AdWordsUser user = null;
  private CampaignTargetServiceInterface service = null;
  private long campaignId;
  private TestUtils testUtils = null;

  /**
   * Set up the test fixtures.
   */
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    user = TestUtils.createUser("test_data/test.properties");
    testUtils = new TestUtils(user);
    campaignId = testUtils.createCampaign();
  }

  /**
   * Test setting campaign targets.
   */
  public void testSet() throws Exception {
    service = user.getService(AdWordsService.V201008.CAMPAIGN_TARGET_SERVICE);

    // Create language targets.
    LanguageTargetList languageTargetList = new LanguageTargetList();
    languageTargetList.setCampaignId(campaignId);
    languageTargetList.setTargets(new LanguageTarget[] {new LanguageTarget(null, "fr"),
        new LanguageTarget(null, "ja")});

    // Create geo targets.
    GeoTargetList geoTargetList = new GeoTargetList();
    geoTargetList.setCampaignId(campaignId);
    geoTargetList.setTargets(new GeoTarget[] {new CountryTarget(null, false, "US"),
        new CountryTarget(null, false, "JP")});

    // Create network targets.
    NetworkTargetList networkTargetList = new NetworkTargetList();
    networkTargetList.setCampaignId(campaignId);
    networkTargetList.setTargets(new NetworkTarget[] {
        // Specifying GOOGLE_SEARCH is necessary if you want to target
        // SEARCH_NETWORK.
        new NetworkTarget(null, NetworkCoverageType.GOOGLE_SEARCH),
        new NetworkTarget(null, NetworkCoverageType.SEARCH_NETWORK)});

    CampaignTargetOperation languageTargetOperation = new CampaignTargetOperation();
    languageTargetOperation.setOperand(languageTargetList);
    languageTargetOperation.setOperator(Operator.SET);

    CampaignTargetOperation geoTargetOperation = new CampaignTargetOperation();
    geoTargetOperation.setOperand(geoTargetList);
    geoTargetOperation.setOperator(Operator.SET);

    CampaignTargetOperation networkTargetOperation = new CampaignTargetOperation();
    networkTargetOperation.setOperand(networkTargetList);
    networkTargetOperation.setOperator(Operator.SET);

    CampaignTargetOperation[] operations = new CampaignTargetOperation[] {languageTargetOperation,
        geoTargetOperation, networkTargetOperation};

    // Set campaign targets.
    CampaignTargetReturnValue result = service.mutate(operations);

    // Exclude generated fields and test objects.
    if (result != null && result.getValue() != null) {
      for (TargetList testList : result.getValue()) {

        if (testList.getTargetListType().equals("LanguageTargetList")) {
          languageTargetList.setTargetListType(testList.getTargetListType());
          for (LanguageTarget languageTarget : languageTargetList.getTargets()) {
            languageTarget.setTargetType(((LanguageTarget) ((LanguageTargetList) testList)
                .getTargets()[0]).getTargetType());
          }
          TestUtils.assertDeepReflectionEquals(languageTargetList, testList);

        } else if (testList.getTargetListType().equals("GeoTargetList")) {
          geoTargetList.setTargetListType(testList.getTargetListType());
          for (GeoTarget geoTarget : geoTargetList.getTargets()){
            geoTarget.setTargetType(((GeoTarget)((GeoTargetList) testList)
                .getTargets()[0]).getTargetType());
          }
          TestUtils.assertDeepReflectionEquals(geoTargetList, testList);

        } else if (testList.getTargetListType().equals("NetworkTargetList")) {
          networkTargetList.setTargetListType(testList.getTargetListType());
          for (NetworkTarget networkTarget : networkTargetList.getTargets()){
            networkTarget.setTargetType(((NetworkTarget)((NetworkTargetList) testList)
                .getTargets()[0]).getTargetType());
          }
          TestUtils.assertDeepReflectionEquals(networkTargetList, testList);
        }
      }
    } else {
      System.out.println("No campaign targets were set.");
    }
  }

  /**
   * Test getting all campaign targets for a campaign.
   */
  public void testGetAllForCampaign() throws Exception {
    service = user.getService(AdWordsService.V201008.CAMPAIGN_TARGET_SERVICE);

    // Create selector.
    CampaignTargetSelector selector = new CampaignTargetSelector();
    selector.setCampaignIds(new long[] {campaignId});

    // Get all campaign targets.
    CampaignTargetPage page = service.get(selector);

    assertEquals(7, page.getEntries().length);
  }
}
TOP

Related Classes of com.google.api.adwords.v201008.CampaignTargetServiceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.