@Test public void shouldRaiseErrorWhenUnmarshallingBytesWithUnknownVersion() throws Exception { ExternalizerTestHelper<EntityKey, FutureEntityKeyExternalizer> futureExternalizer = ExternalizerTestHelper.getInstance(new FutureEntityKeyExternalizer()); String[] columnNames = {"foo", "bar", "baz"}; EntityKeyMetadata keyMetadata = new DefaultEntityKeyMetadata("Foobar", columnNames); Object[] values = {123, "Hello", 456L}; EntityKey key = new EntityKey(keyMetadata, values); // given byte[] bytes = futureExternalizer.marshall(key); // then thrown.expect(HibernateException.class); thrown.expectMessage("OGM001101"); // when externalizerHelper.unmarshall(bytes); }
@Test public void shouldSerializeAndDeserializeEntityKey() throws Exception { String[] columnNames = {"foo", "bar", "baz"}; EntityKeyMetadata keyMetadata = new DefaultEntityKeyMetadata("Foobar", columnNames); Object[] values = {123, "Hello", 456L}; // given EntityKey key = new EntityKey(keyMetadata, values); // when byte[] bytes = externalizerHelper.marshall(key); EntityKey unmarshalledKey = externalizerHelper.unmarshall(bytes); // then assertThat(unmarshalledKey.getTable()).isEqualTo(key.getTable()); assertThat(unmarshalledKey.getColumnNames()).isEqualTo(key.getColumnNames()); assertThat(unmarshalledKey.getColumnValues()).isEqualTo(key.getColumnValues()); assertTrue(key.equals(unmarshalledKey)); assertTrue(unmarshalledKey.equals(key)); assertThat(unmarshalledKey.hashCode()).isEqualTo(key.hashCode()); }
@Before public void setupMarshallerFactory() { externalizerHelper = ExternalizerTestHelper.getInstance(EntityKeyExternalizer.INSTANCE); }