package org.axonframework.amqp.eventhandling.legacy; import org.axonframework.amqp.eventhandling.AMQPMessage; import org.axonframework.eventhandling.EventMessage; import org.axonframework.eventhandling.GenericEventMessage; import org.axonframework.eventsourcing.DomainEventMessage; import org.axonframework.eventsourcing.GenericDomainEventMessage; import org.axonframework.messaging.MetaData; import org.axonframework.serialization.xml.XStreamSerializer; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class JavaSerializationAMQPMessageConverterTest { private JavaSerializationAMQPMessageConverter testSubject; @Before public void setUp() throws Exception { testSubject = new JavaSerializationAMQPMessageConverter(new XStreamSerializer()); } @Test public void testWriteAndReadEventMessage() throws Exception { EventMessage<?> eventMessage = GenericEventMessage.asEventMessage("SomePayload").withMetaData(MetaData.with("key", "value")); AMQPMessage amqpMessage = testSubject.createAMQPMessage(eventMessage); EventMessage<?> actualResult = testSubject.readAMQPMessage(amqpMessage.getBody(), amqpMessage.getProperties().getHeaders()) .orElseThrow(() -> new AssertionError("Expected valid message")); assertEquals(eventMessage.getIdentifier(), actualResult.getIdentifier()); assertEquals(eventMessage.getMetaData(), actualResult.getMetaData()); assertEquals(eventMessage.getPayload(), actualResult.getPayload()); assertEquals(eventMessage.getPayloadType(), actualResult.getPayloadType()); assertEquals(eventMessage.getTimestamp(), actualResult.getTimestamp()); } @Test public void testWriteAndReadDomainEventMessage() throws Exception { DomainEventMessage<?> eventMessage = new GenericDomainEventMessage<>("Stub", "1234", 1L, "Payload", MetaData.with("key", "value")); AMQPMessage amqpMessage = testSubject.createAMQPMessage(eventMessage); EventMessage<?> actualResult = testSubject.readAMQPMessage(amqpMessage.getBody(), amqpMessage.getProperties().getHeaders()) .orElseThrow(() -> new AssertionError("Expected valid message")); assertTrue(actualResult instanceof DomainEventMessage); assertEquals(eventMessage.getIdentifier(), actualResult.getIdentifier()); assertEquals(eventMessage.getMetaData(), actualResult.getMetaData()); assertEquals(eventMessage.getPayload(), actualResult.getPayload()); assertEquals(eventMessage.getPayloadType(), actualResult.getPayloadType()); assertEquals(eventMessage.getTimestamp(), actualResult.getTimestamp()); assertEquals(eventMessage.getAggregateIdentifier(), ((DomainEventMessage)actualResult).getAggregateIdentifier()); assertEquals(eventMessage.getType(), ((DomainEventMessage)actualResult).getType()); assertEquals(eventMessage.getSequenceNumber(), ((DomainEventMessage)actualResult).getSequenceNumber()); } }