@Test public void invalidSourcePathShouldGiveSpecificErrorMsg() throws NoSuchFieldException { Type type = TestFields.class.getField("setOfSourcePaths").getGenericType(); TypeCoercer<?> coercer = typeCoercerFactory.typeCoercerForType(type); Path baratheon = Paths.get("Baratheon.java"); Path lannister = Paths.get("Lannister.java"); Path stark = Paths.get("Stark.java"); Path targaryen = Paths.get("Targaryen.java"); ImmutableList<Path> input = ImmutableList.of(baratheon, lannister, stark, targaryen); for (Path p : input) { if (!p.equals(baratheon)) { filesystem.touch(p); } } try { coercer.coerce(buildRuleResolver, filesystem, Paths.get(""), input); } catch (CoerceFailedException e) { String result = e.getMessage(); String expected = "cannot coerce 'Baratheon.java'"; for (Path p : input) { if (!p.equals(baratheon)) { assertFalse(result.contains(p.toString())); } } assertTrue(result.contains(expected)); } }
@Test public void coercingSortedSetsShouldThrowOnDuplicates() throws CoerceFailedException, NoSuchFieldException { Type type = TestFields.class.getField("sortedSetOfStrings").getGenericType(); TypeCoercer<?> coercer = typeCoercerFactory.typeCoercerForType(type); ImmutableList<String> input = ImmutableList.of("a", "a"); try { coercer.coerce(buildRuleResolver, filesystem, Paths.get(""), input); fail(); } catch (CoerceFailedException e) { assertEquals("duplicate element \"a\"", e.getMessage()); } }