[507] | 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 | }
|
---|