1package org.mockito.internal.creation.bytebuddy; 2 3import org.junit.Test; 4import org.mockito.plugins.MockMaker; 5 6import java.util.Observable; 7import java.util.Observer; 8 9import static org.assertj.core.api.Assertions.assertThat; 10 11public class SubclassByteBuddyMockMakerTest extends AbstractByteBuddyMockMakerTest<SubclassByteBuddyMockMaker> { 12 13 public SubclassByteBuddyMockMakerTest() { 14 super(new SubclassByteBuddyMockMaker()); 15 } 16 17 @Test 18 public void is_type_mockable_excludes_primitive_wrapper_classes() { 19 MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(Integer.class); 20 assertThat(mockable.mockable()).isFalse(); 21 assertThat(mockable.nonMockableReason()).contains("final"); 22 } 23 24 @Test 25 public void is_type_mockable_excludes_primitive_classes() { 26 MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(int.class); 27 assertThat(mockable.mockable()).isFalse(); 28 assertThat(mockable.nonMockableReason()).contains("primitive"); 29 } 30 31 @Test 32 public void is_type_mockable_allow_anonymous() { 33 Observer anonymous = new Observer() { 34 @Override public void update(Observable o, Object arg) { } 35 }; 36 MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(anonymous.getClass()); 37 assertThat(mockable.mockable()).isTrue(); 38 assertThat(mockable.nonMockableReason()).contains(""); 39 } 40 41 @Test 42 public void is_type_mockable_give_empty_reason_if_type_is_mockable() { 43 MockMaker.TypeMockability mockable = mockMaker.isTypeMockable(SomeClass.class); 44 assertThat(mockable.mockable()).isTrue(); 45 assertThat(mockable.nonMockableReason()).isEqualTo(""); 46 } 47 48 49 @Override 50 protected Class<?> mockTypeOf(Class<?> type) { 51 return type.getSuperclass(); 52 } 53} 54