Skip to content

Commit

Permalink
Refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
luontola committed Apr 30, 2016
1 parent e921776 commit bc7d1e4
Showing 1 changed file with 11 additions and 8 deletions.
Expand Up @@ -47,9 +47,8 @@ private Dummy2() {

@Test
public void capturing_lambda_classes_contain_no_unnecessary_methods() throws ClassNotFoundException {
Class<?> lambdaClass = Class.forName(Capturing.class.getName() + "$$Lambda$1");

assertThat(getDeclaredMethodNames(lambdaClass), is(ImmutableSet.of("lambdaFactory$", "run")));
assertThat(getMethodsNames(findLambdaClass(Capturing.class)),
is(ImmutableSet.of("lambdaFactory$", "run")));
}

@SuppressWarnings("UnusedDeclaration")
Expand All @@ -62,9 +61,8 @@ private Capturing() {

@Test
public void non_capturing_lambda_classes_contain_no_unnecessary_methods() throws ClassNotFoundException {
Class<?> lambdaClass = Class.forName(NonCapturing.class.getName() + "$$Lambda$1");

assertThat(getDeclaredMethodNames(lambdaClass), is(ImmutableSet.of("lambdaFactory$", "run")));
assertThat(getMethodsNames(findLambdaClass(NonCapturing.class)),
is(ImmutableSet.of("lambdaFactory$", "run")));
}

@SuppressWarnings("UnusedDeclaration")
Expand All @@ -78,7 +76,8 @@ private NonCapturing() {

@Test
public void lambda_bodies_contain_no_unnecessary_methods() throws ClassNotFoundException {
assertThat(getDeclaredMethodNames(HasLambdaBody.class), containsInAnyOrder(startsWith("lambda$main$"), equalTo("main")));
assertThat(getMethodsNames(HasLambdaBody.class),
containsInAnyOrder(startsWith("lambda$main$"), equalTo("main")));
}

@SuppressWarnings("UnusedDeclaration")
Expand All @@ -92,7 +91,11 @@ private void main() {

// helpers

private static Set<String> getDeclaredMethodNames(Class<?> clazz) {
private static Class<?> findLambdaClass(Class<?> clazz) throws ClassNotFoundException {
return Class.forName(clazz.getName() + "$$Lambda$1");
}

private static Set<String> getMethodsNames(Class<?> clazz) {
Method[] methods = clazz.getDeclaredMethods();
Set<String> uniqueNames = new HashSet<>();
for (Method method : methods) {
Expand Down

0 comments on commit bc7d1e4

Please sign in to comment.