package jReto.unit; import jReto.util.TestData; import org.junit.Test; import de.tum.in.www1.jReto.connectivity.DefaultDataConsumer; import de.tum.in.www1.jReto.connectivity.DefaultDataSource; /** * Tests for DefaultDataConsumer and DefaultDataSource. * */ public class DefaultDataProcessingTest { @Test (expected = IllegalArgumentException.class) public void invalidSourceTest1() { DefaultDataSource source = new DefaultDataSource(TestData.generate(0)); source.getData(0, 1); } @Test (expected = IllegalArgumentException.class) public void invalidSourceTest2() { DefaultDataSource source = new DefaultDataSource(TestData.generate(100)); source.getData(50, 51); } @Test (expected = IllegalArgumentException.class) public void invalidConsumerTest1() { DefaultDataConsumer consumer = new DefaultDataConsumer(0); consumer.consume(TestData.generate(1)); } @Test (expected = IllegalArgumentException.class) public void invalidConsumerTest2() { DefaultDataConsumer consumer = new DefaultDataConsumer(100); consumer.consume(TestData.generate(50)); consumer.consume(TestData.generate(51)); } @Test public void testDataGeneration() { int length = 100; TestData.verify(TestData.generate(length), length); } void testDataProcessing(int dataLength, int stepSize) { DefaultDataSource source = new DefaultDataSource(TestData.generate(dataLength)); DefaultDataConsumer consumer = new DefaultDataConsumer(dataLength); for (int i=0; i<dataLength; i+=stepSize) { consumer.consume(source.getData(i, Math.min(dataLength-i, stepSize))); } TestData.verify(consumer.getData(), dataLength); } @Test public void testSimpleDataProcessing1() { testDataProcessing(1, 100); } @Test public void testSimpleDataProcessing2() { testDataProcessing(2, 1); } @Test public void testSimpleDataProcessing3() { testDataProcessing(500, 13); } }