package rocks.inspectit.shared.all.instrumentation.classcache;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import java.lang.reflect.Modifier;
import org.testng.annotations.Test;
public class ModifiersTest {
public class IsPublic extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifier.PUBLIC);
boolean result = Modifiers.isPublic(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifier.PUBLIC | Modifier.STATIC);
boolean result = Modifiers.isPublic(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.STATIC);
boolean result = Modifiers.isPublic(m);
assertThat(result, is(false));
}
}
public class IsPrivate extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifier.PRIVATE);
boolean result = Modifiers.isPrivate(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifier.PRIVATE | Modifier.STATIC);
boolean result = Modifiers.isPrivate(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.STATIC);
boolean result = Modifiers.isPrivate(m);
assertThat(result, is(false));
}
}
public class IsProtected extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifier.PROTECTED);
boolean result = Modifiers.isProtected(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifier.PROTECTED | Modifier.STATIC);
boolean result = Modifiers.isProtected(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.STATIC);
boolean result = Modifiers.isProtected(m);
assertThat(result, is(false));
}
}
public class IsPackage extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifiers.PACKAGE);
boolean result = Modifiers.isPackage(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifiers.PACKAGE | Modifier.PUBLIC);
boolean result = Modifiers.isPackage(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.PUBLIC);
boolean result = Modifiers.isPackage(m);
assertThat(result, is(false));
}
}
public class IsFinal extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifier.FINAL);
boolean result = Modifiers.isFinal(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifier.FINAL | Modifier.STATIC);
boolean result = Modifiers.isFinal(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.STATIC);
boolean result = Modifiers.isFinal(m);
assertThat(result, is(false));
}
}
public class IsSynchronized extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifier.SYNCHRONIZED);
boolean result = Modifiers.isSynchronized(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifier.SYNCHRONIZED | Modifier.STATIC);
boolean result = Modifiers.isSynchronized(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.STATIC);
boolean result = Modifiers.isSynchronized(m);
assertThat(result, is(false));
}
}
public class IsTransient extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifier.TRANSIENT);
boolean result = Modifiers.isTransient(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifier.TRANSIENT | Modifier.STATIC);
boolean result = Modifiers.isTransient(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.STATIC);
boolean result = Modifiers.isTransient(m);
assertThat(result, is(false));
}
}
public class IsVolatile extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifier.VOLATILE);
boolean result = Modifiers.isVolatile(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifier.VOLATILE | Modifier.STATIC);
boolean result = Modifiers.isVolatile(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.STATIC);
boolean result = Modifiers.isVolatile(m);
assertThat(result, is(false));
}
}
public class IsStatic extends ModifiersTest {
@Test
public void single() {
int m = Modifiers.getModifiers(Modifier.STATIC);
boolean result = Modifiers.isStatic(m);
assertThat(result, is(true));
}
@Test
public void multiple() {
int m = Modifiers.getModifiers(Modifier.VOLATILE | Modifier.STATIC);
boolean result = Modifiers.isStatic(m);
assertThat(result, is(true));
}
@Test
public void other() {
int m = Modifiers.getModifiers(Modifier.VOLATILE);
boolean result = Modifiers.isStatic(m);
assertThat(result, is(false));
}
}
public class MergeModifiers extends ModifiersTest {
@Test
public void merge() {
int publicMod = Modifiers.getModifiers(Modifier.PUBLIC);
int privateMod = Modifiers.getModifiers(Modifier.PRIVATE);
int merged = Modifiers.mergeModifiers(publicMod, privateMod);
assertThat(Modifiers.isPrivate(merged), is(true));
assertThat(Modifiers.isPublic(merged), is(true));
}
@Test
public void mergeTwice() {
int publicMod = Modifiers.getModifiers(Modifier.PUBLIC);
int privateMod = Modifiers.getModifiers(Modifier.PRIVATE);
int protectedMod = Modifiers.getModifiers(Modifier.PROTECTED);
int merged = Modifiers.mergeModifiers(publicMod, privateMod);
merged = Modifiers.mergeModifiers(merged, protectedMod);
assertThat(Modifiers.isPrivate(merged), is(true));
assertThat(Modifiers.isPublic(merged), is(true));
assertThat(Modifiers.isProtected(merged), is(true));
}
}
}