blob: 9f4e4a61c61d782daefa7bf014941870ef872730 [file] [log] [blame]
package org.mockito.internal.creation.bytebuddy;
import org.junit.Test;
import org.mockito.plugins.MockMaker;
import java.util.Observable;
import java.util.Observer;
import static org.assertj.core.api.Assertions.assertThat;
public class SubclassByteBuddyMockMakerTest extends AbstractByteBuddyMockMakerTest<SubclassByteBuddyMockMaker> {
public SubclassByteBuddyMockMakerTest() {
super(new SubclassByteBuddyMockMaker());
}
@Test
public void is_type_mockable_excludes_primitive_wrapper_classes() {
MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(Integer.class);
assertThat(mockable.mockable()).isFalse();
assertThat(mockable.nonMockableReason()).contains("final");
}
@Test
public void is_type_mockable_excludes_primitive_classes() {
MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(int.class);
assertThat(mockable.mockable()).isFalse();
assertThat(mockable.nonMockableReason()).contains("primitive");
}
@Test
public void is_type_mockable_allow_anonymous() {
Observer anonymous = new Observer() {
@Override public void update(Observable o, Object arg) { }
};
MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(anonymous.getClass());
assertThat(mockable.mockable()).isTrue();
assertThat(mockable.nonMockableReason()).contains("");
}
@Test
public void is_type_mockable_give_empty_reason_if_type_is_mockable() {
MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(SomeClass.class);
assertThat(mockable.mockable()).isTrue();
assertThat(mockable.nonMockableReason()).isEqualTo("");
}
@Override
protected Class<?> mockTypeOf(Class<?> type) {
return type.getSuperclass();
}
}