1 | /*
|
---|
2 | * To change this template, choose Tools | Templates
|
---|
3 | * and open the template in the editor.
|
---|
4 | */
|
---|
5 | package gov.hhs.fha.nhinc.gateway.aggregator.dao;
|
---|
6 |
|
---|
7 | import gov.hhs.fha.nhinc.gateway.aggregator.model.AggMessageResult;
|
---|
8 | import gov.hhs.fha.nhinc.gateway.aggregator.model.AggTransaction;
|
---|
9 | import java.text.SimpleDateFormat;
|
---|
10 | import java.util.Date;
|
---|
11 | import java.util.Calendar;
|
---|
12 | import java.util.HashSet;
|
---|
13 |
|
---|
14 | import org.junit.After;
|
---|
15 | import org.junit.AfterClass;
|
---|
16 | import org.junit.Before;
|
---|
17 | import org.junit.BeforeClass;
|
---|
18 | import org.junit.Test;
|
---|
19 | import static org.junit.Assert.*;
|
---|
20 |
|
---|
21 | /**
|
---|
22 | *
|
---|
23 | * @author westbergl
|
---|
24 | */
|
---|
25 | public class AggTransactionDaoTest
|
---|
26 | {
|
---|
27 |
|
---|
28 |
|
---|
29 | public AggTransactionDaoTest()
|
---|
30 | {
|
---|
31 | }
|
---|
32 |
|
---|
33 | @BeforeClass
|
---|
34 | public static void setUpClass() throws Exception
|
---|
35 | {
|
---|
36 | }
|
---|
37 |
|
---|
38 | @AfterClass
|
---|
39 | public static void tearDownClass() throws Exception
|
---|
40 | {
|
---|
41 | }
|
---|
42 |
|
---|
43 | @Before
|
---|
44 | public void setUp()
|
---|
45 | {
|
---|
46 | }
|
---|
47 |
|
---|
48 | @After
|
---|
49 | public void tearDown()
|
---|
50 | {
|
---|
51 | }
|
---|
52 |
|
---|
53 | /**
|
---|
54 | * Test of save method, of class AggTransactionDao.
|
---|
55 | */
|
---|
56 | @Test
|
---|
57 | public void testSaveFindByIdAndDelete()
|
---|
58 | {
|
---|
59 | System.out.println("Testing save...");
|
---|
60 |
|
---|
61 | SimpleDateFormat oFormat = new SimpleDateFormat("MM/dd/yyyy.HH:mm:ss");
|
---|
62 | Date oNow = new Date();
|
---|
63 |
|
---|
64 | AggTransaction oAggTransaction = new AggTransaction();
|
---|
65 | oAggTransaction.setServiceType("docquery");
|
---|
66 | oAggTransaction.setTransactionStartTime(oNow);
|
---|
67 | AggMessageResult oAggMessageResults = new AggMessageResult();
|
---|
68 | oAggMessageResults.setMessageKey("TheKey");
|
---|
69 | oAggMessageResults.setMessageOutTime(oAggTransaction.getTransactionStartTime());
|
---|
70 | oAggMessageResults.setResponseMessage("TheMessage");
|
---|
71 | oAggMessageResults.setResponseMessageType("AMessageType");
|
---|
72 | oAggMessageResults.setResponseReceivedTime(oNow);
|
---|
73 | oAggMessageResults.setAggTransaction(oAggTransaction);
|
---|
74 | HashSet<AggMessageResult> hMsgResults = new HashSet<AggMessageResult>();
|
---|
75 | hMsgResults.add(oAggMessageResults);
|
---|
76 | oAggTransaction.setAggMessageResults(hMsgResults);
|
---|
77 |
|
---|
78 | AggTransactionDao oAggTransactionDao = new AggTransactionDao();
|
---|
79 | oAggTransactionDao.save(oAggTransaction);
|
---|
80 |
|
---|
81 | System.out.println("save completed...");
|
---|
82 |
|
---|
83 | System.out.println("Testing FindById...");
|
---|
84 | String sTransactionId = oAggTransaction.getTransactionId();
|
---|
85 |
|
---|
86 | oAggTransaction = new AggTransaction();
|
---|
87 | oAggTransaction = oAggTransactionDao.findById(sTransactionId);
|
---|
88 | assertEquals("TransactionId", oAggTransaction.getTransactionId(), sTransactionId);
|
---|
89 | assertEquals("ServiceKey", oAggTransaction.getServiceType(), "docquery");
|
---|
90 | assertNotNull("AggMessageResults.", oAggTransaction.getAggMessageResults());
|
---|
91 | assertEquals("AggMessageResults.size()", oAggTransaction.getAggMessageResults().size(), 1);
|
---|
92 | AggMessageResult oMsgResults[] = oAggTransaction.getAggMessageResults().toArray(new AggMessageResult[0]);
|
---|
93 | assertNotSame("MessageId", oMsgResults[0].getMessageId(), "");
|
---|
94 | assertEquals("MessageKey", oMsgResults[0].getMessageKey(), "TheKey");
|
---|
95 | assertEquals("MessageOutTime", oFormat.format(oMsgResults[0].getMessageOutTime()), oFormat.format(oNow));
|
---|
96 | assertEquals("ResponseMessage", oMsgResults[0].getResponseMessage(), "TheMessage");
|
---|
97 | assertEquals("ResponseMessageType", oMsgResults[0].getResponseMessageType(), "AMessageType");
|
---|
98 | assertEquals("ResponseReceivedTime", oFormat.format(oMsgResults[0].getResponseReceivedTime()), oFormat.format(oNow));
|
---|
99 |
|
---|
100 | System.out.println("FindById completed...");
|
---|
101 |
|
---|
102 | System.out.println("Testing Delete...");
|
---|
103 |
|
---|
104 | oAggTransactionDao.delete(oAggTransaction);
|
---|
105 |
|
---|
106 | System.out.println("Delete completed...");
|
---|
107 | }
|
---|
108 |
|
---|
109 | /**
|
---|
110 | * Test of findOlderThan method, of class AggTransactionDao.
|
---|
111 | */
|
---|
112 | @Test
|
---|
113 | public void testFindOlderThan() throws Exception
|
---|
114 | {
|
---|
115 | System.out.println("Starting testFindOlderThan method...");
|
---|
116 |
|
---|
117 |
|
---|
118 | // Write out a couple of records so that we can retrieve based on time frame.
|
---|
119 | //---------------------------------------------------------------------------
|
---|
120 | String saTransId[] = {"", "", ""};
|
---|
121 | SimpleDateFormat oFormat = new SimpleDateFormat("MM/dd/yyyy.HH:mm:ss");
|
---|
122 | Date dtNow = new Date();
|
---|
123 |
|
---|
124 | Calendar oCal = Calendar.getInstance();
|
---|
125 | oCal.add(Calendar.DAY_OF_MONTH, -1);
|
---|
126 | Date dtYesterday = oCal.getTime();
|
---|
127 |
|
---|
128 | oCal.add(Calendar.DAY_OF_MONTH, -1);
|
---|
129 | Date dtTwoDaysAgo = oCal.getTime();
|
---|
130 |
|
---|
131 | AggTransaction oAggTransaction = new AggTransaction();
|
---|
132 | oAggTransaction.setServiceType("docquery1");
|
---|
133 | oAggTransaction.setTransactionStartTime(dtNow);
|
---|
134 | AggMessageResult oAggMessageResults = new AggMessageResult();
|
---|
135 | oAggMessageResults.setMessageKey("TheKey1");
|
---|
136 | oAggMessageResults.setMessageOutTime(oAggTransaction.getTransactionStartTime());
|
---|
137 | oAggMessageResults.setResponseMessage("TheMessage1");
|
---|
138 | oAggMessageResults.setResponseMessageType("AMessageType1");
|
---|
139 | oAggMessageResults.setResponseReceivedTime(dtNow);
|
---|
140 | oAggMessageResults.setAggTransaction(oAggTransaction);
|
---|
141 | HashSet<AggMessageResult> hMsgResults = new HashSet<AggMessageResult>();
|
---|
142 | hMsgResults.add(oAggMessageResults);
|
---|
143 | oAggTransaction.setAggMessageResults(hMsgResults);
|
---|
144 | AggTransactionDao oAggTransactionDao = new AggTransactionDao();
|
---|
145 | oAggTransactionDao.save(oAggTransaction);
|
---|
146 | saTransId[0] = oAggTransaction.getTransactionId();
|
---|
147 |
|
---|
148 | oAggTransaction = new AggTransaction();
|
---|
149 | oAggTransaction.setServiceType("docquery2");
|
---|
150 | oAggTransaction.setTransactionStartTime(dtYesterday);
|
---|
151 | oAggMessageResults = new AggMessageResult();
|
---|
152 | oAggMessageResults.setMessageKey("TheKey2");
|
---|
153 | oAggMessageResults.setMessageOutTime(oAggTransaction.getTransactionStartTime());
|
---|
154 | oAggMessageResults.setResponseMessage("TheMessage2");
|
---|
155 | oAggMessageResults.setResponseMessageType("AMessageType2");
|
---|
156 | oAggMessageResults.setResponseReceivedTime(dtYesterday);
|
---|
157 | oAggMessageResults.setAggTransaction(oAggTransaction);
|
---|
158 | hMsgResults = new HashSet<AggMessageResult>();
|
---|
159 | hMsgResults.add(oAggMessageResults);
|
---|
160 | oAggTransaction.setAggMessageResults(hMsgResults);
|
---|
161 | oAggTransactionDao.save(oAggTransaction);
|
---|
162 | saTransId[1] = oAggTransaction.getTransactionId();
|
---|
163 |
|
---|
164 |
|
---|
165 | oAggTransaction = new AggTransaction();
|
---|
166 | oAggTransaction.setServiceType("docquery3");
|
---|
167 | oAggTransaction.setTransactionStartTime(dtTwoDaysAgo);
|
---|
168 | oAggMessageResults = new AggMessageResult();
|
---|
169 | oAggMessageResults.setMessageKey("TheKey3");
|
---|
170 | oAggMessageResults.setMessageOutTime(oAggTransaction.getTransactionStartTime());
|
---|
171 | oAggMessageResults.setResponseMessage("TheMessage3");
|
---|
172 | oAggMessageResults.setResponseMessageType("AMessageType3");
|
---|
173 | oAggMessageResults.setResponseReceivedTime(dtTwoDaysAgo);
|
---|
174 | oAggMessageResults.setAggTransaction(oAggTransaction);
|
---|
175 | hMsgResults = new HashSet<AggMessageResult>();
|
---|
176 | hMsgResults.add(oAggMessageResults);
|
---|
177 | oAggTransaction.setAggMessageResults(hMsgResults);
|
---|
178 | oAggTransactionDao.save(oAggTransaction);
|
---|
179 | saTransId[2] = oAggTransaction.getTransactionId();
|
---|
180 |
|
---|
181 |
|
---|
182 | AggTransaction[] oaAggTransaction = oAggTransactionDao.findOlderThan(dtYesterday);
|
---|
183 | assertNotNull("oaAggTransaction", oaAggTransaction);
|
---|
184 | assertEquals("oaAggTransaction.length", oaAggTransaction.length, 2);
|
---|
185 | boolean bFound[] = {false, false};
|
---|
186 | for (AggTransaction oTrans : oaAggTransaction)
|
---|
187 | {
|
---|
188 | if (oTrans.getServiceType().equals("docquery2"))
|
---|
189 | {
|
---|
190 | bFound[0] = true;
|
---|
191 | assertNotSame("TransactionId:", oTrans.getTransactionId(), "");
|
---|
192 | assertEquals("TransactionStartTime", oFormat.format(oTrans.getTransactionStartTime()),
|
---|
193 | oFormat.format(dtYesterday));
|
---|
194 | assertNotNull("AggMessageResults", oTrans.getAggMessageResults());
|
---|
195 | assertEquals("AggMessageResults.size", oTrans.getAggMessageResults().size(), 1);
|
---|
196 | AggMessageResult oResults[] = oTrans.getAggMessageResults().toArray(new AggMessageResult[0]);
|
---|
197 | assertNotSame("MessageId:", oResults[0].getMessageId(), "");
|
---|
198 | assertEquals("MessageKey:", oResults[0].getMessageKey(), "TheKey2");
|
---|
199 | assertEquals("MessageOutTime:", oFormat.format(oResults[0].getMessageOutTime()),
|
---|
200 | oFormat.format(dtYesterday));
|
---|
201 | assertEquals("ResponseMessage:", oResults[0].getResponseMessage(), "TheMessage2");
|
---|
202 | assertEquals("ResponseMessageType:", oResults[0].getResponseMessageType(), "AMessageType2");
|
---|
203 | assertEquals("ResponseReceivedTime:", oFormat.format(oResults[0].getResponseReceivedTime()),
|
---|
204 | oFormat.format(dtYesterday));
|
---|
205 | }
|
---|
206 | else if (oTrans.getServiceType().equals("docquery3"))
|
---|
207 | {
|
---|
208 | bFound[1] = true;
|
---|
209 | assertNotSame("TransactionId:", oTrans.getTransactionId(), "");
|
---|
210 | assertEquals("TransactionStartTime", oFormat.format(oTrans.getTransactionStartTime()),
|
---|
211 | oFormat.format(dtTwoDaysAgo));
|
---|
212 | assertNotNull("AggMessageResults", oTrans.getAggMessageResults());
|
---|
213 | assertEquals("AggMessageResults.size", oTrans.getAggMessageResults().size(), 1);
|
---|
214 | AggMessageResult oResults[] = oTrans.getAggMessageResults().toArray(new AggMessageResult[0]);
|
---|
215 | assertNotSame("MessageId:", oResults[0].getMessageId(), "");
|
---|
216 | assertEquals("MessageKey:", oResults[0].getMessageKey(), "TheKey3");
|
---|
217 | assertEquals("MessageOutTime:", oFormat.format(oResults[0].getMessageOutTime()),
|
---|
218 | oFormat.format(dtTwoDaysAgo));
|
---|
219 | assertEquals("ResponseMessage:", oResults[0].getResponseMessage(), "TheMessage3");
|
---|
220 | assertEquals("ResponseMessageType:", oResults[0].getResponseMessageType(), "AMessageType3");
|
---|
221 | assertEquals("ResponseReceivedTime:", oFormat.format(oResults[0].getResponseReceivedTime()),
|
---|
222 | oFormat.format(dtTwoDaysAgo));
|
---|
223 | }
|
---|
224 | else
|
---|
225 | {
|
---|
226 | fail("Found an unexpected transaction in the query results.");
|
---|
227 | }
|
---|
228 | }
|
---|
229 | assertTrue("Missing docquery2", bFound[0]);
|
---|
230 | assertTrue("Missing docquery3", bFound[1]);
|
---|
231 |
|
---|
232 | // Now lets delete what we created...
|
---|
233 | //------------------------------------
|
---|
234 | oAggTransaction = oAggTransactionDao.findById(saTransId[0]);
|
---|
235 | oAggTransactionDao.delete(oAggTransaction);
|
---|
236 |
|
---|
237 | oAggTransaction = oAggTransactionDao.findById(saTransId[1]);
|
---|
238 | oAggTransactionDao.delete(oAggTransaction);
|
---|
239 |
|
---|
240 | oAggTransaction = oAggTransactionDao.findById(saTransId[2]);
|
---|
241 | oAggTransactionDao.delete(oAggTransaction);
|
---|
242 |
|
---|
243 | System.out.println("Done running testFindOlderThan method...");
|
---|
244 | }
|
---|
245 | }
|
---|