@Test
 public void testClassifyWithClassifier() {
   adapter.setDelegate(
       new org.springframework.classify.Classifier<String, Integer>() {
         public Integer classify(String classifiable) {
           return Integer.valueOf(classifiable);
         }
       });
   assertEquals(23, adapter.classify("23").intValue());
 }
 @Test
 public void testClassifyWithSetter() {
   adapter.setDelegate(
       new Object() {
         @SuppressWarnings("unused")
         @Classifier
         public Integer getValue(String key) {
           return Integer.parseInt(key);
         }
       });
   assertEquals(23, adapter.classify("23").intValue());
 }
 @Test(expected = IllegalArgumentException.class)
 public void testClassifyWithWrongType() {
   adapter.setDelegate(
       new Object() {
         @SuppressWarnings("unused")
         @Classifier
         public String getValue(Integer key) {
           return key.toString();
         }
       });
   assertEquals(23, adapter.classify("23").intValue());
 }
  @Test(expected = IllegalStateException.class)
  public void testClassifierAdapterObjectWithNoAnnotation() {
    adapter =
        new ClassifierAdapter<String, Integer>(
            new Object() {
              @SuppressWarnings("unused")
              public Integer getValue(String key) {
                return Integer.parseInt(key);
              }

              @SuppressWarnings("unused")
              public Integer getAnother(String key) {
                throw new UnsupportedOperationException("Not allowed");
              }
            });
    assertEquals(23, adapter.classify("23").intValue());
  }
  @Test
  public void testClassifierAdapterObjectSingleMethodWithNoAnnotation() {
    adapter =
        new ClassifierAdapter<String, Integer>(
            new Object() {
              @SuppressWarnings("unused")
              public Integer getValue(String key) {
                return Integer.parseInt(key);
              }

              @SuppressWarnings("unused")
              public void doNothing(String key) {}

              @SuppressWarnings("unused")
              public String doNothing(String key, int value) {
                return "foo";
              }
            });
    assertEquals(23, adapter.classify("23").intValue());
  }