package net.bytebuddy.implementation.bytecode; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.util.Arrays; import java.util.Collection; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @RunWith(Parameterized.class) public class StackSizeTest { private final Class<?> type; private final int size; private final StackSize stackSize; public StackSizeTest(Class<?> type, int size, StackSize stackSize) { this.type = type; this.size = size; this.stackSize = stackSize; } @Parameterized.Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][]{ {void.class, 0, StackSize.ZERO}, {boolean.class, 1, StackSize.SINGLE}, {byte.class, 1, StackSize.SINGLE}, {short.class, 1, StackSize.SINGLE}, {int.class, 1, StackSize.SINGLE}, {char.class, 1, StackSize.SINGLE}, {float.class, 1, StackSize.SINGLE}, {long.class, 2, StackSize.DOUBLE}, {double.class, 2, StackSize.DOUBLE}, {Object.class, 1, StackSize.SINGLE}, }); } @Test public void testStackSize() throws Exception { assertThat(StackSize.of(type), is(stackSize)); } @Test public void testStackSizeValue() throws Exception { assertThat(StackSize.of(type).getSize(), is(size)); } @Test public void testStackSizeResolution() throws Exception { assertThat(StackSize.of(size), is(stackSize)); } }