FieldUtil { public static AccessorPrefix determineAccessorPrefix(@Nonnull final String methodName) { Check.notEmpty(methodName, "methodName"); final Matcher m = PATTERN.matcher(methodName); Check.stateIsTrue(m.find(), "passed method name '%s' is not applicable", methodName); return new AccessorPrefix(m.group(1)); } private  FieldUtil(); static AccessorPrefix determineAccessorPrefix(@Nonnull final String methodName); static String determineFieldName(@Nonnull final String methodName);  }
@Test(expected = IllegalEmptyArgumentException.class) public void determineAccessorPrefix_isEmpty() { FieldUtil.determineAccessorPrefix(""); }
@Test(expected = IllegalStateOfArgumentException.class) public void determineAccessorPrefix_isEmtpyAfterTrim() { FieldUtil.determineAccessorPrefix(" "); }
@Test(expected = IllegalNullArgumentException.class) public void determineAccessorPrefix_isNull() { FieldUtil.determineAccessorPrefix(null); }
@Test public void determineAccessorPrefix_successful() { assertEquals(AccessorPrefix.GET, FieldUtil.determineAccessorPrefix("getField")); assertEquals(AccessorPrefix.HAS, FieldUtil.determineAccessorPrefix("hasField")); assertEquals(AccessorPrefix.IS, FieldUtil.determineAccessorPrefix("isField")); assertEquals(AccessorPrefix.GET, FieldUtil.determineAccessorPrefix("getField123")); assertEquals(AccessorPrefix.HAS, FieldUtil.determineAccessorPrefix("hasField123")); assertEquals(AccessorPrefix.IS, FieldUtil.determineAccessorPrefix("isField123")); }
@Test(expected = IllegalStateOfArgumentException.class) public void determineAccessorPrefix_wrongMethodName() { FieldUtil.determineAccessorPrefix("getterMethod"); }