Package com.google.api.adwords.v201008

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

// 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 junit.framework.TestCase;

import com.google.api.adwords.lib.AdWordsService;
import com.google.api.adwords.lib.AdWordsUser;
import com.google.api.adwords.v201008.cm.AdGroup;
import com.google.api.adwords.v201008.cm.AdGroupOperation;
import com.google.api.adwords.v201008.cm.AdGroupPage;
import com.google.api.adwords.v201008.cm.AdGroupReturnValue;
import com.google.api.adwords.v201008.cm.AdGroupSelector;
import com.google.api.adwords.v201008.cm.AdGroupServiceInterface;
import com.google.api.adwords.v201008.cm.AdGroupStatus;
import com.google.api.adwords.v201008.cm.Bid;
import com.google.api.adwords.v201008.cm.DateRange;
import com.google.api.adwords.v201008.cm.ManualCPCAdGroupBids;
import com.google.api.adwords.v201008.cm.Money;
import com.google.api.adwords.v201008.cm.Operator;
import com.google.api.adwords.v201008.cm.StatsSelector;

/**
* Functional tests for AdGroupService.
*
* @author api.naoki.ishihara@gmail.com (Naoki Ishihara)
*/
public class AdGroupServiceTest extends TestCase {
  private TestUtils testUtils = null;
  private AdWordsUser user = null;
  private AdGroupServiceInterface adGroupService;
  private long campaignId;
  private long adGroupId;

  /**
   * Set up the test fixtures.
   */
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    user = TestUtils.createUser("test_data/test.properties");
    adGroupService = user.getService(AdWordsService.V201008.ADGROUP_SERVICE);

