configuration.setPort(SERVER_PORT);
configuration.setSystemId("test");
configuration.setPassword("test");
configuration.setDataCoding(3);
SmppConnector connector = new SmppConnector(configuration);
injectResource(new MockProcessorContext(), connector);
injectResource(messageStore, connector);
connector.doStart();
waitUntilStatus(connector, DEFAULT_TIMEOUT, Status.OK);
try {
Message message = new Message();
message.setProperty("to", "3002175604");
message.setProperty("from", "3542");
message.setProperty("text", "This is a long message to test how the smpp is working with long message splitting them by the 160 character and sending two messages. Finish the first message This is the second message.");
connector.process(message);
Assert.assertNotNull(message.getReference());
List<SmppPacket> packets = pp.getPackets(2, DEFAULT_TIMEOUT);
Assert.assertNotNull(packets);
Assert.assertEquals(packets.size(), 2);
SmppPacket packet = packets.get(0);
Assert.assertNotNull(packet);
Assert.assertEquals( packet.getCommandId(), SmppPacket.SUBMIT_SM );
SubmitSm submitSm = (SubmitSm) packet;
Assert.assertEquals( submitSm.getShortMessage(), "This is a long message to test how the smpp is working with long message splitting them by the 160 character and sending two messages. Finish the first message ");
Tlv totalTlv = submitSm.getOptionalParameter(SmppConstants.TAG_SAR_TOTAL_SEGMENTS);
Assert.assertNotNull(totalTlv);
Assert.assertEquals(ByteArrayUtil.toByte(totalTlv.getValue()), 2);
Tlv segmentTlv = submitSm.getOptionalParameter(SmppConstants.TAG_SAR_SEGMENT_SEQNUM);
Assert.assertNotNull(segmentTlv);
Assert.assertEquals(ByteArrayUtil.toByte(segmentTlv.getValue()), 1);
Tlv msgRefTlv = submitSm.getOptionalParameter(SmppConstants.TAG_SAR_MSG_REF_NUM);
Assert.assertNotNull(msgRefTlv);
packet = packets.get(1);
Assert.assertNotNull(packet);
Assert.assertEquals( packet.getCommandId(), SmppPacket.SUBMIT_SM );
submitSm = (SubmitSm) packet;
Assert.assertEquals( submitSm.getShortMessage(), "This is the second message." );
totalTlv = submitSm.getOptionalParameter(SmppConstants.TAG_SAR_TOTAL_SEGMENTS);
Assert.assertNotNull(totalTlv);
Assert.assertEquals(ByteArrayUtil.toByte(totalTlv.getValue()), 2);
segmentTlv = submitSm.getOptionalParameter(SmppConstants.TAG_SAR_SEGMENT_SEQNUM);
Assert.assertNotNull(segmentTlv);
Assert.assertEquals(ByteArrayUtil.toByte(segmentTlv.getValue()), 2);
msgRefTlv = submitSm.getOptionalParameter(SmppConstants.TAG_SAR_MSG_REF_NUM);
Assert.assertNotNull(msgRefTlv);
} finally {
connector.doStop();
}
}