Home | History | Annotate | Download | only in util
      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