@Test public void testParserClass() throws Exception { SpecParser parser = new SpecParser(ImmutableList.of(DUMMY_CLASS_NAME)); List<Spec> specs = parser.parse(); assertEquals(1, specs.size()); Spec spec = specs.get(0); assertEquals(UnannotatedTestClass.class, spec.getSpecClass()); assertEquals(DUMMY_CLASS_NAME, spec.getSpecName()); assertEquals(0, spec.getMethods().size()); }
@Test public void testParserMethod() throws Exception { String specString = DUMMY_CLASS_NAME + "#" + DUMMY_METHOD_NAME; SpecParser parser = new SpecParser(ImmutableList.of(specString)); List<Spec> specs = parser.parse(); assertEquals(1, specs.size()); Spec spec = specs.get(0); assertEquals(UnannotatedTestClass.class, spec.getSpecClass()); assertEquals(DUMMY_CLASS_NAME, spec.getSpecName()); assertEquals(ImmutableList.of(DUMMY_METHOD_NAME), spec.getMethods()); }
/** * Parse the specs passed in to the constructor. * * @return List of parsed specs * @throws SpecException */ public List<Spec> parse() throws SpecException { for (String specString : testSpecStrings) { if (specString.indexOf('#') >= 0) { addMethod(specString); continue; } // The specString is expected to be the same as the fully qualified class name if (classNamesInSpecs.contains(specString)) { Spec spec = getOrCreateSpec(specString, specString); if (!spec.getMethods().isEmpty()) { throw new SpecException( specString, "Request for entire class already requesting individual methods"); } continue; } getOrCreateSpec(specString, specString); } return ImmutableList.copyOf(specs.values()); }