@Test
  public void testClassAnnotationIsAccessible() {
    PricingDataBean bean = new PricingDataBean();

    boolean foundAnnotation = false;
    for (Field field : bean.getClass().getDeclaredFields()) {

      foundAnnotation |= field.isAnnotationPresent(DataValueGenerator.class);
    }

    assertTrue(foundAnnotation);
  }
  // TODO The following test probably has a race condition - test
  // non-deterministic
  @Test
  public void testClassAnnotationDataCanBeAccessed() throws Exception {
    final Random random = new Random();
    final PricingDataBean bean = new PricingDataBean();

    for (Field field : bean.getClass().getDeclaredFields()) {
      if (field.isAnnotationPresent(DataValueGenerator.class)) {
        field.setAccessible(true);
        try {
          Class<? extends IValueGenerator> generatorClass =
              field.getAnnotation(DataValueGenerator.class).value();
          IValueGenerator generator = generatorClass.newInstance();
          Object newValue = generator.newValue(random);
          // System.out.println("newValue: "+newValue + "\t" + generator.getClass().getName());
          assertNotNull(newValue);
        } catch (InstantiationException e) {
          e.printStackTrace();
        } catch (IllegalAccessException e) {
          e.printStackTrace();
        }
      }
    }
  }