source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Gateway/AggregatorLib/test/gov/hhs/fha/nhinc/gateway/aggregator/dao/AggTransactionDaoTest.java@ 507

Last change on this file since 507 was 507, checked in by George Lilly, 15 years ago

NHIN gateway and adaptor for use on linux with VistA EHR and RPMS

File size: 11.2 KB
Line 
1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5package gov.hhs.fha.nhinc.gateway.aggregator.dao;
6
7import gov.hhs.fha.nhinc.gateway.aggregator.model.AggMessageResult;
8import gov.hhs.fha.nhinc.gateway.aggregator.model.AggTransaction;
9import java.text.SimpleDateFormat;
10import java.util.Date;
11import java.util.Calendar;
12import java.util.HashSet;
13
14import org.junit.After;
15import org.junit.AfterClass;
16import org.junit.Before;
17import org.junit.BeforeClass;
18import org.junit.Test;
19import static org.junit.Assert.*;
20
21/**
22 *
23 * @author westbergl
24 */
25public 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}
Note: See TracBrowser for help on using the repository browser.