/************************************************************************* * Copyright (c) 2015 Lemberg Solutions * * 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.ls.widgets.map; import android.test.AndroidTestCase; import com.ls.widgets.map.config.OfflineMapConfig; public class OfflineMapConfigTest extends AndroidTestCase { private static final int TEST_IMAGE_WIDTH = 1024; private static final int TEST_IMAGE_HEIGHT = 768; private static final int TEST_TILE_SIZE = 256; private static final int TEST_OVERLAP = 1; private static final String TEST_IMAGE_FORMAT = "png"; private static final String MAP_ROOT_PATH = "map"; private OfflineMapConfig config; protected void setUp() throws Exception { config = new OfflineMapConfig(MAP_ROOT_PATH, TEST_IMAGE_WIDTH, TEST_IMAGE_HEIGHT, TEST_TILE_SIZE, TEST_OVERLAP, TEST_IMAGE_FORMAT); super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public void testDefaults() { assertEquals(0, config.getMaxZoomLevelLimit()); assertEquals(0, config.getMinZoomLevelLimit()); assertEquals(5, config.getTouchAreaSize()); assertEquals(64, config.getTrackballScrollStepX()); assertEquals(64, config.getTrackballScrollStepY()); assertEquals(false, config.isPinchZoomEnabled()); assertEquals(false, config.isFlingEnabled()); assertEquals(true, config.isSoftwareZoomEnabled()); assertEquals(true, config.isZoomBtnsVisible()); } public void testConstructor() { assertEquals(TEST_IMAGE_WIDTH, config.getImageWidth()); assertEquals(TEST_IMAGE_HEIGHT, config.getImageHeight()); assertEquals(TEST_TILE_SIZE, config.getTileSize()); assertEquals(TEST_OVERLAP, config.getOverlap()); assertEquals(TEST_IMAGE_FORMAT, config.getImageFormat()); } public void testCopyConstructor() { // If this exception is thrown, please, update this test in order to test new members or // throw the tests for removed fields out. assertEquals(19, config.getClass().getDeclaredFields().length); config.setFlingEnabled(true); config.setMaxZoomLevelLimit(15); config.setMinZoomLevelLimit(10); config.setPinchZoomEnabled(true); config.setMapCenteringEnabled(true); config.setSoftwareZoomEnabled(false); config.setTouchAreaSize(10); config.setTrackballScrollStepX(25); config.setTrackballScrollStepY(30); config.setZoomBtnsVisible(false); OfflineMapConfig testConfig = new OfflineMapConfig(config); assertEquals(MAP_ROOT_PATH, testConfig.getMapRootPath()); assertEquals(true, testConfig.isFlingEnabled()); assertEquals(15, testConfig.getMaxZoomLevelLimit()); assertEquals(10, testConfig.getMinZoomLevelLimit()); assertEquals(true, testConfig.isPinchZoomEnabled()); assertEquals(true, testConfig.isMapCenteringEnabled()); assertEquals(false, testConfig.isSoftwareZoomEnabled()); assertEquals(10, testConfig.getTouchAreaSize()); assertEquals(25, testConfig.getTrackballScrollStepX()); assertEquals(30, testConfig.getTrackballScrollStepY()); assertEquals(false, testConfig.isZoomBtnsVisible()); assertNotSame(config, testConfig); } public void testFlingEnabledOption() { config.setFlingEnabled(true); assertEquals(true, config.isFlingEnabled()); config.setFlingEnabled(false); assertEquals(false, config.isFlingEnabled()); } public void testMaxZoomLevelLimitOption() { for (int i=-1000; i<0; ++i) { boolean result = false; try { config.setMaxZoomLevelLimit(i); } catch (IllegalArgumentException e) { result = true; } assertTrue("Exception was not thrown for i=" + i, result); } for (int i=0; i<1000; ++i) { config.setMaxZoomLevelLimit(i); assertEquals(i, config.getMaxZoomLevelLimit()); } } public void testMinZoomLevelLimitOption() { for (int i=-1000; i<0; ++i) { boolean result = false; try { config.setMinZoomLevelLimit(i); } catch (IllegalArgumentException e) { result = true; } assertTrue("Exception was not thrown for i=" + i, result); } for (int i=0; i<1000; ++i) { config.setMinZoomLevelLimit(i); assertEquals(i, config.getMinZoomLevelLimit()); } } public void testPinchZoomEnabledOption() { config.setPinchZoomEnabled(true); assertEquals(true, config.isPinchZoomEnabled()); config.setPinchZoomEnabled(false); assertEquals(false, config.isPinchZoomEnabled()); } public void testSoftwareZoomEnabledOption() { config.setSoftwareZoomEnabled(true); assertEquals(true, config.isSoftwareZoomEnabled()); config.setSoftwareZoomEnabled(false); assertEquals(false, config.isSoftwareZoomEnabled()); } public void testTouchAreaSizeOption() { for (int i=-1000; i<=0; ++i) { boolean result = false; try { config.setTouchAreaSize(i); } catch (IllegalArgumentException e) { result = true; } assertTrue("Exception was not thrown for i=" + i, result); } for (int i=1; i<1000; ++i) { config.setTouchAreaSize(i); assertEquals(i, config.getTouchAreaSize()); } } public void testTrackballScrollStepXOption() { for (int i=-1000; i< 0; ++i) { boolean result = false; try { config.setTrackballScrollStepX(i); } catch (IllegalArgumentException e) { result = true; } assertTrue("Exception was not thrown for i=" + i, result); } for (int i=0; i<1000; ++i) { config.setTrackballScrollStepX(i); assertEquals(i, config.getTrackballScrollStepX()); } } public void testTrackballScrollStepYOption() { for (int i=-1000; i< 0; ++i) { boolean result = false; try { config.setTrackballScrollStepY(i); } catch (IllegalArgumentException e) { result = true; } assertTrue("Exception was not thrown for i=" + i, result); } for (int i=0; i<1000; ++i) { config.setTrackballScrollStepX(i); assertEquals(i, config.getTrackballScrollStepX()); } } public void testZoomBtnsVisibleOption() { config.setZoomBtnsVisible(true); assertEquals(true, config.isZoomBtnsVisible()); config.setZoomBtnsVisible(false); assertEquals(false, config.isZoomBtnsVisible()); } }