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.clientapi.MobileHealthClientTestVersion;
import gov.va.vamf.scheduling.varutility.domain.*;
import gov.va.vamf.scheduling.varutility.testutility.IntegrationTestConfiguration;
import gov.va.vamf.scheduling.varutility.testutility.TestHelper;
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;

public class VarUtilityCustomTextFormTest {
private static MobileHealthClientTestVersion client;
private static Client jerseyClient;
private static final String SITE_CODE = "test-site-code-1";
private static final String[] messageIds = {"appointmentNoPreferredDatePopup", "typeOfCareDropdown", "noClinicRadioButtons"};
private static final String CUSTOM_MESSAGE_TEXT = "Custom message text ";
private static final String CUSTOM_FRIENDLY_TEXT = "Custom friendly text";

@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 testDefaultCustomFriendlyText() {
testSaveCustomFriendlyText();
testFetchDefaultCustomFriendlyText();
testDeleteCustomFriendlyText();
}

@Test
public void testNotNullCustomTextForm() {
testSaveCustomTextForm(CUSTOM_FRIENDLY_TEXT);
testFetchCustomTextForm();
testDeleteCustomTextForm();
}

@Test
public void testNullCustomTextForm() {
testSaveCustomTextForm(CUSTOM_FRIENDLY_TEXT);
testFetchCustomTextForm();
testSaveCustomTextForm(null);
testDeleteCustomMessages();
}

@Test
public void testFetchDefaultCustomMessage() {
for (int i = 0; i < messageIds.length; i++) {
CustomMessage foundDefaultCustomMessage = jerseyClient.target(getDefaultCustomMessageResourceUri(messageIds[i]))
.request()
.accept(MediaType.APPLICATION_JSON)
.get(CustomMessage.class);

Assert.assertEquals(messageIds[i], foundDefaultCustomMessage.getMessageId());
}
}

private void testSaveCustomFriendlyText () {
CustomFriendlyText putPayload = createCustomFriendlyTextPayload(SITE_CODE, CUSTOM_FRIENDLY_TEXT);

CustomFriendlyText savedCustomFriendlyText = jerseyClient.target(getCustomFriendlyTextResourceUri(SITE_CODE))
.request()
.accept(MediaType.APPLICATION_JSON)
.put(Entity.json(putPayload), CustomFriendlyText.class);

Assert.assertNotNull(savedCustomFriendlyText);
Assert.assertNotNull(savedCustomFriendlyText.getSiteCode());
Assert.assertTrue(savedCustomFriendlyText.getFriendlyText().length() > 0);
}

private void testSaveCustomTextForm(String customFriendlyText) {

CustomTextForm putPayload = createCustomTextFormPayload(SITE_CODE, customFriendlyText);

CustomTextForm savedCustomTextForm = jerseyClient.target(getCustomTextFormResourceUri(SITE_CODE))
.request()
.accept(MediaType.APPLICATION_JSON)
.put(Entity.json(putPayload), CustomTextForm.class);

Assert.assertNotNull(savedCustomTextForm);
Assert.assertNotNull(savedCustomTextForm.getSiteCode());
Assert.assertNotNull(savedCustomTextForm.getUserFriendlyText());
Assert.assertTrue(savedCustomTextForm.getCustomMessages().size() > 0);
}

private void testFetchDefaultCustomFriendlyText() {

CustomFriendlyText foundDefaultCustomFriendlyText= jerseyClient.target(getDefaultCustomFriendlyTextResourceUri(SITE_CODE))
.request()
.accept(MediaType.APPLICATION_JSON)
.get(CustomFriendlyText.class);

Assert.assertNotNull(foundDefaultCustomFriendlyText);
Assert.assertNotNull(foundDefaultCustomFriendlyText.getSiteCode());
Assert.assertNotNull(foundDefaultCustomFriendlyText.getFriendlyText());
}

private void testFetchCustomTextForm() {

CustomTextForm foundCustomTextForm = jerseyClient.target(getCustomTextFormResourceUri(SITE_CODE))
.request()
.accept(MediaType.APPLICATION_JSON)
.get(CustomTextForm.class);

Assert.assertNotNull(foundCustomTextForm);
Assert.assertNotNull(foundCustomTextForm.getUserFriendlyText());
Assert.assertTrue(foundCustomTextForm.getCustomMessages().size() > 0);
}

private void testDeleteCustomMessages() {
CustomMessages deletedCustomMessages = jerseyClient.target(getCustomMessageResourceUri(SITE_CODE))
.request()
.accept(MediaType.APPLICATION_JSON)
.delete(CustomMessages.class);

Assert.assertNotNull(deletedCustomMessages);
}

private static URI getCustomTextFormResourceUri(String siteCode) {
String uriFormat = String.format("%s/custom-text-form/site/%s",
IntegrationTestConfiguration.getServerBaseUri(), siteCode);

return UriBuilder.fromUri(uriFormat).build();
}

private static URI getDefaultCustomMessageResourceUri(String messageId) {
String uriFormat = String.format("%s/custom-text-form/default-message/message-id/%s",
IntegrationTestConfiguration.getServerBaseUri(), messageId);

return UriBuilder.fromUri(uriFormat).build();
}

private static URI getCustomMessageResourceUri(String siteCode) {
String uriFormat = String.format("%s/custom-text-form/custom-messages/site/%s",
IntegrationTestConfiguration.getServerBaseUri(), siteCode);

return UriBuilder.fromUri(uriFormat).build();
}

private static URI getCustomFriendlyTextResourceUri(String siteCode) {
String uriFormat = String.format("%s/custom-text-form/custom-friendly-text/site/%s",
IntegrationTestConfiguration.getServerBaseUri(), siteCode);

return UriBuilder.fromUri(uriFormat).build();
}

private static URI getDefaultCustomFriendlyTextResourceUri(String siteCode) {
String uriFormat = String.format("%s/custom-text-form/default-custom-friendly-text/site/%s",
IntegrationTestConfiguration.getServerBaseUri(), siteCode);

return UriBuilder.fromUri(uriFormat).build();
}

private void testDeleteCustomTextForm() {
CustomTextForm deletedCustomTextForm = jerseyClient.target(getCustomTextFormResourceUri(SITE_CODE))
.request()
.accept(MediaType.APPLICATION_JSON)
.delete(CustomTextForm.class);

Assert.assertNotNull(deletedCustomTextForm);
}

private void testDeleteCustomFriendlyText() {
CustomFriendlyTexts deletedCustomFriendlyTexts = jerseyClient.target(getCustomFriendlyTextResourceUri(SITE_CODE))
.request()
.accept(MediaType.APPLICATION_JSON)
.delete(CustomFriendlyTexts.class);

Assert.assertNotNull(deletedCustomFriendlyTexts);
}


private CustomTextForm createCustomTextFormPayload(String siteCode, String friendlyText) {
CustomTextForm customTextForm = new CustomTextForm();
customTextForm.setSiteCode(siteCode);
customTextForm.setUserFriendlyText(friendlyText);

CustomMessages customMessages = new CustomMessages();

for (int i = 0; i < messageIds.length; i++) {
CustomMessage customMessage = new CustomMessage();
customMessage.setSiteCode(siteCode);
customMessage.setMessageId(messageIds[i]);
customMessage.setMessageText(CUSTOM_MESSAGE_TEXT + String.valueOf(i + 1));
customMessages.add(customMessage);
}

customTextForm.setCustomMessages(customMessages);

return customTextForm;
}

private CustomFriendlyText createCustomFriendlyTextPayload(String siteCode, String friendlyText) {
CustomFriendlyText customFriendlyText = new CustomFriendlyText();
customFriendlyText.setSiteCode(siteCode);
customFriendlyText.setFriendlyText(friendlyText);

return customFriendlyText;
}

}