### Question:
CrontabParser { CrontabCommandClassNameElement getCommandClassNameElement(String element) { return new CrontabCommandClassNameElement(element.split("\\*")[0]); } CrontabParser(Class<? extends TaskunLog> logImplClass); Crontab parseLine(RawCrontabLine line); List<Integer> getFixedInvocations(int maxValue, CrontabElement crontabElement); long getNextInvocationTime(Calendar currentTime, Crontab crontab); Crontab replaceWildcardsOfMinuteOrHourValue(Crontab crontab); int getCrontabDayOfWeekNumber(Calendar cal); int getFixedMinimumInvocationValue(List<Integer> fixedInvocations); int getFixedSameOrNextInvocationValue(int currentValue, List<Integer> fixedInvocations); int getFixedNextInvocationValue(int currentValue, List<Integer> fixedInvocations); int getFixedNextInvocationValue(int currentValue, int maxValue, CrontabElement element); boolean isInvocationValueContainedInCrontabValue(
            int invocationValue, int maxValue, CrontabElement element); Crontab getIntervalInvocationCrontab(Crontab crontab, String[] elements);  }### Answer:
@Test public void getCommandClassName_A$Crontab() throws Exception { String arg0 = "com.m3.RunnableImpl*23"; CrontabCommandClassNameElement actual = parser.getCommandClassNameElement(arg0); CrontabCommandClassNameElement expected = new CrontabCommandClassNameElement("com.m3.RunnableImpl"); assertEquals(expected, actual); }