/*
 * Copyright 2012 Google Inc.
 * 
 * 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.android.apps.mytracks.services;

import junit.framework.TestCase;

/**
 * Tests the {@link AdaptiveLocationListenerPolicy}.
 * 
 * @author youtaol
 */
public class AdaptiveLocationListenerPolicyTest extends TestCase {

  private AdaptiveLocationListenerPolicy adocationListenerPolicy;
  private static final long MIN = 1000;
  private static final long MAX = 3000;
  private static final int MIN_DISTANCE = 10;
  private static final long NEW_IDLE_TIME_BIG = 10000;
  private static final long NEW_IDLE_TIME_NORMAL = 5000;
  private static final long NEW_IDLE_TIME_SMALL = 2000;
  private static final long NEW_IDLE_TIME_LESS_THAN_MIN = 500;

  @Override
  protected void setUp() throws Exception {
    super.setUp();
    adocationListenerPolicy = new AdaptiveLocationListenerPolicy(MIN, MAX, MIN_DISTANCE);
  }

  /**
   * Tests the
   * {@link AdaptiveLocationListenerPolicy#getDesiredPollingInterval()} in four situations.
   * <ul>
   * <li>The newIdleTime is bigger than max interval.</li>
   * <li>The newIdleTime is between min and max interval.</li>
   * <li>The newIdleTime is smaller than max interval.</li>
   * <li>The newIdleTime is smaller than the smallest interval unit.</li>
   * </ul> 
   */
  public void testGetDesiredPollingInterval() {
    adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_BIG);
    assertEquals(MAX, adocationListenerPolicy.getDesiredPollingInterval());

    adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_NORMAL);
    assertEquals((NEW_IDLE_TIME_NORMAL / 2000)
        * 1000,
        adocationListenerPolicy.getDesiredPollingInterval());
    
    adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_SMALL);
    assertEquals(MIN, adocationListenerPolicy.getDesiredPollingInterval());

    adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_LESS_THAN_MIN);
    assertEquals(MIN, adocationListenerPolicy.getDesiredPollingInterval());
  }
  
  /**
   * Tests the method {@link AdaptiveLocationListenerPolicy#getMinDistance()}.
   */
  public void testGetMinDistance() {
    assertEquals(MIN_DISTANCE, adocationListenerPolicy.getMinDistance());
  }
}

/*
 * Copyright 2012 Google Inc.
 * 
 * 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.android.apps.mytracks.services;

import junit.framework.TestCase;

/**
 * Tests the {@link AdaptiveLocationListenerPolicy}.
 * 
 * @author youtaol
 */
public class AdaptiveLocationListenerPolicyTest extends TestCase {

  private AdaptiveLocationListenerPolicy adocationListenerPolicy;
  private static final long MIN = 1000;
  private static final long MAX = 3000;
  private static final int MIN_DISTANCE = 10;
  private static final long NEW_IDLE_TIME_BIG = 10000;
  private static final long NEW_IDLE_TIME_NORMAL = 5000;
  private static final long NEW_IDLE_TIME_SMALL = 2000;
  private static final long NEW_IDLE_TIME_LESS_THAN_MIN = 500;

  @Override
  protected void setUp() throws Exception {
    super.setUp();
    adocationListenerPolicy = new AdaptiveLocationListenerPolicy(MIN, MAX, MIN_DISTANCE);
  }

  /**
   * Tests the
   * {@link AdaptiveLocationListenerPolicy#getDesiredPollingInterval()} in four
   * situations.
   * <ul>
   * <li>The newIdleTime is bigger than max interval.</li>
   * <li>The newIdleTime is between min and max interval.</li>
   * <li>The newIdleTime is smaller than max interval.</li>
   * <li>The newIdleTime is smaller than the smallest interval unit.</li>
   * </ul>
   */
  public void testGetDesiredPollingInterval() {
    adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_BIG);
    assertEquals(MAX, adocationListenerPolicy.getDesiredPollingInterval());

    adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_NORMAL);
    // First get the half of NEW_IDLE_TIME_NORMAL, and then round it to the
    // nearest second.
    assertEquals((NEW_IDLE_TIME_NORMAL / 2 / 1000) * 1000,
        adocationListenerPolicy.getDesiredPollingInterval());

    adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_SMALL);
    assertEquals(MIN, adocationListenerPolicy.getDesiredPollingInterval());

    adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_LESS_THAN_MIN);
    assertEquals(MIN, adocationListenerPolicy.getDesiredPollingInterval());
  }

  /**
   * Tests the method {@link AdaptiveLocationListenerPolicy#getMinDistance()}.
   */
  public void testGetMinDistance() {
    assertEquals(MIN_DISTANCE, adocationListenerPolicy.getMinDistance());
  }
}

Add a comment about a assertion.