public void testMeta() {
ImmutableMetaFactory factory = new ImmutableMetaFactory();
ImmutableMeta meta = factory.createImmutableMeta(Money.class);
Assert.assertNotNull(meta);
Constructor<?> c = meta.getConstructor();
Class<?>[] parameterTypes = c.getParameterTypes();
Method[] readers = meta.getReaders();
Assert.assertTrue(parameterTypes.length == 1);
Assert.assertTrue(readers.length == 1);
Assert.assertEquals("getAmount", readers[0].getName());
Assert.assertEquals(BigDecimal.class, parameterTypes[0]);
meta = factory.createImmutableMeta(CMoney.class);
Assert.assertNotNull(meta);
c = meta.getConstructor();
parameterTypes = c.getParameterTypes();
readers = meta.getReaders();
Assert.assertTrue(parameterTypes.length == 2);
Assert.assertTrue(readers.length == 2);
Assert.assertEquals(Money.class, parameterTypes[0]);