1 /* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 package org.mockito.internal.util; 6 7 import org.junit.Test; 8 9 import static org.assertj.core.api.Assertions.assertThat; 10 import static org.junit.Assert.assertNotNull; 11 import static org.junit.Assert.assertNull; 12 13 14 public class PrimitivesTest { 15 @Test 16 public void should_not_return_null_for_primitives_wrappers() throws Exception { 17 assertNotNull(Primitives.defaultValue(Boolean.class)); 18 assertNotNull(Primitives.defaultValue(Character.class)); 19 assertNotNull(Primitives.defaultValue(Byte.class)); 20 assertNotNull(Primitives.defaultValue(Short.class)); 21 assertNotNull(Primitives.defaultValue(Integer.class)); 22 assertNotNull(Primitives.defaultValue(Long.class)); 23 assertNotNull(Primitives.defaultValue(Float.class)); 24 assertNotNull(Primitives.defaultValue(Double.class)); 25 } 26 27 @Test 28 public void should_not_return_null_for_primitives() throws Exception { 29 assertNotNull(Primitives.defaultValue(boolean.class)); 30 assertNotNull(Primitives.defaultValue(char.class)); 31 assertNotNull(Primitives.defaultValue(byte.class)); 32 assertNotNull(Primitives.defaultValue(short.class)); 33 assertNotNull(Primitives.defaultValue(int.class)); 34 assertNotNull(Primitives.defaultValue(long.class)); 35 assertNotNull(Primitives.defaultValue(float.class)); 36 assertNotNull(Primitives.defaultValue(double.class)); 37 } 38 39 @Test 40 public void should_default_values_for_primitive() { 41 assertThat(Primitives.defaultValue(boolean.class)).isFalse(); 42 assertThat(Primitives.defaultValue(char.class)).isEqualTo('\u0000'); 43 assertThat(Primitives.defaultValue(byte.class)).isEqualTo((byte) 0); 44 assertThat(Primitives.defaultValue(short.class)).isEqualTo((short) 0); 45 assertThat(Primitives.defaultValue(int.class)).isEqualTo(0); 46 assertThat(Primitives.defaultValue(long.class)).isEqualTo(0L); 47 assertThat(Primitives.defaultValue(float.class)).isEqualTo(0.0F); 48 assertThat(Primitives.defaultValue(double.class)).isEqualTo(0.0D); 49 } 50 51 @Test 52 public void should_default_values_for_wrapper() { 53 assertThat(Primitives.defaultValue(Boolean.class)).isFalse(); 54 assertThat(Primitives.defaultValue(Character.class)).isEqualTo('\u0000'); 55 assertThat(Primitives.defaultValue(Byte.class)).isEqualTo((byte) 0); 56 assertThat(Primitives.defaultValue(Short.class)).isEqualTo((short) 0); 57 assertThat(Primitives.defaultValue(Integer.class)).isEqualTo(0); 58 assertThat(Primitives.defaultValue(Long.class)).isEqualTo(0L); 59 assertThat(Primitives.defaultValue(Float.class)).isEqualTo(0.0F); 60 assertThat(Primitives.defaultValue(Double.class)).isEqualTo(0.0D); 61 } 62 63 @Test 64 public void should_return_null_for_everything_else() throws Exception { 65 assertNull(Primitives.defaultValue(Object.class)); 66 assertNull(Primitives.defaultValue(String.class)); 67 assertNull(Primitives.defaultValue(null)); 68 } 69 70 @Test 71 public void should_check_that_value_type_is_assignable_to_wrapper_reference() { 72 assertThat(Primitives.isAssignableFromWrapper(int.class, Integer.class)); 73 assertThat(Primitives.isAssignableFromWrapper(Integer.class, Integer.class)); 74 assertThat(Primitives.isAssignableFromWrapper(long.class, Long.class)); 75 assertThat(Primitives.isAssignableFromWrapper(Long.class, Long.class)); 76 assertThat(Primitives.isAssignableFromWrapper(double.class, Double.class)); 77 assertThat(Primitives.isAssignableFromWrapper(Double.class, Double.class)); 78 assertThat(Primitives.isAssignableFromWrapper(float.class, Float.class)); 79 assertThat(Primitives.isAssignableFromWrapper(Float.class, Float.class)); 80 assertThat(Primitives.isAssignableFromWrapper(char.class, Character.class)); 81 assertThat(Primitives.isAssignableFromWrapper(Character.class, Character.class)); 82 assertThat(Primitives.isAssignableFromWrapper(short.class, Short.class)); 83 assertThat(Primitives.isAssignableFromWrapper(Short.class, Short.class)); 84 assertThat(Primitives.isAssignableFromWrapper(byte.class, Byte.class)); 85 assertThat(Primitives.isAssignableFromWrapper(Byte.class, Byte.class)); 86 assertThat(Primitives.isAssignableFromWrapper(boolean.class, Boolean.class)); 87 assertThat(Primitives.isAssignableFromWrapper(Boolean.class, Boolean.class)); 88 } 89 } 90