@Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        final ContextualRecord that = (ContextualRecord) o;
        return Arrays.equals(value, that.value) &&
            Objects.equals(recordContext, that.recordContext);
    }
@Test
    public void testEquals() {
        final byte[] value1 = {1, 2, 3};
        final byte[] value2 = {1, 2, 3};
        final long timestamp = Time.SYSTEM.milliseconds();
        final ProcessorRecordContext context1 = new ProcessorRecordContext(timestamp, 12345L, 0, "test-topic", new RecordHeaders());
        final ProcessorRecordContext context2 = new ProcessorRecordContext(timestamp, 12345L, 0, "test-topic", new RecordHeaders());

        final ContextualRecord record1 = new ContextualRecord(value1, context1);
        final ContextualRecord record2 = new ContextualRecord(value2, context2);

        assertEquals(record1, record2);
    }