forked from folio-org/mod-circulation-storage
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCirculationSettingsAPITest.java
More file actions
147 lines (125 loc) · 6.34 KB
/
CirculationSettingsAPITest.java
File metadata and controls
147 lines (125 loc) · 6.34 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package org.folio.rest.api;
import io.vertx.core.json.JsonObject;
import lombok.SneakyThrows;
import org.folio.rest.support.ApiTests;
import org.folio.rest.support.http.AssertingRecordClient;
import org.folio.rest.support.http.InterfaceUrls;
import org.junit.Before;
import org.junit.Test;
import java.util.UUID;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.junit.MatcherAssert.assertThat;
public class CirculationSettingsAPITest extends ApiTests {
private static final String ID_KEY = "id";
private static final String NAME_KEY = "name";
private static final String VALUE_KEY = "value";
private static final String SAMPLE_VALUE = "sample";
private static final String SAMPLE_KEY = "sample";
private static final String INITIAL_VALUE = "OK";
private static final String UPDATED_VALUE = "OK1";
private static final String TABLE_NAME = "circulation_settings";
private static final String CIRCULATION_SETTINGS_PROPERTY = "circulation-settings";
private static final int NOT_FOUND_STATUS = 404;
private static final String REQUEST_PRINT_SETTING = "Enable Request Print";
private final AssertingRecordClient circulationSettingsClient =
new AssertingRecordClient(
client, StorageTestSuite.TENANT_ID, InterfaceUrls::circulationSettingsUrl,
CIRCULATION_SETTINGS_PROPERTY);
@Before
public void beforeEach() {
StorageTestSuite.cleanUpTable(TABLE_NAME);
}
@Test
@SneakyThrows
public void updateInsteadCreateWithTheSameName() {
String id = UUID.randomUUID().toString();
JsonObject circulationSettingsJson = getCirculationSetting(id);
JsonObject circulationSettingsResponse =
circulationSettingsClient.create(circulationSettingsJson).getJson();
JsonObject circulationSettingsJsonUpdated = getUpdatedSettingsJson();
circulationSettingsClient.create(circulationSettingsJsonUpdated);
JsonObject circulationSettingsById = circulationSettingsClient.getById(id).getJson();
assertThatCorrectCreation(circulationSettingsResponse, circulationSettingsJson);
assertThat(circulationSettingsClient.getAll().getTotalRecords(), is(1));
assertThat(getValue(circulationSettingsJsonUpdated), is(getValue(circulationSettingsById)));
}
@Test
@SneakyThrows
public void canCreateAndRetrieveCirculationSettings() {
String id = UUID.randomUUID().toString();
JsonObject circulationSettingsJson = getCirculationSetting(id);
JsonObject circulationSettingsResponse =
circulationSettingsClient.create(circulationSettingsJson).getJson();
JsonObject circulationSettingsById = circulationSettingsClient.getById(id).getJson();
assertThat(circulationSettingsResponse.getString(ID_KEY), is(id));
assertThat(circulationSettingsById.getString(ID_KEY), is(id));
assertThat(circulationSettingsById.getJsonObject(VALUE_KEY), is(
circulationSettingsJson.getJsonObject(VALUE_KEY)));
}
@Test
@SneakyThrows
public void canUpdateCirculationSettings() {
String id = UUID.randomUUID().toString();
JsonObject circulationSettingsJson = getCirculationSetting(id);
circulationSettingsClient.create(circulationSettingsJson).getJson();
circulationSettingsClient.attemptPutById(
circulationSettingsJson.put(VALUE_KEY, new JsonObject().put(SAMPLE_KEY, "DONE")));
JsonObject updatedCirculationSettings = circulationSettingsClient.getById(id).getJson();
assertThat(updatedCirculationSettings.getString(ID_KEY), is(id));
assertThat(updatedCirculationSettings.getJsonObject(VALUE_KEY), is(
circulationSettingsJson.getJsonObject(VALUE_KEY)));
}
@Test
@SneakyThrows
public void canDeleteCirculationSettings() {
UUID id = UUID.randomUUID();
circulationSettingsClient.create(getCirculationSetting(id.toString())).getJson();
circulationSettingsClient.deleteById(id);
var deletedCirculationSettings = circulationSettingsClient.attemptGetById(id);
assertThat(deletedCirculationSettings.getStatusCode(), is(NOT_FOUND_STATUS));
}
@Test
@SneakyThrows
public void canCreateAndRetrieveEnableRequestPrintDetailsSetting() {
String id = UUID.randomUUID().toString();
JsonObject enableRequestPrintDetailsSettingJson = new JsonObject();
enableRequestPrintDetailsSettingJson.put(ID_KEY, id);
enableRequestPrintDetailsSettingJson.put(NAME_KEY, REQUEST_PRINT_SETTING);
JsonObject enablePrintSettingJson = new JsonObject().put(REQUEST_PRINT_SETTING, true);
enableRequestPrintDetailsSettingJson.put(VALUE_KEY, enablePrintSettingJson);
JsonObject circulationSettingsResponse =
circulationSettingsClient.create(enableRequestPrintDetailsSettingJson).getJson();
JsonObject circulationSettingsById = circulationSettingsClient.getById(id).getJson();
assertThat(circulationSettingsResponse.getString(ID_KEY), is(id));
assertThat(circulationSettingsResponse.getString(NAME_KEY),
is(enableRequestPrintDetailsSettingJson.getString(NAME_KEY)));
assertThat(circulationSettingsById.getString(ID_KEY), is(id));
assertThat(circulationSettingsById.getJsonObject(VALUE_KEY),
is(enableRequestPrintDetailsSettingJson.getJsonObject(VALUE_KEY)));
}
private static String getValue(JsonObject circulationSettingsById) {
return circulationSettingsById.getJsonObject(VALUE_KEY).getString(SAMPLE_KEY);
}
private JsonObject getCirculationSetting(String id) {
return new JsonObject()
.put(ID_KEY, id)
.put(NAME_KEY, SAMPLE_VALUE)
.put(VALUE_KEY, new JsonObject().put(SAMPLE_KEY, INITIAL_VALUE));
}
private static void assertThatCorrectCreation(JsonObject circulationSettingsResponse,
JsonObject circulationSettingsJson) {
String actualCreatedId = circulationSettingsResponse.getString(ID_KEY);
String expectedCreatedId = circulationSettingsJson.getString(ID_KEY);
String actualCreatedName = circulationSettingsResponse.getString(NAME_KEY);
String expectedCreatedName = circulationSettingsJson.getString(NAME_KEY);
assertThat(actualCreatedId, is(expectedCreatedId));
assertThat(actualCreatedName, is(expectedCreatedName));
}
private JsonObject getUpdatedSettingsJson() {
String updatedId = UUID.randomUUID().toString();
JsonObject circulationSettingsJsonUpdated = getCirculationSetting(updatedId);
JsonObject updatedValue = new JsonObject().put(SAMPLE_KEY, UPDATED_VALUE);
circulationSettingsJsonUpdated.put(VALUE_KEY, updatedValue);
return circulationSettingsJsonUpdated;
}
}