1
2
3
4
5 package com.jcabi.dynamo;
6
7 import java.util.UUID;
8 import org.hamcrest.MatcherAssert;
9 import org.hamcrest.Matchers;
10 import org.junit.jupiter.api.Test;
11 import org.mockito.Mockito;
12 import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
13
14
15
16
17
18 final class RegionTest {
19
20 @Test
21 void appendsPrefixesToTableNames() {
22 final Table table = Mockito.mock(Table.class);
23 final Region region = Mockito.mock(Region.class);
24 Mockito.doReturn(table).when(region).table(Mockito.anyString());
25 new Region.Prefixed(region, "foo-").table("test");
26 Mockito.verify(region).table("foo-test");
27 }
28
29 @Test
30 void delegatesAwsToCredentials() {
31 final DynamoDbClient aws = Mockito.mock(DynamoDbClient.class);
32 final Credentials creds = Mockito.mock(Credentials.class);
33 Mockito.doReturn(aws).when(creds).aws();
34 MatcherAssert.assertThat(
35 "did not delegate aws() to credentials",
36 new Region.Simple(creds).aws(),
37 Matchers.is(aws)
38 );
39 }
40
41 @Test
42 void delegatesPrefixedAwsToOrigin() {
43 final DynamoDbClient aws = Mockito.mock(DynamoDbClient.class);
44 final Region origin = Mockito.mock(Region.class);
45 Mockito.doReturn(aws).when(origin).aws();
46 MatcherAssert.assertThat(
47 "did not delegate prefixed aws() to origin",
48 new Region.Prefixed(origin, "prfx-").aws(),
49 Matchers.is(aws)
50 );
51 }
52
53 @Test
54 void appendsNonAsciiPrefix() {
55 final Table table = Mockito.mock(Table.class);
56 final Region origin = Mockito.mock(Region.class);
57 Mockito.doReturn(table).when(origin).table(Mockito.anyString());
58 final String name = UUID.randomUUID().toString();
59 new Region.Prefixed(origin, "prëfïx-").table(name);
60 Mockito.verify(origin).table(
61 String.format("prëfïx-%s", name)
62 );
63 }
64
65 @Test
66 void appendsEmptyPrefix() {
67 final Table table = Mockito.mock(Table.class);
68 final Region origin = Mockito.mock(Region.class);
69 Mockito.doReturn(table).when(origin).table(Mockito.anyString());
70 final String name = UUID.randomUUID().toString();
71 new Region.Prefixed(origin, "").table(name);
72 Mockito.verify(origin).table(name);
73 }
74
75 }