Summary Table
| Categories |
Total Count |
| PII |
0 |
| URL |
0 |
| DNS |
0 |
| EKL |
0 |
| IP |
0 |
| PORT |
0 |
| VsID |
0 |
| CF |
0 |
| AI |
0 |
| VPD |
0 |
| PL |
0 |
| Other |
0 |
File Content
package gov.va.vamf.scheduling.varutility.resources;
import gov.va.vamf.scheduling.varutility.domain.CustomMessage;
import gov.va.vamf.scheduling.varutility.domain.CustomMessages;
import gov.va.vamf.scheduling.varutility.clientapi.MobileHealthClientTestVersion;
import gov.va.vamf.scheduling.varutility.testutility.TestHelper;
import gov.va.vamf.scheduling.varutility.testutility.IntegrationTestConfiguration;
import org.junit.*;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
import java.net.URI;
import java.util.Iterator;
public class VarUtilityCustomMessageTest {
private static MobileHealthClientTestVersion client;
private static Client jerseyClient;
private static String[] siteCodes = {"test-site-code-1", "test-site-code-2"};
private static String MESSAGE_TEXT_1 = "Save message text one.";
private static String MESSAGE_TEXT_2 = "Replaced message text one with message text two.";
private static int MESSAGE_COUNT_ONE = 1;
private static String[] messageIds = {"appointmentNoPreferredDatePopup", "typeOfCareDropdown", "noClinicRadioButtons"};
@BeforeClass
public static void startup() {
client = TestHelper.createProviderClient();
jerseyClient = client.getJerseyClient();
}
@AfterClass
public static void destroy() {
if (client != null) {
client.getJerseyClient().close();
client = null;
}
}
@Test
public void testFillCustomMessagesWithDefaultMessages() {
testFillDefaultMessages();
testDeleteCustomMessages();
}
@Test
public void testFetchDefaultMessages() {
for (int i = 0; i < messageIds.length; i++) {
testFetchDefaultMessage(messageIds[i]);
}
}
@Test
public void testSaveAndReplace() {
testFillDefaultMessages();
testSaveCustomMessages();
testReplaceCustomMessages();
testDeleteCustomMessages();
}
@Test
public void testPartialFillDefaultMessageAfterSave() {
testSaveCustomMessage(siteCodes[0], messageIds[0], MESSAGE_TEXT_1);
testSaveCustomMessage(siteCodes[1], messageIds[1], MESSAGE_TEXT_1);
testFillDefaultMessages();
testDeleteCustomMessages();
}
public void testFetchDefaultMessage(String messageId) {
CustomMessage findDefaultMessage = jerseyClient.target(getDefaultMessageResourceUri(messageId))
.request()
.accept(MediaType.APPLICATION_JSON)
.get(CustomMessage.class);
Assert.assertNotNull(findDefaultMessage);
Assert.assertEquals(findDefaultMessage.getMessageId(), messageId);
}
private void testFillDefaultMessages() {
for (int i = 0; i < siteCodes.length; i++) {
CustomMessages findCustomMessages = jerseyClient.target(getCustomMessageResourceUri(siteCodes[i]))
.request()
.accept(MediaType.APPLICATION_JSON)
.get(CustomMessages.class);
Assert.assertNotNull(findCustomMessages);
Assert.assertEquals(findCustomMessages.size(), messageIds.length);
for (int j = 0; j < messageIds.length; j++) {
Assert.assertTrue(containsMessageId(messageIds[j], findCustomMessages));
}
}
}
private void testSaveCustomMessages() {
for (int i = 0; i < siteCodes.length; i++) {
for (int j = 0; j < messageIds.length; j++) {
testSaveCustomMessage(siteCodes[i], messageIds[j], MESSAGE_TEXT_1);
}
}
}
private void testReplaceCustomMessages() {
for (int i = 0; i < siteCodes.length; i++) {
for (int j = 0; j < messageIds.length; j++) {
testSaveCustomMessage(siteCodes[i], messageIds[j], MESSAGE_TEXT_2);
}
}
}
private void testSaveCustomMessage(String siteCode, String messageId, String messageText) {
CustomMessages putPayload = createCustomMessagesPayload(messageId, messageText);
CustomMessages savedCustomMessages = jerseyClient.target(getCustomMessageResourceUri(siteCode))
.request(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.put(Entity.json(putPayload), CustomMessages.class);
Assert.assertNotNull(savedCustomMessages);
Assert.assertEquals(savedCustomMessages.size(), MESSAGE_COUNT_ONE);
Assert.assertTrue(containsMessageId(messageId, savedCustomMessages));
}
private void testDeleteCustomMessages() {
for (int i = 0; i < siteCodes.length; i++) {
CustomMessages deletedCustomMessages = jerseyClient.target(getCustomMessageResourceUri(siteCodes[i]))
.request()
.accept(MediaType.APPLICATION_JSON)
.delete(CustomMessages.class);
Assert.assertNotNull(deletedCustomMessages);
}
}
private CustomMessages createCustomMessagesPayload(String messageId, String textMessage) {
CustomMessages newCustomMessages = new CustomMessages();
CustomMessage customMessage = new CustomMessage();
customMessage.setMessageId(messageId);
customMessage.setMessageText(textMessage);
newCustomMessages.add(customMessage);
return newCustomMessages;
}
private static URI getCustomMessageResourceUri(String siteCode) {
String uriFormat = String.format("%s/custom-messages/site/%s",
IntegrationTestConfiguration.getServerBaseUri(), siteCode);
return UriBuilder.fromUri(uriFormat).build();
}
private static URI getDefaultMessageResourceUri(String messageId) {
String uriFormat = String.format("%s/custom-messages/default-message/message-id/%s",
IntegrationTestConfiguration.getServerBaseUri(), messageId);
return UriBuilder.fromUri(uriFormat).build();
}
private boolean containsMessageId(String messageId, CustomMessages customMessages) {
Iterator<CustomMessage> customMessagesIterator = customMessages.iterator();
while (customMessagesIterator.hasNext()) {
if (messageId.equals(customMessagesIterator.next().getMessageId())) {
return true;
}
}
return false;
}
}