package org.jsmpp.util; import static org.testng.Assert.assertEquals; import static org.testng.Assert.fail; import java.util.Calendar; import java.util.Date; import org.jsmpp.bean.DeliveryReceipt; import org.testng.annotations.Test; /** * @author uudashr * */ public class DeliveryReceiptParserTest { private PDUDecomposer decomposer = new DefaultDecomposer(); private static final String ORIGINAL_MESSAGE = "testing jsmpp bow"; @Test public void parseTextWithLowerCase() { try { DeliveryReceipt delReceipt = decomposer.deliveryReceipt("id:0123456789 sub:001 dlvrd:001 submit date:0809011130 done date:0809011131 stat:DELIVRD err:000 text:" + ORIGINAL_MESSAGE); assertEquals(delReceipt.getText(), ORIGINAL_MESSAGE); Date submitDate = delReceipt.getSubmitDate(); Date expectedSubmitDate = createDate(2008, 9, 1, 11, 30); assertEquals(submitDate, expectedSubmitDate); Date doneDate = delReceipt.getDoneDate(); Date expectedDoneDate = createDate(2008, 9, 1, 11, 31); assertEquals(doneDate, expectedDoneDate); } catch (InvalidDeliveryReceiptException e) { fail("Failed parsing delivery receipt:" + e.getMessage()); } } @Test public void parsingTextWithUpperCase() { try { DeliveryReceipt delReceipt = decomposer.deliveryReceipt("id:0123456789 sub:001 dlvrd:001 submit date:0809011130 done date:0809011131 stat:DELIVRD err:000 Text:" + ORIGINAL_MESSAGE); assertEquals(delReceipt.getText(), ORIGINAL_MESSAGE); Date submitDate = delReceipt.getSubmitDate(); Date expectedSubmitDate = createDate(2008, 9, 1, 11, 30); assertEquals(submitDate, expectedSubmitDate); Date doneDate = delReceipt.getDoneDate(); Date expectedDoneDate = createDate(2008, 9, 1, 11, 31); assertEquals(doneDate, expectedDoneDate); } catch (InvalidDeliveryReceiptException e) { fail("Failed parsing delivery receipt:" + e.getMessage()); } } @Test public void parseWithNoTextAttribute() { try { DeliveryReceipt delReceipt = decomposer.deliveryReceipt("id:0123456789 sub:001 dlvrd:001 submit date:0809011130 done date:0809011131 stat:DELIVRD err:000 " + ORIGINAL_MESSAGE); assertEquals(delReceipt.getText(), null); Date submitDate = delReceipt.getSubmitDate(); Date expectedSubmitDate = createDate(2008, 9, 1, 11, 30); assertEquals(submitDate, expectedSubmitDate); Date doneDate = delReceipt.getDoneDate(); Date expectedDoneDate = createDate(2008, 9, 1, 11, 31); assertEquals(doneDate, expectedDoneDate); } catch (InvalidDeliveryReceiptException e) { e.printStackTrace(); fail("Failed parsing delivery receipt:" + e.getMessage()); } } private static Date createDate(int year, int month, int day, int hour, int minute) { Calendar cal = Calendar.getInstance(); cal.set(year, month - 1, day, hour, minute, 0); cal.set(Calendar.MILLISECOND, 0); return cal.getTime(); } }