Package example

Source Code of example.TestFilteredQueries

// Copyright 2010 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 example;

import com.google.gdata.client.analytics.DataQuery;

import junit.framework.TestCase;

import java.util.ArrayList;
import java.util.List;

/**
* Test suite for FilteredQueries. Extends testCase.
*
* @author api.nickm@google.com (Nick Mihailovski)
*/
public class TestFilteredQueries extends TestCase {

  private FilteredQueries queries = new FilteredQueries();

  /**
   * Test setQuery stores the original filter.
   */
  public void testSetQuery() {
    String filter = "ga:source==foo";
    DataQuery query = TestUtil.getFilledDataQuery();
    query.setFilters(filter);
    queries.setQuery(query);

    String result = queries.getOriginalFilter();
    assertTrue(filter.equals(result));
  }

  /**
   * Test setQuery stores an empty string if no filter is present.
   */
  public void testSetQuery_noFilter() {
    DataQuery query = TestUtil.getFilledDataQuery();
    query.setFilters(null);
    queries.setQuery(query);

    String result = queries.getOriginalFilter();
    assertTrue("".equals(result));
  }

  /**
   * Tests getting a filtered query.
   */
  public void testGetFilteredQuery() {
    String filter = "ga:landingPagePath==/foo";
    DataQuery expectedQuery = TestUtil.getNewDataQuery();
    expectedQuery.setFilters(filter);

    queries.setQuery(TestUtil.getNewDataQuery());

    queries.setFilterList(new ArrayList<String>());
    assertNull(queries.getFilteredQuery(0));

    List<String> filterList = new ArrayList<String>();
    queries.setFilterList(filterList);
    filterList.add(filter);

    assertEquals(expectedQuery.getUrl(), queries.getFilteredQuery(0).getUrl());
    assertNull(queries.getFilteredQuery(1));
    assertNull(queries.getFilteredQuery(-1));
  }

  /**
   * Tests getting a filtered query from a query that previously has a filter.
   */
  public void testGetFilteredQuery_withPrevFilter() {
    String originalFilter = "ga:source==google;ga:visits>5;";
    DataQuery query = TestUtil.getFilledDataQuery();
    query.setFilters(originalFilter);

    String newFilter = "ga:landingPagePath==/foo";
    List<String> filterList = new ArrayList<String>();
    filterList.add(newFilter);

    queries.setQuery(query);
    queries.setFilterList(filterList);
    DataQuery resultQuery = queries.getFilteredQuery(0);

    String expected = originalFilter + newFilter;
    assertEquals(expected, resultQuery.getFilters());
  }

  /**
   * Tests Iterator hasNext implementation.
   */
  public void testHasNext() {
    assertFalse(queries.hasNext());

    List<String> filterList = new ArrayList<String>();
    filterList.add("/foo");

    queries.setFilterList(filterList);
    assertTrue(queries.hasNext());
  }

  /**
   * Tests Iterator next implementation.
   */
  public void testNext() {
    String filter1 = "ga:source==google";
    String filter2 = "ga:source==yahoo";


    List<String> filterList = new ArrayList<String>();
    filterList.add(filter1);
    filterList.add(filter2);
    queries.setFilterList(filterList);
    queries.setQuery(TestUtil.getNewDataQuery());

    DataQuery expectedQuery = TestUtil.getNewDataQuery();
    expectedQuery.setFilters(filter1);
    assertEquals(expectedQuery.getUrl(), queries.next().getUrl());
    assertEquals(1, queries.getCounter());

    expectedQuery.setFilters(filter2);
    assertEquals(expectedQuery.getUrl(), queries.next().getUrl());
    assertEquals(2, queries.getCounter());

    assertNull(queries.next());
    assertEquals(3, queries.getCounter());
  }
}
TOP

Related Classes of example.TestFilteredQueries

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.