Package com.google.api.adwords.v201008

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

// 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 java.util.ArrayList;
import java.util.Arrays;

import junit.framework.TestCase;

import com.google.api.adwords.lib.AdWordsService;
import com.google.api.adwords.lib.AdWordsUser;
import com.google.api.adwords.v201008.cm.ApiException;
import com.google.api.adwords.v201008.cm.CountryTarget;
import com.google.api.adwords.v201008.cm.Keyword;
import com.google.api.adwords.v201008.cm.KeywordMatchType;
import com.google.api.adwords.v201008.cm.LanguageTarget;
import com.google.api.adwords.v201008.cm.Paging;
import com.google.api.adwords.v201008.o.AdTypeSearchParameter;
import com.google.api.adwords.v201008.o.AverageTargetedMonthlySearchesSearchParameter;
import com.google.api.adwords.v201008.o.CompetitionSearchParameter;
import com.google.api.adwords.v201008.o.CompetitionSearchParameterLevel;
import com.google.api.adwords.v201008.o.CountryTargetSearchParameter;
import com.google.api.adwords.v201008.o.ExcludedKeywordSearchParameter;
import com.google.api.adwords.v201008.o.GlobalMonthlySearchesSearchParameter;
import com.google.api.adwords.v201008.o.IdeaTextMatchesSearchParameter;
import com.google.api.adwords.v201008.o.IdeaType;
import com.google.api.adwords.v201008.o.KeywordCategoryIdSearchParameter;
import com.google.api.adwords.v201008.o.KeywordMatchTypeSearchParameter;
import com.google.api.adwords.v201008.o.LanguageTargetSearchParameter;
import com.google.api.adwords.v201008.o.LongComparisonOperation;
import com.google.api.adwords.v201008.o.MobileSearchParameter;
import com.google.api.adwords.v201008.o.PlacementTypeSearchParameter;
import com.google.api.adwords.v201008.o.RelatedToKeywordSearchParameter;
import com.google.api.adwords.v201008.o.RelatedToUrlSearchParameter;
import com.google.api.adwords.v201008.o.RequestType;
import com.google.api.adwords.v201008.o.SearchParameter;
import com.google.api.adwords.v201008.o.SeedAdGroupIdSearchParameter;
import com.google.api.adwords.v201008.o.SiteConstantsAdType;
import com.google.api.adwords.v201008.o.SiteConstantsPlacementType;
import com.google.api.adwords.v201008.o.TargetingIdea;
import com.google.api.adwords.v201008.o.TargetingIdeaPage;
import com.google.api.adwords.v201008.o.TargetingIdeaSelector;
import com.google.api.adwords.v201008.o.TargetingIdeaServiceInterface;

/**
* Functional tests for TargetingIdeaService.
*
* @author api.naoki.ishihara@gmail.com (Naoki Ishihara)
*/
public class TargetingIdeaServiceTest extends TestCase {
  private AdWordsUser user = null;
  private TargetingIdeaServiceInterface service = null;
  private long adGroupId;
  private TestUtils testUtils = null;

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