    testUtils = new TestUtils(user);
    campaignId = testUtils.createCampaign();
    adGroupId = testUtils.createAdGroup(campaignId);
  }

  /**
   * Test whether we can create a ad group.
   */
  public void testAdd() throws Exception {
    // Create ad group.
    AdGroup adGroup = new AdGroup();
    adGroup.setName("Ad Group #" + System.currentTimeMillis());
    adGroup.setStatus(AdGroupStatus.PAUSED);
    adGroup.setCampaignId(campaignId);

    // Create ad group bid.
    ManualCPCAdGroupBids adGroupBids = new ManualCPCAdGroupBids();
    adGroupBids.setKeywordMaxCpc(new Bid(new Money(null, 1000000L)));
    adGroup.setBids(adGroupBids);

    // Create operations.
    AdGroupOperation operation = new AdGroupOperation();
    operation.setOperand(adGroup);
    operation.setOperator(Operator.ADD);

    AdGroupOperation[] operations = new AdGroupOperation[] { operation };

    // Add ad group.
    AdGroupReturnValue result = adGroupService.mutate(operations);
    AdGroup testAdGroup = result.getValue()[0];

    // Set the generated fields.
    adGroup.setId(testAdGroup.getId());
    adGroup.setCampaignName(testAdGroup.getCampaignName());
    adGroup.getBids().setAdGroupBidsType(
        (testAdGroup.getBids().getAdGroupBidsType()));
    ((ManualCPCAdGroupBids) adGroup.getBids())
        .setEnhancedCpcEnabled(((ManualCPCAdGroupBids) testAdGroup
            .getBids()).getEnhancedCpcEnabled());
    ((ManualCPCAdGroupBids) adGroup.getBids())
        .getKeywordMaxCpc()
        .getAmount()
        .setComparableValueType(
            ((ManualCPCAdGroupBids) testAdGroup.getBids())
                .getKeywordMaxCpc().getAmount()
                .getComparableValueType());

    TestUtils.assertDeepReflectionEquals(adGroup, testAdGroup);
  }

  /**
   * Test updating an ad group.
   */
  public void testUpdate() throws Exception {
    // Get the AdGroupService.
    adGroupService = user.getService(AdWordsService.V201008.ADGROUP_SERVICE);

    // Create ad group.
    AdGroup adGroup = new AdGroup();
    adGroup.setId(adGroupId);

    // Create updated ad group bid.
    ManualCPCAdGroupBids adGroupBids = new ManualCPCAdGroupBids();
    adGroupBids.setKeywordMaxCpc(new Bid(new Money(null, 2000000L)));
    adGroup.setBids(adGroupBids);

    // Create operations.
    AdGroupOperation operation = new AdGroupOperation();
    operation.setOperand(adGroup);
    operation.setOperator(Operator.SET);

    AdGroupOperation[] operations = new AdGroupOperation[] { operation };

    // Update ad group.
    AdGroupReturnValue result = adGroupService.mutate(operations);
    AdGroup testAdGroup = result.getValue()[0];

    // Exclude generated fields.
    adGroup.setCampaignName(testAdGroup.getCampaignName());
    adGroup.setCampaignId(testAdGroup.getCampaignId());
    adGroup.setStatus(testAdGroup.getStatus());
    adGroup.setName(testAdGroup.getName());
    adGroup.getBids().setAdGroupBidsType(
        (testAdGroup.getBids().getAdGroupBidsType()));
    ((ManualCPCAdGroupBids) adGroup.getBids())
        .setEnhancedCpcEnabled(((ManualCPCAdGroupBids) testAdGroup
            .getBids()).getEnhancedCpcEnabled());
    ((ManualCPCAdGroupBids) adGroup.getBids())
        .getKeywordMaxCpc()
        .getAmount()
        .setComparableValueType(
            ((ManualCPCAdGroupBids) testAdGroup.getBids())
                .getKeywordMaxCpc().getAmount()
                .getComparableValueType());

    TestUtils.assertDeepReflectionEquals(adGroup, testAdGroup);
  }

  /**
   * Test deleting an ad group.
   */
  public void testDelete() throws Exception {
    // Get the AdGroupService.
    adGroupService = user.getService(AdWordsService.V201008.ADGROUP_SERVICE);

    // Create ad group with DELETED status.
    AdGroup adGroup = new AdGroup();
    adGroup.setId(adGroupId);
    adGroup.setStatus(AdGroupStatus.DELETED);

    // Create operations.
    AdGroupOperation operation = new AdGroupOperation();
    operation.setOperand(adGroup);
    operation.setOperator(Operator.SET);

    AdGroupOperation[] operations = new AdGroupOperation[] { operation };

    // Delete ad group.
    AdGroupReturnValue result = adGroupService.mutate(operations);
    AdGroup testAdGroup = result.getValue()[0];

    // Exclude generated fields.
    adGroup.setCampaignName(testAdGroup.getCampaignName());
    adGroup.setCampaignId(testAdGroup.getCampaignId());
    adGroup.setName(testAdGroup.getName());
    adGroup.setBids(testAdGroup.getBids());

    TestUtils.assertDeepReflectionEquals(adGroup, testAdGroup);
  }

  /**
   * Test getting an ad group.
   */
  public void testGet() throws Exception{
    // Create the AdGroupSelector.
    AdGroupSelector selector = new AdGroupSelector();
    selector.setAdGroupIds(new long[] {adGroupId});

    // Create the DateRange and AdGroupSelector.
    DateRange range = new DateRange(TestUtils.firstDayOfMonth(), TestUtils.today());

    selector.setStatsSelector(new StatsSelector(range, null));

    AdGroupPage page = adGroupService.get(selector);

    assertNotNull(page);
    assertEquals(new Integer(1), page.getTotalNumEntries());
    assertNotNull(page.getEntries(0).getStats());
  }

  /**
   * Test getting all ad groups in a campaign
   */
  public void testGetAllInCampaign() throws Exception{
    AdGroupSelector selector = new AdGroupSelector ();
    selector.setCampaignIds(new long[] {campaignId});
    AdGroupPage page = adGroupService.get(selector);

    assertNotNull(page);
    assertNotNull(page.getEntries());
    assertTrue("Expected at least 1 entry", page.getTotalNumEntries() >=1 );
  }

  /**
   * Test getting all ad groups.
   */
  public void testGetAll() throws Exception{
    AdGroupSelector selector = new AdGroupSelector();
    AdGroupPage page = adGroupService.get(selector);

    assertNotNull(page);
    assertNotNull(page.getEntries());
    assertTrue("Expected at least 1 entry", page.getTotalNumEntries() >= 1);
  }
}
TOP

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

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.