/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2013 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * 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 org.pentaho.di.core; import junit.framework.TestCase; /** * Test class for counter functionality. * * @author Sven Boden */ public class CounterTest extends TestCase { /** * Constructor test 1. */ public void testConstructor1() { Counter cnt1 = new Counter(); assertEquals( 1L, cnt1.getCounter() ); assertEquals( 1L, cnt1.getIncrement() ); assertEquals( 0L, cnt1.getMaximum() ); assertEquals( 1L, cnt1.getStart() ); assertFalse( cnt1.isLoop() ); Counter cnt2 = new Counter( 2L ); assertEquals( 2L, cnt2.getCounter() ); assertEquals( 1L, cnt2.getIncrement() ); assertEquals( 0L, cnt2.getMaximum() ); assertEquals( 2L, cnt2.getStart() ); assertFalse( cnt2.isLoop() ); Counter cnt3 = new Counter( 3L, 2L ); assertEquals( 3L, cnt3.getCounter() ); assertEquals( 2L, cnt3.getIncrement() ); assertEquals( 0L, cnt3.getMaximum() ); assertEquals( 3L, cnt3.getStart() ); assertFalse( cnt3.isLoop() ); Counter cnt4 = new Counter( 5L, 2L, 20L ); assertEquals( 5L, cnt4.getCounter() ); assertEquals( 2L, cnt4.getIncrement() ); assertEquals( 20L, cnt4.getMaximum() ); assertEquals( 5L, cnt4.getStart() ); assertTrue( cnt4.isLoop() ); } /** * Test the setting of stuff. */ public void testSets() { Counter cnt1 = new Counter(); cnt1.setCounter( 5L ); assertEquals( 5L, cnt1.getCounter() ); cnt1.setIncrement( 2L ); assertEquals( 2L, cnt1.getIncrement() ); cnt1.setLoop( true ); assertTrue( cnt1.isLoop() ); cnt1.setMaximum( 100L ); assertEquals( 100L, cnt1.getMaximum() ); } /** * Test next(). */ public void testNext() { Counter cnt1 = new Counter(); cnt1.setCounter( 2L ); assertEquals( 2L, cnt1.next() ); assertEquals( 3L, cnt1.next() ); assertEquals( 4L, cnt1.next() ); assertEquals( 5L, cnt1.next() ); assertEquals( 6L, cnt1.next() ); assertEquals( 7L, cnt1.next() ); assertEquals( 8L, cnt1.next() ); assertEquals( 9L, cnt1.next() ); assertEquals( 10L, cnt1.next() ); Counter cnt2 = new Counter(); cnt2.setCounter( 1L ); cnt2.setIncrement( 3L ); cnt2.setMaximum( 10L ); assertEquals( 1L, cnt2.next() ); assertEquals( 4L, cnt2.next() ); assertEquals( 7L, cnt2.next() ); assertEquals( 10L, cnt2.next() ); assertEquals( 13L, cnt2.next() ); Counter cnt3 = new Counter(); cnt3.setCounter( 1L ); cnt3.setIncrement( 3L ); cnt3.setMaximum( 11L ); cnt3.setLoop( true ); assertEquals( 1L, cnt3.next() ); assertEquals( 4L, cnt3.next() ); assertEquals( 7L, cnt3.next() ); assertEquals( 10L, cnt3.next() ); assertEquals( 1L, cnt3.next() ); assertEquals( 4L, cnt3.next() ); assertEquals( 7L, cnt3.next() ); assertEquals( 10L, cnt3.next() ); assertEquals( 1L, cnt3.next() ); cnt3.setCounter( 10L ); assertEquals( 10L, cnt3.next() ); } }