1 package com.atlassian.messagequeue.internal.core;
2
3 import static org.hamcrest.CoreMatchers.is;
4 import static org.junit.Assert.*;
5 import static org.mockito.Mockito.*;
6
7 import com.atlassian.messagequeue.Message;
8 import com.atlassian.messagequeue.MessageRunnerKey;
9 import com.atlassian.messagequeue.TenantDataIdSupplier;
10 import com.atlassian.tenant.api.TenantContext;
11 import com.atlassian.tenant.api.TenantContextProvider;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.mockito.Mockito;
16 import org.mockito.runners.MockitoJUnitRunner;
17
18 @RunWith(MockitoJUnitRunner.class)
19 public class DefaultMessageInformationServiceTest {
20 private DefaultMessageInformationService service;
21
22 @Before
23 public void setUp() throws Exception {
24 TenantContextProvider tenantContextProvider = Mockito.mock(TenantContextProvider.class);
25 TenantContext tenantContext = new TenantContext.Builder()
26 .tenantId("tenant-123")
27 .jdbcUrl("jdbcUrl")
28 .jdbcUsername("username")
29 .jdbcPassword("password")
30 .build();
31 when(tenantContextProvider.getTenantContext()).thenReturn(tenantContext);
32 final TenantDataIdSupplier tenantDataIdSupplier = () -> "1";
33 service = new DefaultMessageInformationService("queueUrl", tenantContextProvider, new JacksonNestedMessageSerializer(), tenantDataIdSupplier);
34 }
35
36 @Test
37 public void serializationRoundTrip() throws Exception {
38 Message message = Message.create(MessageRunnerKey.of("fooRunnerKey"), "payload");
39
40 Message result = service.fromPayload(service.toPayload(message));
41
42 assertThat(result.getPayload(), is(message.getPayload()));
43 assertThat(result.getRunnerKey(), is(message.getRunnerKey()));
44 }
45
46 @Test(expected = IllegalArgumentException.class)
47 public void deserializeMessageFromEmptyPayload() throws Exception {
48 service.fromPayload("");
49 }
50
51 @Test(expected = IllegalArgumentException.class)
52 public void deserializeMessageFromNullPayload() throws Exception {
53 service.fromPayload(null);
54 }
55 }