public void testAddTestBlocks() { JUnitMessageQueue queue = new JUnitMessageQueue(10); assertEquals(0, queue.getTestBlocks().size()); List<TestInfo[]> expectedBlocks = new ArrayList<TestInfo[]>(); // Add some blocks. { List<TestInfo[]> testBlocks = createTestBlocks(5, 3); queue.addTestBlocks(testBlocks, false); expectedBlocks.addAll(testBlocks); assertEquals(expectedBlocks, queue.getTestBlocks()); } // Try to add an empty block. { List<TestInfo[]> testBlocks = createTestBlocks(5, 0); try { queue.addTestBlocks(testBlocks, false); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { // expected. } assertEquals(expectedBlocks, queue.getTestBlocks()); } // Add last block. { List<TestInfo[]> testBlocks = createTestBlocks(3, 1); queue.addTestBlocks(testBlocks, true); expectedBlocks.addAll(testBlocks); assertEquals(expectedBlocks, queue.getTestBlocks()); } // Try to add more blocks. { List<TestInfo[]> testBlocks = createTestBlocks(1, 1); try { queue.addTestBlocks(testBlocks, false); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { // expected. } assertEquals(expectedBlocks, queue.getTestBlocks()); } }
/** * Create a {@link JUnitMessageQueue} with the specified number of blocks. * * @param numClients the number of remote clients * @param numBlocks the number of test blocks to add * @param testsPerBlock the number of tests per block * @return the message queue */ private JUnitMessageQueue createQueue(int numClients, int numBlocks, int testsPerBlock) { JUnitMessageQueue queue = new JUnitMessageQueue(numClients); queue.addTestBlocks(createTestBlocks(numBlocks, testsPerBlock), true); return queue; }