Skip to content

Commit

Permalink
additional test case
Browse files Browse the repository at this point in the history
  • Loading branch information
hcoles committed Aug 28, 2024
1 parent a53e47e commit 0587e79
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.example.staticinitializers.delayedexecution;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public enum EnumMethodReferenceNotStored {
A(Arrays.asList(1,2,3));

private final List<Integer> l;
EnumMethodReferenceNotStored(List<Integer> list) {
l = list.stream()
.filter(this::doNotMutate)
.collect(Collectors.toList());
}

private boolean doNotMutate(Integer i) {
return i > 2;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.example.staticinitializers.NestedEnumWithLambdaInStaticInitializer;
import com.example.staticinitializers.SecondLevelPrivateMethods;
import com.example.staticinitializers.SingletonWithWorkInInitializer;
import com.example.staticinitializers.delayedexecution.EnumMethodReferenceNotStored;
import com.example.staticinitializers.delayedexecution.EnumMixedFields;
import com.example.staticinitializers.delayedexecution.StaticFunctionField;
import com.example.staticinitializers.delayedexecution.StaticSupplierField;
Expand Down Expand Up @@ -228,6 +229,16 @@ public void suppressesMutationsForStringsStoredToEnumFields() {
.verify();
}

@Test
public void filtersMutationsForMethodReferencesUsedInEnumConstructor() {
v.forClass(EnumMethodReferenceNotStored.class)
.forMethod("doNotMutate")
.forAnyCode()
.mutantsAreGenerated()
.allMutantsAreFiltered()
.verify();
}

private Predicate<MutationDetails> inMethod(String name, String desc) {
return m -> m.getMethod().equals(name) && m.getId().getLocation().getMethodDesc().equals(desc);
}
Expand Down

0 comments on commit 0587e79

Please sign in to comment.