/* * This file is part of muCommander, http://www.mucommander.com * Copyright (C) 2002-2016 Maxence Bernard * * muCommander is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * muCommander is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.mucommander.commons.conf; import org.testng.annotations.Test; import java.util.Vector; /** * Test case for the {@link ValueList} class. * @author Nicolas Rinaudo */ public class ValueListTest { // - Test data generation ------------------------------------------------------------------------------------------ // ----------------------------------------------------------------------------------------------------------------- /** * Creates a <code>(0, 1, 2, 3, 4, 5, 6, 7)</code> vector. */ private static Vector<Integer> createIntegerData() { Vector<Integer> data; data = new Vector<Integer>(); for(int i = 1; i < 8; i++) data.add(i); return data; } /** * Creates a <code>(0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5)</code> vector. */ private static Vector<Float> createFloatData() { Vector<Float> data; data = new Vector<Float>(); for(int i = 1; i < 8; i++) data.add(new Float(i + 0.5)); return data; } /** * Creates a <code>(true, false, true, false, true, false, true)</code> vector. */ private static Vector<Boolean> createBooleanData() { Vector<Boolean> data; data = new Vector<Boolean>(); for(int i = 0; i < 7; i++) data.add(i % 2 == 0); return data; } // - Value casting tests ------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------------------------------- /** * Tests the {@link ValueList#valueAt(int)} method. * @param values test data. */ protected void testStringValues(ValueList values) { assert values.size() == 7; for(int i = 0; i < 7; i++) assert Integer.toString(i + 1).equals(values.valueAt(i)); } /** * Tests the {@link ValueList#integerValueAt(int)} method. * @param values test data. */ protected void testIntegerValues(ValueList values) { assert values.size() == 7; for(int i = 0; i < 7; i++) assert i + 1 == values.integerValueAt(i); } /** * Tests the {@link ValueList#longValueAt(int)} method. * @param values test data. */ protected void testLongValues(ValueList values) { assert values.size() == 7; for(int i = 0; i < 7; i++) assert i + 1 == values.longValueAt(i); } /** * Tests the {@link ValueList#floatValueAt(int)} method. * @param values test data. */ protected void testFloatValues(ValueList values) { assert values.size() == 7; for(int i = 0; i < 7; i++) assert i + 1.5 == values.floatValueAt(i); } /** * Tests the {@link ValueList#doubleValueAt(int)} method. * @param values test data. */ protected void testDoubleValues(ValueList values) { assert values.size() == 7; for(int i = 0; i < 7; i++) assert i + 1.5 == values.doubleValueAt(i); } /** * Tests the {@link ValueList#booleanValueAt(int)} method. * @param values test data. */ protected void testBooleanValues(ValueList values) { assert values.size() == 7; for(int i = 0; i < 7; i++) assert (i % 2 == 0) == values.booleanValueAt(i); } /** * Tests the {@link ValueList#listValueAt(int,String)} method. * @param values test data. * @param separator separator to use when creating list values. */ protected void testListValues(ValueList values, String separator) { testStringValues(values.listValueAt(0, separator)); testIntegerValues(values.listValueAt(1, separator)); testLongValues(values.listValueAt(2, separator)); testFloatValues(values.listValueAt(3, separator)); testDoubleValues(values.listValueAt(4, separator)); testBooleanValues(values.listValueAt(5, separator)); } // - Unit tests ---------------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------------------------------- /** * Tests the {@link ValueList#valueAt(int)} method. */ @Test public void testStringValues() { testStringValues(new ValueList(ValueList.toString(createIntegerData(), ";"), ";")); } /** * Tests the {@link ValueList#integerValueAt(int)} method. */ @Test public void testIntegerValues() { testIntegerValues(new ValueList(ValueList.toString(createIntegerData(), ";"), ";")); } /** * Tests the {@link ValueList#longValueAt(int)} method. */ @Test public void testLongValues() { testLongValues(new ValueList(ValueList.toString(createIntegerData(), ";"), ";")); } /** * Tests the {@link ValueList#floatValueAt(int)} method. */ @Test public void testFloatValues() { testFloatValues(new ValueList(ValueList.toString(createFloatData(), ";"), ";")); } /** * Tests the {@link ValueList#doubleValueAt(int)} method. */ @Test public void testDoubleValues() { testDoubleValues(new ValueList(ValueList.toString(createFloatData(), ";"), ";")); } /** * Tests the {@link ValueList#booleanValueAt(int)} method. */ @Test public void testBooleanValues() { testBooleanValues(new ValueList(ValueList.toString(createBooleanData(), ";"), ";")); } /** * Tests the {@link ValueList#listValueAt(int, String)} method. */ @Test public void testListValues() { Vector<String> data; data = new Vector<String>(); data.add(ValueList.toString(createIntegerData(), ";")); data.add(ValueList.toString(createIntegerData(), ";")); data.add(ValueList.toString(createIntegerData(), ";")); data.add(ValueList.toString(createFloatData(), ";")); data.add(ValueList.toString(createFloatData(), ";")); data.add(ValueList.toString(createBooleanData(), ";")); testListValues(new ValueList(ValueList.toString(data, " - "), " - ") , ";"); } }