View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2012-2026 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
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   * Test case for {@link Region}.
16   * @since 0.1
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  }