| 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(); |
| } |
| } |