/**
   * Test of 'public static void setValue(Object instance, String setter, Object value)' method, of
   * class ReflectionHelper.
   */
  @Test
  public void setValueAndGetValue() throws Exception {
    System.out.println("public static void setValue(Object instance, String setter, Object value)");

    SimplePojo pojo = new SimplePojo();

    assertNull(pojo.getValueA());
    assertNull(pojo.getValueB());

    ReflectionHelper.setValue(pojo, "setValueA", "Alpha");

    assertEquals("Alpha", pojo.getValueA());

    ReflectionHelper.setValue(pojo, "setValueB", "Beta");

    assertEquals("Alpha", pojo.getValueA());

    System.out.println(" result = setValue works fine! ");

    String got = ReflectionHelper.getValue(pojo, "getValueA");
    assertEquals(got, pojo.getValueA());
    System.out.println(" result = getValue works also fine! ");

    long start = System.currentTimeMillis();

    for (int i = 1; i <= 100000; i++) {

      ReflectionHelper.setValue(pojo, "setValueA", "Alpha");
      ReflectionHelper.setValue(pojo, "setValueB", "Beta");
      ReflectionHelper.getValue(pojo, "getValueA");
      ReflectionHelper.getValue(pojo, "getValueB");
    }

    long end = System.currentTimeMillis();
    System.out.println(" time: " + (end - start) + " ms ");

    System.out.println(" " + ReflectionHelper.getCacheInfo());
  }