    service = user.getService(AdWordsService.V201008.TARGETING_IDEA_SERVICE);
    if (adGroupId == 0) {
      adGroupId = testUtils.createAdGroup(testUtils.createCampaign());
    }
  }

  /**
   * Test whether we can catch required search parameter error in selector.
   */
  public void testGetEmptySelector() throws Exception {
    try {
      service.get(new TargetingIdeaSelector());
    } catch (ApiException e) {
      // Expected to catch api exception.
      assertNotNull(e.getMessage1());
    }
  }

  /**
   * Test whether we can catch required search parameter error in selector.
   */
  public void testGetAdTeypSearchParameter() throws Exception {
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    AdTypeSearchParameter adTypeSearchParameter = new AdTypeSearchParameter();
    adTypeSearchParameter.setAdTypes(
        new SiteConstantsAdType[] {SiteConstantsAdType.DISPLAY});
    RelatedToUrlSearchParameter relatedToUrlSearchParameter =
        new RelatedToUrlSearchParameter();
    relatedToUrlSearchParameter.setUrls(new String[] {"http://news.google.com"});

    selector.setSearchParameters(new SearchParameter[] {adTypeSearchParameter,
        relatedToUrlSearchParameter});

    selector.setIdeaType(IdeaType.PLACEMENT);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request average targeted monthly search parameter.
   */
  public void testGetAverageTargetedMonthlySearchesSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    AverageTargetedMonthlySearchesSearchParameter averageTargetedMonthlySearchesSearchParameter =
        new AverageTargetedMonthlySearchesSearchParameter();
    averageTargetedMonthlySearchesSearchParameter
        .setOperation(new LongComparisonOperation(1L, 50L));

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("election");
    keyword.setMatchType(KeywordMatchType.BROAD);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        averageTargetedMonthlySearchesSearchParameter, relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request competition search parameter.
   */
  public void testGetCampetitionoSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    CompetitionSearchParameter competitionSearchParameter = new CompetitionSearchParameter();
    CompetitionSearchParameterLevel[] levels = {CompetitionSearchParameterLevel.MEDIUM,
        CompetitionSearchParameterLevel.HIGH};
    competitionSearchParameter.setLevels(levels);

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("election");
    keyword.setMatchType(KeywordMatchType.BROAD);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        competitionSearchParameter,relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request country target search parameter.
   */
  public void testGetCountryTargetSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    CountryTargetSearchParameter countryTargetSearchParameter =
        new CountryTargetSearchParameter();
    CountryTarget[] targets = {new CountryTarget(null, null, "US"),
        new CountryTarget(null, null, "CN"), new CountryTarget(null, null, "JP")};
    countryTargetSearchParameter.setCountryTargets(targets);

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("election");
    keyword.setMatchType(KeywordMatchType.BROAD);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        countryTargetSearchParameter,relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request excluded keyword search parameter.
   */
  public void testGetExcludedKeyWordSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    ExcludedKeywordSearchParameter excludedKeywordSearchParameter =
        new ExcludedKeywordSearchParameter();
    Keyword keyword1 = new Keyword();
    keyword1.setText("media player");
    keyword1.setMatchType(KeywordMatchType.EXACT);
    excludedKeywordSearchParameter.setKeywords(new Keyword[] {keyword1});

    KeywordMatchTypeSearchParameter keywordMatchTypeSearchParameter =
        new KeywordMatchTypeSearchParameter();
    keywordMatchTypeSearchParameter.setKeywordMatchTypes(new KeywordMatchType[] {
        KeywordMatchType.BROAD, KeywordMatchType.EXACT});

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword2 = new Keyword();
    keyword2.setText("dvd player");
    keyword2.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword2});

    selector.setSearchParameters(new SearchParameter[] {
        excludedKeywordSearchParameter, keywordMatchTypeSearchParameter,
        relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request global monthly search parameter.
   */
  public void testGlobalMonthlySearchesSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    GlobalMonthlySearchesSearchParameter globalMonthlySearchesSearchParameter =
        new GlobalMonthlySearchesSearchParameter();
    LongComparisonOperation longComparisonOperation = new LongComparisonOperation();
    longComparisonOperation.setMinimum(new Long(1000));
    longComparisonOperation.setMaximum(new Long(10000));
    globalMonthlySearchesSearchParameter.setOperation(longComparisonOperation);

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("dvd player");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        globalMonthlySearchesSearchParameter, relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request keyword category id search parameter.
   */
  public void testGetIncludeAdultContentSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    KeywordCategoryIdSearchParameter keywordCategoryIdSearchParameter =
        new KeywordCategoryIdSearchParameter(null, new Integer(5));

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("presidential vote");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        keywordCategoryIdSearchParameter, relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request keyword match type search parameter.
   */
  public void testGetKeywordMatchTypeSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    KeywordMatchTypeSearchParameter keywordMatchTypeSearchParameter =
        new KeywordMatchTypeSearchParameter();
    keywordMatchTypeSearchParameter.setKeywordMatchTypes(new KeywordMatchType[] {
        KeywordMatchType.BROAD, KeywordMatchType.EXACT});

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("presidential vote");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        keywordMatchTypeSearchParameter, relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request language target search parameter.
   */
  public void testGetLanguageTargetSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    LanguageTargetSearchParameter languageTargetSearchParameter =
        new LanguageTargetSearchParameter();
    LanguageTarget[] targets = {
        new LanguageTarget(null, "cn"), new LanguageTarget(null, "jp")};
    languageTargetSearchParameter.setLanguageTargets(targets);

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("presidential vote");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        languageTargetSearchParameter, relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request mobile search parameter.
   */
  public void testGetMobileSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    MobileSearchParameter mobileSearchParameter = new MobileSearchParameter();

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("presidential vote");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        mobileSearchParameter, relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request idea text matches search parameter.
   */
  public void testGetIdeaTextMatchesSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    IdeaTextMatchesSearchParameter ideaTextMatchesSearchParameter =
        new IdeaTextMatchesSearchParameter();
    ideaTextMatchesSearchParameter.setIncluded(new String[] {"presidential vote"});

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("presidential vote");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        ideaTextMatchesSearchParameter, relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request placement type search parameter.
   */
  public void testGetPlacementTypeSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    PlacementTypeSearchParameter placementTypeSearchParameter =
        new PlacementTypeSearchParameter();
    SiteConstantsPlacementType[] types = {SiteConstantsPlacementType.VIDEO,
        SiteConstantsPlacementType.GAME};
    placementTypeSearchParameter.setPlacementTypes(types);

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("iron man");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        placementTypeSearchParameter, relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.PLACEMENT);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request related keyword search parameter
   */
  public void testGetRelatedToKeywordSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("flowers");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {
        relatedToKeywordSearchParameter});
    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);
    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request related to keyword search parameter and
   * retrieve complete set of resulting pages.
   */
  public void testGetRelatedToKeywordSearchParameterAllPages() throws Exception {
    int index = 0;

    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("flowers");
    keyword.setMatchType(KeywordMatchType.BROAD);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    selector.setSearchParameters(new SearchParameter[] {relatedToKeywordSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(index, 100);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
    ArrayList<TargetingIdea> result = new ArrayList<TargetingIdea>();

    while (paging.getStartIndex() + 100 <= page.getTotalNumEntries()) {
      assertNotNull(page);
      result.addAll(Arrays.asList(page.getEntries()));
      paging.setStartIndex(paging.getStartIndex() + 100);
      selector.setPaging(paging);
      page = service.get(selector);
    }
    assertEquals(page.getTotalNumEntries(), new Integer(result.size()));
  }

  /**
   * Test whether we can request related to url search parameter.
   */
  public void testGetRelatedToUrlSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    RelatedToUrlSearchParameter relatedToUrlSearchParameter =
        new RelatedToUrlSearchParameter();
    relatedToUrlSearchParameter.setUrls(new String[] {"http://finance.google.com"});

    selector.setSearchParameters(new SearchParameter[] {relatedToUrlSearchParameter});
    selector.setIdeaType(IdeaType.PLACEMENT);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request seed ad group id saerch parameter.
   */
  public void testGetSeedAdGroupIdSearchParameter() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    SeedAdGroupIdSearchParameter seedAdGroupIdSearchParameter =
        new SeedAdGroupIdSearchParameter(null, adGroupId);

    selector.setSearchParameters(new SearchParameter[] {seedAdGroupIdSearchParameter});
    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }

  /**
   * Test whether we can request bulk keyword ideas.
   */
  public void testGetBulkKeywordIdeas() throws Exception {
    // Create selector and parameters.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();

    RelatedToKeywordSearchParameter relatedToKeywordSearchParameter =
        new RelatedToKeywordSearchParameter();
    Keyword keyword = new Keyword();
    keyword.setText("presidential vote");
    keyword.setMatchType(KeywordMatchType.EXACT);
    relatedToKeywordSearchParameter.setKeywords(new Keyword[] {keyword});

    RelatedToUrlSearchParameter relatedToUrlSearchParameter =
        new RelatedToUrlSearchParameter();
    relatedToUrlSearchParameter.setUrls(new String[] {"http://finance.google.com"});

    selector.setSearchParameters(new SearchParameter[] {
      relatedToKeywordSearchParameter, relatedToUrlSearchParameter});

    selector.setIdeaType(IdeaType.KEYWORD);
    selector.setRequestType(RequestType.IDEAS);

    Paging paging = new Paging(0, 1);
    selector.setPaging(paging);

    TargetingIdeaPage page = service.get(selector);
  }
}
TOP

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

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.