package net.bytebuddy.test.utility; import java.util.ArrayList; import java.util.List; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; public class CallTraceable { protected final List<MethodCall> methodCalls; public CallTraceable() { methodCalls = new ArrayList<MethodCall>(); } public void register(String name, Object... arguments) { methodCalls.add(new MethodCall(name, arguments)); } public void assertOnlyCall(String name, Object... arguments) { assertThat(methodCalls.size(), is(1)); assertThat(methodCalls.get(0).name, is(name)); assertThat(methodCalls.get(0).arguments, is(arguments)); } public void assertZeroCalls() { assertThat(methodCalls.size(), is(0)); } public void reset() { methodCalls.clear(); } protected static class MethodCall { public final String name; public final Object arguments[]; public MethodCall(String name, Object... arguments) { this.name = name; this.arguments = arguments; } } }