@SuppressWarnings("unused") SomeClass(Integer a, double b) { boolean valid = a != null && b >= 0; if (valid) { validCaptures.add(new SomeClassCapture(a, b)); } else { invalidCaptures.add(new SomeClassCapture(a, b)); } Objects.requireNonNull(a); if (b < 0) { throw new IllegalArgumentException("b may not be negative"); } } }
@Test public void testPreconditionsAndValidCombinations_ArgumentSetsGiven_ShouldTestInvalidAndValidCombinations() { tester.addValidArgs(0, 0, 1); tester.addInvalidArgs(0, NullPointerException.class, new Object[] {null}); tester.addValidArgs(1, 0.0, 0.1); tester.addInvalidArgs(1, IllegalArgumentException.class, -0.1, -0.2); tester.testPreconditionsAndValidCombinations(); assertEquals(4, validCaptures.size()); assertTrue(validCaptures.contains(new SomeClassCapture(0, 0.0))); assertTrue(validCaptures.contains(new SomeClassCapture(0, 0.1))); assertTrue(validCaptures.contains(new SomeClassCapture(1, 0.0))); assertTrue(validCaptures.contains(new SomeClassCapture(1, 0.1))); assertEquals(6, invalidCaptures.size()); assertTrue(invalidCaptures.contains(new SomeClassCapture(null, 0.0))); assertTrue(invalidCaptures.contains(new SomeClassCapture(null, 0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(0, -0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(0, -0.2))); assertTrue(invalidCaptures.contains(new SomeClassCapture(1, -0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(1, -0.2))); }
@Test public void testPreconditions_ArgumentSetsViaShortcutsGiven_ShouldTestInvalidCombinations() { tester.addValidArgs(0, 0, 1); tester.addInvalidNpeArg(0); tester.addValidArgs(1, 0.0, 0.1); tester.addInvalidIaeArgs(1, -0.1, -0.2); tester.testPreconditions(); assertEquals(0, validCaptures.size()); assertEquals(6, invalidCaptures.size()); assertTrue(invalidCaptures.contains(new SomeClassCapture(null, 0.0))); assertTrue(invalidCaptures.contains(new SomeClassCapture(null, 0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(0, -0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(0, -0.2))); assertTrue(invalidCaptures.contains(new SomeClassCapture(1, -0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(1, -0.2))); }
@Test public void testPreconditions_ArgumentSetsGiven_ShouldTestInvalidCombinations() { tester.addValidArgs(0, 0, 1); tester.addInvalidArgs(0, NullPointerException.class, new Object[] {null}); tester.addValidArgs(1, 0.0, 0.1); tester.addInvalidArgs(1, IllegalArgumentException.class, -0.1, -0.2); tester.testPreconditions(); assertEquals(0, validCaptures.size()); assertEquals(6, invalidCaptures.size()); assertTrue(invalidCaptures.contains(new SomeClassCapture(null, 0.0))); assertTrue(invalidCaptures.contains(new SomeClassCapture(null, 0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(0, -0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(0, -0.2))); assertTrue(invalidCaptures.contains(new SomeClassCapture(1, -0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(1, -0.2))); } @Test
@Test public void testPreconditions_EqualArgumentSetsGiven_ShouldIgnoreDupesAndTestInvalidCombinations() { Double bValid = new Double(0.0); Double bInvalid = new Double(-0.1); tester.addValidArgs(0, 0, 0); tester.addInvalidArgs(0, NullPointerException.class, null, null); tester.addValidArgs(1, bValid, bValid, 0.0); tester.addInvalidArgs(1, IllegalArgumentException.class, bInvalid, bInvalid, -0.1); tester.testPreconditions(); assertEquals(0, validCaptures.size()); assertEquals(2, invalidCaptures.size()); assertTrue(invalidCaptures.contains(new SomeClassCapture(0, -0.1))); assertTrue(invalidCaptures.contains(new SomeClassCapture(null, 0.0))); }
@Test public void testValidArguments_ArgumentSetsGiven_ShouldTestInvalidCombinations() { tester.addValidArgs(0, 0, 1); tester.addValidArgs(1, 0.0, 0.1); tester.testValidCombinations(); assertEquals(4, validCaptures.size()); assertEquals(0, invalidCaptures.size()); assertTrue(validCaptures.contains(new SomeClassCapture(0, 0.0))); assertTrue(validCaptures.contains(new SomeClassCapture(0, 0.1))); assertTrue(validCaptures.contains(new SomeClassCapture(1, 0.0))); assertTrue(validCaptures.contains(new SomeClassCapture(1, 0.1))); }
@Test public void testValidArguments_EqualArgumentSetsGiven_ShouldIgnoreDupesAndTestValidCombinations() { Double b = new Double(0.0); tester.addValidArgs(0, 0, 0); tester.addValidArgs(1, b, b, 0.0); tester.testValidCombinations(); assertEquals(1, validCaptures.size()); assertEquals(0, invalidCaptures.size()); assertTrue(validCaptures.contains(new SomeClassCapture(0, 0.0))); }
@Test public void addArgs_NullAsVarargs_ShouldAccept() { tester.addValidArgs(0, 0); tester.addInvalidArgs(0, NullPointerException.class, (Object[]) null); tester.addValidArgs(1, 0.0); tester.testPreconditions(); assertEquals(1, invalidCaptures.size()); assertTrue(invalidCaptures.contains(new SomeClassCapture(null, 0.0))); }