package net.bytebuddy.description.modifier; import net.bytebuddy.test.utility.ObjectPropertyAssertion; import org.junit.Test; import org.objectweb.asm.Opcodes; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; public class ModifierContributorResolverTest { @Test public void testForType() throws Exception { assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, TypeManifestation.FINAL).resolve(), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL)); assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, TypeManifestation.INTERFACE, TypeManifestation.FINAL).resolve(), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL)); assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, TypeManifestation.FINAL).resolve(1), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL | 1)); } @Test public void testForField() throws Exception { assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, FieldManifestation.FINAL).resolve(), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL)); assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, FieldManifestation.VOLATILE, FieldManifestation.FINAL).resolve(), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL)); assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, FieldManifestation.FINAL).resolve(1), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL | 1)); } @Test public void testForMethod() throws Exception { assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, MethodManifestation.FINAL).resolve(), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL)); assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, MethodManifestation.ABSTRACT, MethodManifestation.FINAL).resolve(), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL)); assertThat(ModifierContributor.Resolver.of(Visibility.PUBLIC, MethodManifestation.FINAL).resolve(1), is(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL | 1)); } @Test public void testForParameter() throws Exception { assertThat(ModifierContributor.Resolver.of(ProvisioningState.MANDATED, ParameterManifestation.FINAL).resolve(), is(Opcodes.ACC_MANDATED | Opcodes.ACC_FINAL)); assertThat(ModifierContributor.Resolver.of(ProvisioningState.MANDATED, ParameterManifestation.PLAIN, ParameterManifestation.FINAL).resolve(), is(Opcodes.ACC_MANDATED | Opcodes.ACC_FINAL)); assertThat(ModifierContributor.Resolver.of(ProvisioningState.MANDATED, ParameterManifestation.FINAL).resolve(1), is(Opcodes.ACC_MANDATED | Opcodes.ACC_FINAL | 1)); } @Test public void testObjectProperties() throws Exception { ObjectPropertyAssertion.of(ModifierContributor.Resolver.class).apply(); } }