Package com.google.api.adwords.v201008

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

// 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.AdExtension;
import com.google.api.adwords.v201008.cm.AdExtensionOverride;
import com.google.api.adwords.v201008.cm.AdExtensionOverrideOperation;
import com.google.api.adwords.v201008.cm.AdExtensionOverridePage;
import com.google.api.adwords.v201008.cm.AdExtensionOverrideReturnValue;
import com.google.api.adwords.v201008.cm.AdExtensionOverrideSelector;
import com.google.api.adwords.v201008.cm.AdExtensionOverrideServiceInterface;
import com.google.api.adwords.v201008.cm.AdExtensionOverrideStatus;
import com.google.api.adwords.v201008.cm.LocationOverrideInfo;
import com.google.api.adwords.v201008.cm.LocationOverrideInfoRadiusUnits;
import com.google.api.adwords.v201008.cm.Operator;
import com.google.api.adwords.v201008.cm.OverrideInfo;

/**
* Functional tests for AdExtensionOverrideService.
*
* @author api.naoki.ishihara@gmail.com (Naoki Ishihara)
*/
public class AdExtensionOverrideServiceTest extends TestCase {
  private AdWordsUser user = null;
  private TestUtils testUtils = null;
  private AdExtensionOverrideServiceInterface service = null;

  private long campaignId;
  private long adGroupId;
  private long adIdWithExtension;
  private long adIdWithoutExtension;
  private long adExtensionId;

  /**
   * Set up the test fixtures.
   */
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    user = new AdWordsUser("test_data/test.properties");
    service = user.getService(AdWordsService.V201008.AD_EXTENSION_OVERRIDE_SERVICE);

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

    adIdWithExtension = testUtils.createTextAd(adGroupId);
    adIdWithoutExtension = testUtils.createTextAd(adGroupId);
    testUtils.createAdExtensionOverride(adIdWithExtension, adExtensionId);
  }

  /**
   * Test adding an ad extension override.
   */
  public void testAdd() throws Exception {
    // Create ad extension override.
    AdExtension adExtension = new AdExtension();
    adExtension.setId(adExtensionId);

    AdExtensionOverride adExtensionOverride = new AdExtensionOverride();
    adExtensionOverride.setAdId(adIdWithoutExtension);
    adExtensionOverride.setAdExtension(adExtension);
    adExtensionOverride.setOverrideInfo(new OverrideInfo(new LocationOverrideInfo(new Integer(30),
        LocationOverrideInfoRadiusUnits.MILES)));
    adExtensionOverride.setStatus(AdExtensionOverrideStatus.ACTIVE);

    // Create operations.
    AdExtensionOverrideOperation operation = new AdExtensionOverrideOperation();
    operation.setOperand(adExtensionOverride);
    operation.setOperator(Operator.ADD);

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

    // Add ad extension override.
    AdExtensionOverrideReturnValue result = service.mutate(operations);
    AdExtensionOverride testAdExtensionOverride = result.getValue()[0];

    // Exclude generated fields.
    adExtensionOverride.setAdExtension(testAdExtensionOverride.getAdExtension());
    adExtensionOverride.setApprovalStatus(testAdExtensionOverride.getApprovalStatus());
    adExtensionOverride.setStats(testAdExtensionOverride.getStats());

    TestUtils.assertDeepReflectionEquals(adExtensionOverride, testAdExtensionOverride);
  }

  /**
   * Test removing an ad extension override.
   */
  public void testRemove() throws Exception {
    // Create ad extension and ad extension override
    AdExtension adExtension = new AdExtension();
    adExtension.setId(adExtensionId);

    AdExtensionOverride adExtensionOverride = new AdExtensionOverride();
    adExtensionOverride.setAdId(adIdWithExtension);
    adExtensionOverride.setAdExtension(adExtension);

    // Create operations
    AdExtensionOverrideOperation operation = new AdExtensionOverrideOperation();
    operation.setOperand(adExtensionOverride);
    operation.setOperator(Operator.REMOVE);

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

    // Add ad extension override.
    AdExtensionOverrideReturnValue result = service.mutate(operations);
    AdExtensionOverride testAdExtensionOverride = result.getValue()[0];

    assertEquals(testAdExtensionOverride.getStatus(), AdExtensionOverrideStatus.DELETED);
  }

  /**
   * Test getting an ad extension override.
   */
  public void testGet() throws Exception {
    // Create selector.
    AdExtensionOverrideSelector selector = new AdExtensionOverrideSelector();
    selector.setAdIds(new long[] {adIdWithExtension});
    selector.setAdExtensionIds(new long[] {adExtensionId});
    selector.setStatuses(new AdExtensionOverrideStatus[] {AdExtensionOverrideStatus.ACTIVE,
        AdExtensionOverrideStatus.DELETED});

    AdExtensionOverridePage page = service.get(selector);

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

  /**
   * Test getting all ad extension override for an ad.
   */
  public void testGetAllForAd() throws Exception {
    // Create selector.
    AdExtensionOverrideSelector selector = new AdExtensionOverrideSelector();
    selector.setAdIds(new long[] {adIdWithExtension});

    AdExtensionOverridePage page = service.get(selector);

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

  /**
   * Test getting all ad extension overrides for an ad extension.
   */
  public void testGetAllForAdExtension() throws Exception {
    // Create selector.
    AdExtensionOverrideSelector selector = new AdExtensionOverrideSelector();
    selector.setAdExtensionIds(new long[] {adExtensionId});

    AdExtensionOverridePage page = service.get(selector);

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

  /**
   * Test getting all ad extension override for a campaign.
   */
  public void testGetAllForCampaign() throws Exception {
    AdExtensionOverrideSelector selector = new AdExtensionOverrideSelector();
    selector.setCampaignIds(new long[] {campaignId});

    AdExtensionOverridePage page = service.get(selector);

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

  /**
   * Test getting all ad extension overrides.
   */
  public void testGetAll() throws Exception {
    AdExtensionOverrideSelector selector = new AdExtensionOverrideSelector();

    AdExtensionOverridePage page = service.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.AdExtensionOverrideServiceTest

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.