001package org.kuali.ole; 002 003import org.junit.Test; 004import org.kuali.ole.docstore.common.document.content.bib.marc.BibMarcRecord; 005import org.kuali.ole.docstore.xstream.FileUtil; 006import org.kuali.ole.pojo.OleBibRecord; 007import org.kuali.ole.pojo.OleOrderRecord; 008import org.kuali.ole.pojo.OleTxRecord; 009import org.kuali.ole.pojo.edi.EDIOrder; 010import org.kuali.ole.pojo.edi.MessageHeader; 011import org.slf4j.Logger; 012import org.slf4j.LoggerFactory; 013import sun.rmi.runtime.Log; 014 015import java.io.File; 016import java.net.URL; 017import java.util.*; 018 019import static junit.framework.Assert.assertNotNull; 020import static junit.framework.Assert.assertTrue; 021 022/** 023 * Created by IntelliJ IDEA. 024 * User: pvsubrah 025 * Date: 4/9/12 026 * Time: 7:20 AM 027 * To change this template use File | Settings | File Templates. 028 */ 029public class OleOrderRecordHandler_UT { 030 public static final Logger LOG = LoggerFactory.getLogger(OleOrderRecordHandler_UT.class); 031 032 @Test 033 public void testExtractOleOrderRecordsFromXML() throws Exception { 034 OleOrderRecordHandler orderRecordHandlerNew = 035 new OleOrderRecordHandler(); 036 037 URL resource = getClass().getResource("OleOrderRecord.xml"); 038 String xmlContent = new FileUtil().readFile(new File(resource.toURI())); 039 040 OleOrderRecords oleOrderRecords = orderRecordHandlerNew.fromXML(xmlContent); 041 assertNotNull(oleOrderRecords); 042 assertTrue(!oleOrderRecords.getRecords().isEmpty()); 043 for (int i = 0; i < oleOrderRecords.getRecords().size(); i++) { 044 LOG.info(oleOrderRecords.getRecords().get(i).toString()); 045 } 046 047 } 048 049 @Test 050 public void testGenerateXML() throws Exception { 051 OleOrderRecordHandler oleOrderRecordHandler = new OleOrderRecordHandler(); 052 053 054 OleOrderRecord oleOrderRecord = new OleOrderRecord(); 055 OleBibRecord oleBibRecord = new OleBibRecord(); 056 oleBibRecord.setLinkedInstanceId("123213"); 057 HashMap bibAssociatedFieldsValueMap = new HashMap(); 058 bibAssociatedFieldsValueMap.put("author", "mock_author"); 059 bibAssociatedFieldsValueMap.put("title", "mock_title"); 060 oleBibRecord.setBibAssociatedFieldsValueMap(bibAssociatedFieldsValueMap); 061 oleBibRecord.setBibUUID("45643543"); 062 oleOrderRecord.setOleBibRecord(oleBibRecord); 063 064 // 065 if (oleOrderRecord.getOleBibRecord() != null) { 066 LOG.info(oleOrderRecord.getOleBibRecord().toString()); 067 } 068 OleTxRecord oleTxRecord = new OleTxRecord(); 069 oleTxRecord.setCostSource(null); 070 if (oleTxRecord.getCostSource() != null) { 071 LOG.info(oleTxRecord.getCostSource()); 072 } 073 oleTxRecord.setFreeTextNote(null); 074 if (oleTxRecord.getFreeTextNote() != null) { 075 LOG.info(oleTxRecord.getFreeTextNote()); 076 } 077 oleTxRecord.setYear(null); 078 if (oleTxRecord.getYear() != null) { 079 LOG.info(oleTxRecord.getYear()); 080 } 081 oleTxRecord.setAmount(null); 082 if (oleTxRecord.getAmount() != null) { 083 LOG.info(oleTxRecord.getAmount()); 084 } 085 oleTxRecord.setChartCode(null); 086 if (oleTxRecord.getChartCode() != null) { 087 LOG.info(oleTxRecord.getChartCode()); 088 } 089 oleTxRecord.setOrgCode(null); 090 if (oleTxRecord.getOrgCode() != null) { 091 LOG.info(oleTxRecord.getOrgCode()); 092 } 093 oleTxRecord.setItemChartCode(null); 094 if (oleTxRecord.getItemChartCode() != null) { 095 LOG.info(oleTxRecord.getItemChartCode()); 096 } 097 oleTxRecord.setContractManager(null); 098 if (oleTxRecord.getContractManager() != null) { 099 LOG.info(oleTxRecord.getContractManager()); 100 } 101 oleTxRecord.setAssignToUser(null); 102 if (oleTxRecord.getAssignToUser() != null) { 103 LOG.info(oleTxRecord.getAssignToUser()); 104 } 105 oleTxRecord.setUseTaxIndicator(true); 106 if (oleTxRecord.isUseTaxIndicator()) { 107 LOG.info("Tax Indicator used"); 108 } 109 oleTxRecord.setOrderType(null); 110 if (oleTxRecord.getOrderType() != null) { 111 LOG.info(oleTxRecord.getOrderType()); 112 } 113 oleTxRecord.setFundingSource(null); 114 if (oleTxRecord.getFundingSource() != null) { 115 LOG.info(oleTxRecord.getFundingSource()); 116 } 117 oleTxRecord.setPreviousPurchaseOrder(null); 118 if (oleTxRecord.getPreviousPurchaseOrder() != null) { 119 LOG.info(oleTxRecord.getPreviousPurchaseOrder()); 120 } 121 oleTxRecord.setRequisitionSource(null); 122 if (oleTxRecord.getRequisitionSource() != null) { 123 LOG.info(oleTxRecord.getRequisitionSource()); 124 } 125 oleTxRecord.setAdditionalInfo(null); 126 if (oleTxRecord.getAdditionalInfo() != null) { 127 LOG.info(oleTxRecord.getAdditionalInfo()); 128 } 129 oleTxRecord.setDeliveryCampusCode(null); 130 if (oleTxRecord.getDeliveryCampusCode() != null) { 131 LOG.info(oleTxRecord.getDeliveryCampusCode()); 132 } 133 oleTxRecord.setBuildingCode(null); 134 if (oleTxRecord.getBuildingCode() != null) { 135 LOG.info(oleTxRecord.getBuildingCode()); 136 } 137 oleTxRecord.setDeliveryTo(null); 138 if (oleTxRecord.getDeliveryTo() != null) { 139 LOG.info(oleTxRecord.getDeliveryTo()); 140 } 141 oleTxRecord.setDeliveryAddress1(null); 142 if (oleTxRecord.getDeliveryAddress1() != null) { 143 LOG.info(oleTxRecord.getDeliveryAddress1()); 144 } 145 oleTxRecord.setDeliveryAddress2(null); 146 if (oleTxRecord.getDeliveryAddress2() != null) { 147 LOG.info(oleTxRecord.getDeliveryAddress2()); 148 } 149 oleTxRecord.setDeliveryBuildingRoomNumber(null); 150 if (oleTxRecord.getDeliveryBuildingRoomNumber() != null) { 151 LOG.info(oleTxRecord.getDeliveryBuildingRoomNumber()); 152 } 153 oleTxRecord.setDeliveryBuildingLine1Address(null); 154 if (oleTxRecord.getDeliveryBuildingLine1Address() != null) { 155 LOG.info(oleTxRecord.getDeliveryBuildingLine1Address()); 156 } 157 oleTxRecord.setDeliveryCityName(null); 158 if (oleTxRecord.getDeliveryCityName() != null) { 159 LOG.info(oleTxRecord.getDeliveryCityName()); 160 } 161 oleTxRecord.setDeliveryStateCode(null); 162 if (oleTxRecord.getDeliveryStateCode() != null) { 163 LOG.info(oleTxRecord.getDeliveryStateCode()); 164 } 165 oleTxRecord.setDeliveryPostalCode(null); 166 if (oleTxRecord.getDeliveryPostalCode() != null) { 167 LOG.info(oleTxRecord.getDeliveryPostalCode()); 168 } 169 oleTxRecord.setDeliveryCountryCode(null); 170 if (oleTxRecord.getDeliveryCountryCode() != null) { 171 LOG.info(oleTxRecord.getDeliveryCountryCode()); 172 } 173 oleTxRecord.setDeliveryDateRequired(null); 174 if (oleTxRecord.getDeliveryDateRequired() != null) { 175 LOG.info(oleTxRecord.getDeliveryDateRequired().toString()); 176 } 177 oleTxRecord.setDeliveryDateRequiredReason(null); 178 if (oleTxRecord.getDeliveryDateRequiredReason() != null) { 179 LOG.info(oleTxRecord.getDeliveryDateRequiredReason()); 180 } 181 oleTxRecord.setDeliveryInstruction(null); 182 if (oleTxRecord.getDeliveryInstruction() != null) { 183 LOG.info(oleTxRecord.getDeliveryInstruction()); 184 } 185 oleTxRecord.setReceivingAddress(null); 186 if (oleTxRecord.getReceivingAddress() != null) { 187 LOG.info(oleTxRecord.getReceivingAddress()); 188 } 189 oleTxRecord.setReceivingAddressToVendorIndicator(null); 190 if (oleTxRecord.getReceivingAddressToVendorIndicator() != null) { 191 LOG.info(oleTxRecord.getReceivingAddressToVendorIndicator()); 192 } 193 oleTxRecord.setVendor(null); 194 if (oleTxRecord.getVendor() != null) { 195 LOG.info(oleTxRecord.getVendor()); 196 } 197 oleTxRecord.setVendorNumber(null); 198 if (oleTxRecord.getVendorNumber() != null) { 199 LOG.info(oleTxRecord.getVendorNumber()); 200 } 201 oleTxRecord.setVendorAddress1(null); 202 if (oleTxRecord.getVendorAddress1() != null) { 203 LOG.info(oleTxRecord.getVendorAddress1()); 204 } 205 oleTxRecord.setVendorAddress2(null); 206 if (oleTxRecord.getVendorAddress2() != null) { 207 LOG.info(oleTxRecord.getVendorAddress2()); 208 } 209 210 oleTxRecord.setAttention(null); 211 if (oleTxRecord.getAttention() != null) { 212 LOG.info(oleTxRecord.getAttention()); 213 } 214 oleTxRecord.setVendorCity(null); 215 if (oleTxRecord.getVendorCity() != null) { 216 LOG.info(oleTxRecord.getVendorCity()); 217 } 218 oleTxRecord.setVendorState(null); 219 if (oleTxRecord.getVendorState() != null) { 220 LOG.info(oleTxRecord.getVendorState()); 221 } 222 oleTxRecord.setProvince(null); 223 if (oleTxRecord.getProvince() != null) { 224 LOG.info(oleTxRecord.getProvince()); 225 } 226 oleTxRecord.setVendorPostalCode(null); 227 if (oleTxRecord.getVendorPostalCode() != null) { 228 LOG.info(oleTxRecord.getVendorPostalCode()); 229 } 230 oleTxRecord.setVendorCountry(null); 231 if (oleTxRecord.getVendorCountry() != null) { 232 LOG.info(oleTxRecord.getVendorCountry()); 233 } 234 oleTxRecord.setVendorChoice(null); 235 if (oleTxRecord.getVendorChoice() != null) { 236 LOG.info(oleTxRecord.getVendorChoice()); 237 } 238 oleTxRecord.setVendorInfoCustomer(null); 239 if (oleTxRecord.getVendorInfoCustomer() != null) { 240 LOG.info(oleTxRecord.getVendorInfoCustomer()); 241 } 242 oleTxRecord.setVendorNotes(null); 243 if (oleTxRecord.getVendorNotes() != null) { 244 LOG.info(oleTxRecord.getVendorNotes()); 245 } 246 oleTxRecord.setAlternativeNonPrimaryVendorPayment(null); 247 if (oleTxRecord.getAlternativeNonPrimaryVendorPayment() != null) { 248 LOG.info(oleTxRecord.getAlternativeNonPrimaryVendorPayment()); 249 } 250 oleTxRecord.setContract(null); 251 if (oleTxRecord.getContract() != null) { 252 LOG.info(oleTxRecord.getContract()); 253 } 254 oleTxRecord.setVendorPhoneNumber(null); 255 if (oleTxRecord.getVendorPhoneNumber() != null) { 256 LOG.info(oleTxRecord.getVendorPhoneNumber()); 257 } 258 oleTxRecord.setVendorFaxNumber(null); 259 if (oleTxRecord.getVendorFaxNumber() != null) { 260 LOG.info(oleTxRecord.getVendorFaxNumber()); 261 } 262 oleTxRecord.setVendorPaymentTerms(null); 263 if (oleTxRecord.getVendorPaymentTerms() != null) { 264 LOG.info(oleTxRecord.getVendorPaymentTerms()); 265 } 266 oleTxRecord.setVendorShippingTitle(null); 267 if (oleTxRecord.getVendorShippingTitle() != null) { 268 LOG.info(oleTxRecord.getVendorShippingTitle()); 269 } 270 oleTxRecord.setVendorShippingPaymentTerms(null); 271 if (oleTxRecord.getVendorShippingPaymentTerms() != null) { 272 LOG.info(oleTxRecord.getVendorShippingPaymentTerms()); 273 } 274 oleTxRecord.setVendorContacts(null); 275 if (oleTxRecord.getVendorContacts() != null) { 276 LOG.info(oleTxRecord.getVendorContacts()); 277 } 278 oleTxRecord.setVendorSupplierDiversity(null); 279 if (oleTxRecord.getVendorSupplierDiversity() != null) { 280 LOG.info(oleTxRecord.getVendorSupplierDiversity()); 281 } 282 oleTxRecord.setNote(null); 283 if (oleTxRecord.getNote() != null) { 284 LOG.info(oleTxRecord.getNote()); 285 } 286 oleTxRecord.setItemType(null); 287 if (oleTxRecord.getItemType() != null) { 288 LOG.info(oleTxRecord.getItemType()); 289 } 290 oleTxRecord.setQuantity(null); 291 if (oleTxRecord.getQuantity() != null) { 292 LOG.info(oleTxRecord.getQuantity()); 293 } 294 oleTxRecord.setItemDescription(null); 295 if (oleTxRecord.getItemDescription() != null) { 296 LOG.info(oleTxRecord.getItemDescription()); 297 } 298 oleTxRecord.setListPrice(null); 299 if (oleTxRecord.getListPrice() != null) { 300 LOG.info(oleTxRecord.getListPrice()); 301 } 302 oleTxRecord.setDiscount(null); 303 if (oleTxRecord.getDiscount() != null) { 304 LOG.info(oleTxRecord.getDiscount()); 305 } 306 oleTxRecord.setDiscountType(null); 307 if (oleTxRecord.getDiscountType() != null) { 308 LOG.info(oleTxRecord.getDiscountType()); 309 } 310 oleTxRecord.setCurrencyType(null); 311 if (oleTxRecord.getCurrencyType() != null) { 312 LOG.info(oleTxRecord.getCurrencyType()); 313 } 314 oleTxRecord.setVendorItemIdentifier(null); 315 if (oleTxRecord.getVendorItemIdentifier() != null) { 316 LOG.info(oleTxRecord.getVendorItemIdentifier()); 317 } 318 oleTxRecord.setAccountNumber(null); 319 if (oleTxRecord.getAccountNumber() != null) { 320 LOG.info(oleTxRecord.getAccountNumber()); 321 } 322 oleTxRecord.setObjectCode(null); 323 if (oleTxRecord.getObjectCode() != null) { 324 LOG.info(oleTxRecord.getObjectCode()); 325 } 326 oleTxRecord.setOrgRefId(null); 327 if (oleTxRecord.getOrgRefId() != null) { 328 LOG.info(oleTxRecord.getOrgRefId()); 329 } 330 oleTxRecord.setPercent(null); 331 if (oleTxRecord.getPercent() != null) { 332 LOG.info(oleTxRecord.getPercent()); 333 } 334 oleTxRecord.setFormat(null); 335 if (oleTxRecord.getFormat() != null) { 336 LOG.info(oleTxRecord.getFormat()); 337 } 338 oleTxRecord.setInternalPurchasingLimit(null); 339 if (oleTxRecord.getInternalPurchasingLimit() != null) { 340 LOG.info(oleTxRecord.getInternalPurchasingLimit()); 341 } 342 oleTxRecord.setBillingName(null); 343 if (oleTxRecord.getBillingName() != null) { 344 LOG.info(oleTxRecord.getBillingName()); 345 } 346 oleTxRecord.setBillingLine1Address(null); 347 if (oleTxRecord.getBillingLine1Address() != null) { 348 LOG.info(oleTxRecord.getBillingLine1Address()); 349 } 350 oleTxRecord.setBillingCityName(null); 351 if (oleTxRecord.getBillingCityName() != null) { 352 LOG.info(oleTxRecord.getBillingCityName()); 353 } 354 oleTxRecord.setBillingStateCode(null); 355 if (oleTxRecord.getBillingStateCode() != null) { 356 LOG.info(oleTxRecord.getBillingStateCode()); 357 } 358 oleTxRecord.setBillingPostalCode(null); 359 if (oleTxRecord.getBillingPostalCode() != null) { 360 LOG.info(oleTxRecord.getBillingPostalCode()); 361 } 362 oleTxRecord.setBillingPhoneNumber(null); 363 if (oleTxRecord.getBillingPhoneNumber() != null) { 364 LOG.info(oleTxRecord.getBillingPhoneNumber()); 365 } 366 oleTxRecord.setBillingCountryCode(null); 367 if (oleTxRecord.getBillingCountryCode() != null) { 368 LOG.info(oleTxRecord.getBillingCountryCode()); 369 } 370 oleTxRecord.setMethodOfPOTransmission(null); 371 if (oleTxRecord.getMethodOfPOTransmission() != null) { 372 LOG.info(oleTxRecord.getMethodOfPOTransmission()); 373 } 374 oleTxRecord.setReceivingRequired(true); 375 if (oleTxRecord.isReceivingRequired()) { 376 LOG.info("Receiving Required"); 377 } 378 oleTxRecord.setPayReqPositiveApprovalReq(true); 379 if (oleTxRecord.isPayReqPositiveApprovalReq()) { 380 LOG.info("Payment Request Positive Approval Requires"); 381 } 382 oleTxRecord.setPurchaseOrderConfirmationIndicator(true); 383 if (oleTxRecord.isPurchaseOrderConfirmationIndicator()) { 384 LOG.info("Purchase Order Confirmation"); 385 } 386 oleTxRecord.setRouteToRequestor(true); 387 if (oleTxRecord.isRouteToRequestor()) { 388 LOG.info("Route to Requestor"); 389 } 390 oleTxRecord.setPublicView(true); 391 if (oleTxRecord.isPublicView()) { 392 LOG.info("Public View"); 393 } 394 oleTxRecord.setAccountNumber("1234567"); 395 oleTxRecord.setDeliveryDateRequired(new Date()); 396 oleOrderRecord.setOleTxRecord(oleTxRecord); 397 if (oleOrderRecord.getOleTxRecord() != null) { 398 LOG.info(oleOrderRecord.getOleTxRecord().toString()); 399 } 400 BibMarcRecord bibMarcRecord = new BibMarcRecord(); 401 bibMarcRecord.setLeader("Lincoln"); 402 oleOrderRecord.setOriginalRecord(bibMarcRecord); 403 if (oleOrderRecord.getOriginalRecord() != null) { 404 LOG.info(oleOrderRecord.getOriginalRecord().toString()); 405 } 406 EDIOrder eDIOrder = new EDIOrder(); 407 MessageHeader messageHeader = new MessageHeader(); 408 messageHeader.setInterchangeControlReference("reference"); 409 eDIOrder.setMessageHeader(messageHeader); 410 oleOrderRecord.setOriginalEdi(eDIOrder); 411 if (oleOrderRecord.getOriginalEdi() != null) { 412 LOG.info(oleOrderRecord.getOriginalEdi().toString()); 413 } 414 List messages = new ArrayList(); 415 messages.add("isbnCheckFailed"); 416 oleOrderRecord.addMessageToMap("message", messages); 417 if (oleOrderRecord.getMessageMap() != null) { 418 for (Map.Entry<String, Object> entry : oleOrderRecord.getMessageMap().entrySet()) { 419 LOG.info(entry.getKey()); 420 LOG.info(entry.getValue().toString()); 421 } 422 } 423 oleOrderRecord.setAgendaName("mockAgenda"); 424 if (oleOrderRecord.getAgendaName() != null) { 425 LOG.info(oleOrderRecord.getAgendaName()); 426 } 427 oleOrderRecord.setOriginalEDIFileName("ediFileName.edi"); 428 if (oleOrderRecord.getOriginalEDIFileName() != null) { 429 LOG.info(oleOrderRecord.getOriginalEDIFileName()); 430 } 431 oleOrderRecord.setOleOriginalBibRecordFileName("bib.mrc"); 432 if (oleOrderRecord.getOleOriginalBibRecordFileName() != null) { 433 LOG.info(oleOrderRecord.getOriginalEDIFileName()); 434 } 435 OleOrderRecord oleOrderRecord1 = new OleOrderRecord(); 436 oleOrderRecord1.setAgendaName("Agenda"); 437 oleOrderRecord1.setOriginalEDIFileName("edifile"); 438 oleOrderRecord1.setOleOriginalBibRecordFileName("bibfile"); 439 oleOrderRecord1.addMessageToMap("messages", messages); 440 OleBibRecord oleBibRecord1 = new OleBibRecord(); 441 oleBibRecord1.setBibUUID("123456789"); 442 oleBibRecord.setLinkedInstanceId("123213"); 443 HashMap bibAssociatedFieldsValueMap1 = new HashMap(); 444 bibAssociatedFieldsValueMap1.put("author1", "mock_author1"); 445 bibAssociatedFieldsValueMap1.put("title1", "mock_title1"); 446 oleBibRecord1.setBibAssociatedFieldsValueMap(bibAssociatedFieldsValueMap1); 447 OleTxRecord oleTxRecord1 = new OleTxRecord(); 448 oleTxRecord1.setAccountNumber("56789"); 449 oleOrderRecord1.setOleBibRecord(oleBibRecord1); 450 oleOrderRecord1.setOleTxRecord(oleTxRecord1); 451 oleOrderRecord.setDescription("Description"); 452 oleOrderRecord1.setDescription("Descrip"); 453 if (oleOrderRecord.getDescription() != null) { 454 LOG.info(oleOrderRecord.getDescription()); 455 } 456 457 BibMarcRecord bibMarcRecord1 = new BibMarcRecord(); 458 bibMarcRecord1.setLeader("kennedy"); 459 oleOrderRecord1.setOriginalRecord(bibMarcRecord1); 460 EDIOrder eDIOrder1 = new EDIOrder(); 461 MessageHeader messageHeader1 = new MessageHeader(); 462 messageHeader1.setInterchangeControlReference("reference"); 463 eDIOrder1.setMessageHeader(messageHeader1); 464 oleOrderRecord1.setOriginalEdi(eDIOrder1); 465 LOG.info(String.valueOf(oleOrderRecord1.hashCode())); 466 OleOrderRecords record = new OleOrderRecords(); 467 List<OleOrderRecord> records = new ArrayList<OleOrderRecord>(); 468 469 records.add(oleOrderRecord); 470 records.add(oleOrderRecord1); 471 record.setRecords(records); 472 473 String xml = oleOrderRecordHandler.toXML(record); 474 LOG.info(xml); 475 476 //for testing hashcode and equals in OleOrderRecord 477 478 OleOrderRecord oleOrderRecord2 = new OleOrderRecord(); 479 oleOrderRecord2.setAgendaName("Agenda"); 480 oleOrderRecord2.setOriginalEDIFileName("edifile"); 481 oleOrderRecord2.setOleOriginalBibRecordFileName("bibfile"); 482 oleOrderRecord2.addMessageToMap("messages", messages); 483 oleOrderRecord2.setOleBibRecord(oleBibRecord1); 484 oleOrderRecord2.setOleTxRecord(oleTxRecord1); 485 oleOrderRecord2.setDescription("Descrip"); 486 oleOrderRecord2.setOriginalRecord(bibMarcRecord1); 487 oleOrderRecord2.setOriginalEdi(eDIOrder1); 488 if (oleOrderRecord1.equals(oleOrderRecord2)) { 489 LOG.info("Objects are equal"); 490 } 491 492 } 493}