List<AbstractProduct> products = arr.getProduct();
assertNotNull(products);
assertEquals(3, products.size());
int i = 0;
AbstractProduct product = products.get(i++);
assertNotNull(product);
assertEquals("product" + i, product.getName());
assertFalse(product instanceof Product);
product = products.get(i++);
assertNotNull(product);
assertEquals("product" + i, product.getName());
assertTrue(product instanceof Product);
assertEquals(i, ((Product)product).getPrice());
product = products.get(i++);
assertNotNull(product);
assertEquals("product" + i, product.getName());
assertFalse(product instanceof Product);
}