@Test
public void testOneToOneMultiColumnBiDirectional() {
PersistentClass person = metadata.getEntityBinding("MultiPerson");
Property addressProperty = person.getProperty("addressMultiPerson");
Assert.assertNotNull(addressProperty);
Assert.assertTrue(addressProperty.getValue() instanceof OneToOne);
OneToOne oto = (OneToOne) addressProperty.getValue();
Assert.assertEquals(oto.getColumnSpan(),2);
Assert.assertEquals("MultiPerson", oto.getEntityName());
Assert.assertEquals("AddressMultiPerson", oto.getReferencedEntityName());
Assert.assertFalse(oto.isConstrained());
Assert.assertEquals(2, person.getPropertyClosureSpan());
Assert.assertEquals("compositeid gives generic id name", "id", person.getIdentifierProperty().getName());
PersistentClass addressPerson = metadata.getEntityBinding("AddressMultiPerson");
Property personProperty = addressPerson.getProperty("multiPerson");
Assert.assertNotNull(personProperty);
Assert.assertTrue(personProperty.getValue() instanceof OneToOne);
oto = (OneToOne) personProperty.getValue();
Assert.assertEquals(oto.getColumnSpan(),2);
Assert.assertEquals("AddressMultiPerson", oto.getEntityName());
Assert.assertEquals("MultiPerson", oto.getReferencedEntityName());
Assert.assertEquals(2, addressPerson.getPropertyClosureSpan());
Assert.assertEquals("compositeid gives generic id name","id", addressPerson.getIdentifierProperty().getName());
Assert.assertTrue(oto.isConstrained());
}