1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package com.jcabi.dynamo.mock;
31
32 import com.amazonaws.services.dynamodbv2.model.AttributeAction;
33 import com.amazonaws.services.dynamodbv2.model.AttributeValue;
34 import com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate;
35 import com.jcabi.dynamo.Attributes;
36 import com.jcabi.dynamo.Item;
37 import com.jcabi.dynamo.Region;
38 import com.jcabi.dynamo.Table;
39 import org.hamcrest.MatcherAssert;
40 import org.hamcrest.Matchers;
41 import org.junit.jupiter.api.Test;
42
43
44
45
46
47
48 final class MkRegionTest {
49
50 @Test
51 void storesAndReadsAttributes() throws Exception {
52 final String name = "users";
53 final String key = "id";
54 final String attr = "description";
55 final String nattr = "thenumber";
56 final Region region = new MkRegion(
57 new H2Data().with(name, new String[] {key}, attr, nattr)
58 );
59 final Table table = region.table(name);
60 table.put(
61 new Attributes()
62 .with(key, "32443")
63 .with(attr, "first value to \n\t€ save")
64 .with(nattr, "150")
65 );
66 final Item item = table.frame().iterator().next();
67 MatcherAssert.assertThat(item.has(attr), Matchers.is(true));
68 MatcherAssert.assertThat(
69 item.get(attr).getS(),
70 Matchers.containsString("\n\t\u20ac save")
71 );
72 item.put(
73 attr,
74 new AttributeValueUpdate().withValue(
75 new AttributeValue("this is another value")
76 )
77 );
78 MatcherAssert.assertThat(
79 item.get(attr).getS(),
80 Matchers.containsString("another value")
81 );
82 MatcherAssert.assertThat(
83 item.get(nattr).getN(),
84 Matchers.endsWith("50")
85 );
86 }
87
88 @Test
89 void storesAndReadsSingleAttribute() throws Exception {
90 final String table = "ideas";
91 final String key = "number";
92 final String attr = "total";
93 final Region region = new MkRegion(
94 new H2Data().with(table, new String[] {key}, attr)
95 );
96 final Table tbl = region.table(table);
97 tbl.put(
98 new Attributes()
99 .with(key, "324439")
100 .with(attr, "0")
101 );
102 final Item item = tbl.frame().iterator().next();
103 item.put(
104 attr,
105 new AttributeValueUpdate().withValue(
106 new AttributeValue().withN("2")
107 ).withAction(AttributeAction.PUT)
108 );
109 MatcherAssert.assertThat(item.get(attr).getN(), Matchers.equalTo("2"));
110 }
111
112 }