@Test
public void testUnions() {
long datetime = 1234L;
String product = "widget";
PageView p = PageView.newBuilder()
.setDatetime(1234L)
.setPageContext(ProductPage.newBuilder()
.setProduct(product)
.build())
.build();
Assert.assertEquals(datetime, p.getDatetime().longValue());
Assert.assertEquals(ProductPage.class, p.getPageContext().getClass());
Assert.assertEquals(product, ((ProductPage)p.getPageContext()).getProduct());
PageView p2 = PageView.newBuilder(p).build();
Assert.assertEquals(datetime, p2.getDatetime().longValue());
Assert.assertEquals(ProductPage.class, p2.getPageContext().getClass());
Assert.assertEquals(product, ((ProductPage)p2.getPageContext()).getProduct());
Assert.assertEquals(p, p2);
}