1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.openehealth.ipf.commons.ihe.xds.iti86;
18
19 import org.junit.Test;
20 import org.openehealth.ipf.commons.audit.codes.EventActionCode;
21 import org.openehealth.ipf.commons.audit.codes.EventIdCode;
22 import org.openehealth.ipf.commons.audit.codes.EventOutcomeIndicator;
23 import org.openehealth.ipf.commons.audit.codes.ParticipantObjectTypeCodeRole;
24 import org.openehealth.ipf.commons.audit.model.AuditMessage;
25 import org.openehealth.ipf.commons.ihe.core.atna.AuditDataset.HumanUser;
26 import org.openehealth.ipf.commons.ihe.xds.atna.XdsAuditorTestBase;
27 import org.openehealth.ipf.commons.ihe.xds.core.audit.XdsNonconstructiveDocumentSetRequestAuditDataset;
28
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertNotNull;
31
32
33
34
35 public class Iti86AuditStrategyTest extends XdsAuditorTestBase {
36
37 @Test
38 public void testServerSide() {
39 testRequest(true);
40 }
41
42 @Test
43 public void testClientSide() {
44 testRequest(false);
45 }
46
47 private void testRequest(boolean serverSide) {
48 Iti86AuditStrategy strategy = new Iti86AuditStrategy(serverSide);
49 XdsNonconstructiveDocumentSetRequestAuditDataset auditDataset = getXdsAuditDataset(strategy);
50 AuditMessage auditMessage = makeAuditMessage(strategy, auditContext, auditDataset);
51
52 assertNotNull(auditMessage);
53 auditMessage.validate();
54
55
56
57 assertCommonXdsAuditAttributes(auditMessage,
58 EventOutcomeIndicator.Success,
59 EventIdCode.PatientRecord,
60 EventActionCode.Delete,
61 serverSide,
62 true);
63
64 assertEquals(3, auditMessage.findParticipantObjectIdentifications(
65 poit -> poit.getParticipantObjectTypeCodeRole() == ParticipantObjectTypeCodeRole.Report).size());
66 }
67
68 private XdsNonconstructiveDocumentSetRequestAuditDataset getXdsAuditDataset(Iti86AuditStrategy strategy) {
69 XdsNonconstructiveDocumentSetRequestAuditDataset auditDataset = strategy.createAuditDataset();
70 auditDataset.setEventOutcomeIndicator(EventOutcomeIndicator.Success);
71
72 auditDataset.setRemoteAddress(CLIENT_IP_ADDRESS);
73 auditDataset.setSourceUserId(REPLY_TO_URI);
74 auditDataset.setDestinationUserId(SERVER_URI);
75 auditDataset.setRequestPayload(QUERY_PAYLOAD);
76 auditDataset.setPurposesOfUse(PURPOSES_OF_USE);
77 auditDataset.getPatientIds().add(PATIENT_IDS[0]);
78 auditDataset.getHumanUsers().add(new HumanUser(USER_ID, USER_NAME, USER_ROLES));
79
80 for (int i = 0; i < 3; i++) {
81 auditDataset.getDocuments().add(
82 new XdsNonconstructiveDocumentSetRequestAuditDataset.Document(
83 DOCUMENT_OIDS[i],
84 REPOSITORY_OIDS[i],
85 HOME_COMMUNITY_IDS[i],
86 null,
87 null,
88 XdsNonconstructiveDocumentSetRequestAuditDataset.Status.SUCCESSFUL));
89 }
90 return auditDataset;
91 }
92 }