Skip to content

Commit b304998

Browse files
committed
#357 - Added more unit tests.
1 parent 701e6b5 commit b304998

File tree

2 files changed

+181
-0
lines changed

2 files changed

+181
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
package com.github.bottomlessarchive.loa.queue.artemis.service.consumer.deserializer;
2+
3+
import com.github.bottomlessarchive.loa.queue.service.domain.message.DocumentArchivingMessage;
4+
import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
5+
import org.apache.activemq.artemis.api.core.client.ClientMessage;
6+
import org.junit.jupiter.api.Test;
7+
import org.junit.jupiter.api.extension.ExtendWith;
8+
import org.mockito.ArgumentCaptor;
9+
import org.mockito.Captor;
10+
import org.mockito.InjectMocks;
11+
import org.mockito.junit.jupiter.MockitoExtension;
12+
13+
import static org.assertj.core.api.Assertions.assertThat;
14+
import static org.mockito.Mockito.mock;
15+
import static org.mockito.Mockito.verify;
16+
import static org.mockito.Mockito.when;
17+
18+
@ExtendWith(MockitoExtension.class)
19+
class DocumentArchivingMessageDeserializerTest {
20+
21+
@Captor
22+
private ArgumentCaptor<byte[]> byteArgumentCaptor;
23+
24+
@InjectMocks
25+
private DocumentArchivingMessageDeserializer underTest;
26+
27+
@Test
28+
void testDeserialize() {
29+
final ClientMessage clientMessage = mock(ClientMessage.class);
30+
final ActiveMQBuffer activeMQBuffer = mock(ActiveMQBuffer.class);
31+
when(clientMessage.getBodyBuffer())
32+
.thenReturn(activeMQBuffer);
33+
when(activeMQBuffer.readString())
34+
.thenReturn("id", "type", "source", "sourceLocationId");
35+
when(activeMQBuffer.readBoolean())
36+
.thenReturn(true);
37+
when(activeMQBuffer.readInt())
38+
.thenReturn(5);
39+
40+
final DocumentArchivingMessage result = underTest.deserialize(clientMessage);
41+
42+
assertThat(result.getId())
43+
.isEqualTo("id");
44+
assertThat(result.getType())
45+
.isEqualTo("type");
46+
assertThat(result.getSource())
47+
.isEqualTo("source");
48+
assertThat(result.getSourceLocationId().isPresent())
49+
.isTrue();
50+
assertThat(result.getSourceLocationId().get())
51+
.isEqualTo("sourceLocationId");
52+
assertThat(result.getContentLength())
53+
.isEqualTo(5);
54+
verify(activeMQBuffer).readBytes(byteArgumentCaptor.capture());
55+
final byte[] content = byteArgumentCaptor.getValue();
56+
assertThat(result.getContent())
57+
.isEqualTo(content);
58+
assertThat(content.length)
59+
.isEqualTo(5);
60+
}
61+
62+
@Test
63+
void testDeserializeWhenSourceLocationIdIsNotPresent() {
64+
final ClientMessage clientMessage = mock(ClientMessage.class);
65+
final ActiveMQBuffer activeMQBuffer = mock(ActiveMQBuffer.class);
66+
when(clientMessage.getBodyBuffer())
67+
.thenReturn(activeMQBuffer);
68+
when(activeMQBuffer.readString())
69+
.thenReturn("id", "type", "source");
70+
when(activeMQBuffer.readBoolean())
71+
.thenReturn(false);
72+
when(activeMQBuffer.readInt())
73+
.thenReturn(5);
74+
75+
final DocumentArchivingMessage result = underTest.deserialize(clientMessage);
76+
77+
assertThat(result.getId())
78+
.isEqualTo("id");
79+
assertThat(result.getType())
80+
.isEqualTo("type");
81+
assertThat(result.getSource())
82+
.isEqualTo("source");
83+
assertThat(result.getSourceLocationId().isPresent())
84+
.isFalse();
85+
assertThat(result.getContentLength())
86+
.isEqualTo(5);
87+
verify(activeMQBuffer).readBytes(byteArgumentCaptor.capture());
88+
final byte[] content = byteArgumentCaptor.getValue();
89+
assertThat(result.getContent())
90+
.isEqualTo(content);
91+
assertThat(content.length)
92+
.isEqualTo(5);
93+
}
94+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package com.github.bottomlessarchive.loa.queue.artemis.service.producer.serializer;
2+
3+
import com.github.bottomlessarchive.loa.queue.service.domain.message.DocumentArchivingMessage;
4+
import org.apache.activemq.artemis.api.core.ActiveMQBuffer;
5+
import org.apache.activemq.artemis.api.core.client.ClientMessage;
6+
import org.apache.activemq.artemis.api.core.client.ClientSession;
7+
import org.junit.jupiter.api.Test;
8+
import org.junit.jupiter.api.extension.ExtendWith;
9+
import org.mockito.InOrder;
10+
import org.mockito.InjectMocks;
11+
import org.mockito.Mock;
12+
import org.mockito.Mockito;
13+
import org.mockito.junit.jupiter.MockitoExtension;
14+
15+
import static org.mockito.Mockito.mock;
16+
import static org.mockito.Mockito.when;
17+
18+
@ExtendWith(MockitoExtension.class)
19+
class DocumentArchivingMessageSerializerTest {
20+
21+
@Mock
22+
private ClientSession clientSession;
23+
24+
@InjectMocks
25+
private DocumentArchivingMessageSerializer underTest;
26+
27+
@Test
28+
void testSerialize() {
29+
final ClientMessage clientMessage = mock(ClientMessage.class);
30+
when(clientSession.createMessage(true))
31+
.thenReturn(clientMessage);
32+
final ActiveMQBuffer bodyBuffer = mock(ActiveMQBuffer.class);
33+
when(clientMessage.getBodyBuffer())
34+
.thenReturn(bodyBuffer);
35+
final DocumentArchivingMessage documentArchivingMessage = DocumentArchivingMessage.builder()
36+
.id("id")
37+
.type("type")
38+
.source("source")
39+
.sourceLocationId("sourceLocationId")
40+
.contentLength(5)
41+
.content(new byte[]{1, 2, 3})
42+
.build();
43+
44+
underTest.serialize(documentArchivingMessage);
45+
46+
InOrder inOrder = Mockito.inOrder(bodyBuffer);
47+
48+
inOrder.verify(bodyBuffer).writeString("id");
49+
inOrder.verify(bodyBuffer).writeString("type");
50+
inOrder.verify(bodyBuffer).writeString("source");
51+
inOrder.verify(bodyBuffer).writeBoolean(true);
52+
inOrder.verify(bodyBuffer).writeString("sourceLocationId");
53+
inOrder.verify(bodyBuffer).writeInt(5);
54+
inOrder.verify(bodyBuffer).writeBytes(new byte[]{1, 2, 3});
55+
inOrder.verifyNoMoreInteractions();
56+
}
57+
58+
@Test
59+
void testSerializeWhenSourceLocationIdIsNotPresent() {
60+
final ClientMessage clientMessage = mock(ClientMessage.class);
61+
when(clientSession.createMessage(true))
62+
.thenReturn(clientMessage);
63+
final ActiveMQBuffer bodyBuffer = mock(ActiveMQBuffer.class);
64+
when(clientMessage.getBodyBuffer())
65+
.thenReturn(bodyBuffer);
66+
final DocumentArchivingMessage documentArchivingMessage = DocumentArchivingMessage.builder()
67+
.id("id")
68+
.type("type")
69+
.source("source")
70+
.sourceLocationId(null)
71+
.contentLength(5)
72+
.content(new byte[]{1, 2, 3})
73+
.build();
74+
75+
underTest.serialize(documentArchivingMessage);
76+
77+
InOrder inOrder = Mockito.inOrder(bodyBuffer);
78+
79+
inOrder.verify(bodyBuffer).writeString("id");
80+
inOrder.verify(bodyBuffer).writeString("type");
81+
inOrder.verify(bodyBuffer).writeString("source");
82+
inOrder.verify(bodyBuffer).writeBoolean(false);
83+
inOrder.verify(bodyBuffer).writeInt(5);
84+
inOrder.verify(bodyBuffer).writeBytes(new byte[]{1, 2, 3});
85+
inOrder.verifyNoMoreInteractions();
86+
}
87+
}

0 commit comments

Comments
 (0)