public void shouldSerializeAndDeserializeRowKey() throws Exception {
String[] columnNames = { "foo", "bar", "baz" };
Object[] values = { 123, "Hello", 456L };
// given
RowKey key = new RowKey( columnNames, values );
// when
byte[] bytes = externalizerHelper.marshall( key );
RowKey unmarshalledKey = externalizerHelper.unmarshall( bytes );
// then
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() );
}