@Test
 public void unbox() throws Exception {
   assertThat(TypeName.INT).isEqualTo(TypeName.INT.unbox());
   assertThat(TypeName.VOID).isEqualTo(TypeName.VOID.unbox());
   assertThat(ClassName.get(Integer.class).unbox()).isEqualTo(TypeName.INT.unbox());
   assertThat(ClassName.get(Void.class).unbox()).isEqualTo(TypeName.VOID.unbox());
   try {
     TypeName.OBJECT.unbox();
     fail();
   } catch (UnsupportedOperationException expected) {
   }
   try {
     ClassName.get(String.class).unbox();
     fail();
   } catch (UnsupportedOperationException expected) {
   }
 }
 @Test
 public void box() throws Exception {
   assertThat(TypeName.INT.box()).isEqualTo(ClassName.get(Integer.class));
   assertThat(TypeName.VOID.box()).isEqualTo(ClassName.get(Void.class));
   assertThat(ClassName.get(Integer.class).box()).isEqualTo(ClassName.get(Integer.class));
   assertThat(ClassName.get(Void.class).box()).isEqualTo(ClassName.get(Void.class));
   assertThat(TypeName.OBJECT.box()).isEqualTo(TypeName.OBJECT);
   assertThat(ClassName.get(String.class).box()).isEqualTo(ClassName.get(String.class));
 }