You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2013/08/24 23:24:04 UTC

git commit: CAMEL-6655: SMPP - add support of Vendor Specific Optional Parameter

Updated Branches:
  refs/heads/master b5784ca0a -> 6ff502f63


CAMEL-6655: SMPP - add support of Vendor Specific Optional Parameter


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6ff502f6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6ff502f6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6ff502f6

Branch: refs/heads/master
Commit: 6ff502f63c5dc60378de6998aae147d92e39b323
Parents: b5784ca
Author: cmueller <cm...@apache.org>
Authored: Sat Aug 24 23:23:52 2013 +0200
Committer: cmueller <cm...@apache.org>
Committed: Sat Aug 24 23:23:52 2013 +0200

----------------------------------------------------------------------
 .../component/smpp/AbstractSmppCommand.java     | 52 ++++++++++++++-
 .../component/smpp/SmppDataSmCommandTest.java   | 66 ++++++++++++++++++++
 .../smpp/SmppSubmitMultiCommandTest.java        | 64 +++++++++++++++++++
 .../component/smpp/SmppSubmitSmCommandTest.java | 63 +++++++++++++++++++
 4 files changed, 244 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6ff502f6/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java
index 54d93da..145ce46 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/AbstractSmppCommand.java
@@ -55,8 +55,58 @@ public abstract class AbstractSmppCommand implements SmppCommand {
         return message;
     }
 
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    protected List<OptionalParameter> createOptionalParameters(Map optinalParamaters) {
+        if (optinalParamaters == null || optinalParamaters.isEmpty()) {
+            return new ArrayList<OptionalParameter>();
+        }
+
+        Object firstKey = optinalParamaters.keySet().iterator().next();
+        if (firstKey instanceof String) {
+            return createOptionalParametersByName(optinalParamaters);
+        } else {
+            return createOptionalParametersByCode(optinalParamaters);
+        }
+    }
+
+    protected List<OptionalParameter> createOptionalParametersByCode(Map<Short, Object> optinalParamaters) {
+        List<OptionalParameter> optParams = new ArrayList<OptionalParameter>();
+
+        for (Entry<Short, Object> entry : optinalParamaters.entrySet()) {
+            OptionalParameter optParam = null;
+            Short key = entry.getKey();
+            Object value = entry.getValue();
+
+            try {
+                if (value == null) {
+                    optParam = new OptionalParameter.Null(key);
+                } else if (value instanceof byte[]) {
+                    optParam = new OptionalParameter.OctetString(key, (byte[]) value);
+                } else if (value instanceof String) {
+                    optParam = new OptionalParameter.COctetString(key, (String) value);
+                } else if (value instanceof Byte) {
+                    optParam = new OptionalParameter.Byte(key, (Byte) value);
+                } else if (value instanceof Integer) {
+                    optParam = new OptionalParameter.Int(key, (Integer) value);
+                } else if (value instanceof Short) {
+                    optParam = new OptionalParameter.Short(key, (Short) value);
+                } else {
+                    log.info("Couldn't determine optional parameter for value {} (type: {}). Skip this one.", value, value.getClass());
+                    continue;
+                }
+
+                optParams.add(optParam);
+            } catch (Exception e) {
+                log.info("Couldn't determine optional parameter for key {} and value {}. Skip this one.", key, value);
+            }
+        }
+
+        return optParams;
+    }
+
     @SuppressWarnings("rawtypes")
-    protected List<OptionalParameter> createOptionalParameters(Map<String, String> optinalParamaters) {
+    @Deprecated
+    protected List<OptionalParameter> createOptionalParametersByName(Map<String, String> optinalParamaters) {
         List<OptionalParameter> optParams = new ArrayList<OptionalParameter>();
 
         for (Entry<String, String> entry : optinalParamaters.entrySet()) {

http://git-wip-us.apache.org/repos/asf/camel/blob/6ff502f6/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java
index 28714ec..5374753 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppDataSmCommandTest.java
@@ -136,6 +136,13 @@ public class SmppDataSmCommandTest {
         optionalParameters.put("DEST_TELEMATICS_ID", "2");
         optionalParameters.put("QOS_TIME_TO_LIVE", "3600000");
         optionalParameters.put("ALERT_ON_MESSAGE_DELIVERY", null);
+        // fall back test for vendor specific optional parameter 
+        optionalParameters.put("0x2150", "0815");
+        optionalParameters.put("0x2151", "0816");
+        optionalParameters.put("0x2152", "6");
+        optionalParameters.put("0x2153", "9");
+        optionalParameters.put("0x2154", "7400000");
+        optionalParameters.put("0x2155", null);
         exchange.getIn().setHeader(SmppConstants.OPTIONAL_PARAMETERS, optionalParameters);
         expect(session.dataShortMessage(eq("CMT"), eq(TypeOfNumber.UNKNOWN), eq(NumberingPlanIndicator.UNKNOWN), eq("1616"),
                 eq(TypeOfNumber.UNKNOWN), eq(NumberingPlanIndicator.UNKNOWN), eq("1717"), eq(new ESMClass()),
@@ -168,4 +175,63 @@ public class SmppDataSmCommandTest {
         assertEquals("3600000", optParamMap.get("QOS_TIME_TO_LIVE"));
         assertNull(optParamMap.get("ALERT_ON_MESSAGE_DELIVERY"));
     }
+    
+    @SuppressWarnings("unchecked")
+    @Test
+    public void executeWithOptionalParameterNewStyle() throws Exception {
+        Exchange exchange = new DefaultExchange(new DefaultCamelContext(), ExchangePattern.InOut);
+        exchange.getIn().setHeader(SmppConstants.COMMAND, "DataSm");
+        Map<Short, Object> optionalParameters = new LinkedHashMap<Short, Object>();
+        // standard optional parameter
+        optionalParameters.put(Short.valueOf((short) 0x0202), "1292".getBytes("UTF-8"));
+        optionalParameters.put(Short.valueOf((short) 0x001D), "urgent");
+        optionalParameters.put(Short.valueOf((short) 0x0005), Byte.valueOf("4"));
+        optionalParameters.put(Short.valueOf((short) 0x0008), Short.valueOf((short) 2));
+        optionalParameters.put(Short.valueOf((short) 0x0017), Integer.valueOf(3600000));
+        optionalParameters.put(Short.valueOf((short) 0x130C), null);
+        // vendor specific optional parameter
+        optionalParameters.put(Short.valueOf((short) 0x2150), "0815".getBytes("UTF-8"));
+        optionalParameters.put(Short.valueOf((short) 0x2151), "0816");
+        optionalParameters.put(Short.valueOf((short) 0x2152), Byte.valueOf("6"));
+        optionalParameters.put(Short.valueOf((short) 0x2153), Short.valueOf((short) 9));
+        optionalParameters.put(Short.valueOf((short) 0x2154), Integer.valueOf(7400000));
+        optionalParameters.put(Short.valueOf((short) 0x2155), null);
+        exchange.getIn().setHeader(SmppConstants.OPTIONAL_PARAMETERS, optionalParameters);
+        expect(session.dataShortMessage(eq("CMT"), eq(TypeOfNumber.UNKNOWN), eq(NumberingPlanIndicator.UNKNOWN), eq("1616"),
+                eq(TypeOfNumber.UNKNOWN), eq(NumberingPlanIndicator.UNKNOWN), eq("1717"), eq(new ESMClass()),
+                eq(new RegisteredDelivery((byte) 1)), eq(DataCoding.newInstance((byte) 0)),
+                eq(new OptionalParameter.OctetString(Tag.SOURCE_SUBADDRESS, "1292")),
+                eq(new OptionalParameter.COctetString(Tag.ADDITIONAL_STATUS_INFO_TEXT.code(), "urgent")),
+                eq(new OptionalParameter.Byte(Tag.DEST_ADDR_SUBUNIT, (byte) 4)),
+                eq(new OptionalParameter.Short(Tag.DEST_TELEMATICS_ID.code(), (short) 2)),
+                eq(new OptionalParameter.Int(Tag.QOS_TIME_TO_LIVE, 3600000)),
+                eq(new OptionalParameter.Null(Tag.ALERT_ON_MESSAGE_DELIVERY)),
+                eq(new OptionalParameter.OctetString((short) 0x2150, "1292", "UTF-8")),
+                eq(new OptionalParameter.COctetString((short) 0x2151, "0816")),
+                eq(new OptionalParameter.Byte((short) 0x2152, (byte) 6)),
+                eq(new OptionalParameter.Short((short) 0x2153, (short) 9)),
+                eq(new OptionalParameter.Int((short) 0x2154, 7400000)),
+                eq(new OptionalParameter.Null((short) 0x2155))))
+            .andReturn(new DataSmResult(new MessageId("1"), new OptionalParameter[]{
+                new OptionalParameter.OctetString(Tag.SOURCE_SUBADDRESS, "1292"), new OptionalParameter.COctetString(Tag.ADDITIONAL_STATUS_INFO_TEXT.code(), "urgent"),
+                new OptionalParameter.Byte(Tag.DEST_ADDR_SUBUNIT, (byte) 4), new OptionalParameter.Short(Tag.DEST_TELEMATICS_ID.code(), (short) 2),
+                new OptionalParameter.Int(Tag.QOS_TIME_TO_LIVE, 3600000), new OptionalParameter.Null(Tag.ALERT_ON_MESSAGE_DELIVERY)}));
+
+        replay(session);
+
+        command.execute(exchange);
+
+        verify(session);
+
+        assertEquals("1", exchange.getOut().getHeader(SmppConstants.ID));
+        Map<String, String> optParamMap = exchange.getOut().getHeader(SmppConstants.OPTIONAL_PARAMETERS, Map.class);
+        assertEquals(6, optParamMap.size());
+        assertEquals("1292", optParamMap.get("SOURCE_SUBADDRESS"));
+        // FIXME: fix required in JSMPP. See http://code.google.com/p/jsmpp/issues/detail?id=140
+        //assertEquals("urgent", optParamMap.get("ADDITIONAL_STATUS_INFO_TEXT"));
+        assertEquals("4", optParamMap.get("DEST_ADDR_SUBUNIT"));
+        assertEquals("2", optParamMap.get("DEST_TELEMATICS_ID"));
+        assertEquals("3600000", optParamMap.get("QOS_TIME_TO_LIVE"));
+        assertNull(optParamMap.get("ALERT_ON_MESSAGE_DELIVERY"));
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/6ff502f6/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java
index 01e24de..3434d40 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitMultiCommandTest.java
@@ -473,4 +473,68 @@ public class SmppSubmitMultiCommandTest {
         assertEquals(1, exchange.getOut().getHeader(SmppConstants.SENT_MESSAGE_COUNT));
         assertNull(exchange.getOut().getHeader(SmppConstants.ERROR));
     }
+
+    @Test
+    public void executeWithOptionalParameterNewStyle() throws Exception {
+        Exchange exchange = new DefaultExchange(new DefaultCamelContext(), ExchangePattern.InOut);
+        exchange.getIn().setHeader(SmppConstants.COMMAND, "SubmitMulti");
+        exchange.getIn().setHeader(SmppConstants.ID, "1");
+        exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR_TON, TypeOfNumber.NATIONAL.value());
+        exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR_NPI, NumberingPlanIndicator.NATIONAL.value());
+        exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR, "1818");
+        exchange.getIn().setHeader(SmppConstants.DEST_ADDR_TON, TypeOfNumber.INTERNATIONAL.value());
+        exchange.getIn().setHeader(SmppConstants.DEST_ADDR_NPI, NumberingPlanIndicator.INTERNET.value());
+        exchange.getIn().setHeader(SmppConstants.DEST_ADDR, Arrays.asList("1919"));
+        exchange.getIn().setHeader(SmppConstants.SCHEDULE_DELIVERY_TIME, new Date(1111111));
+        exchange.getIn().setHeader(SmppConstants.VALIDITY_PERIOD, new Date(2222222));
+        exchange.getIn().setHeader(SmppConstants.PROTOCOL_ID, (byte) 1);
+        exchange.getIn().setHeader(SmppConstants.PRIORITY_FLAG, (byte) 2);
+        exchange.getIn().setHeader(SmppConstants.REGISTERED_DELIVERY, new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS).value());
+        exchange.getIn().setHeader(SmppConstants.REPLACE_IF_PRESENT_FLAG, ReplaceIfPresentFlag.REPLACE.value());
+        Map<Short, Object> optionalParameters = new LinkedHashMap<Short, Object>();
+        // standard optional parameter
+        optionalParameters.put(Short.valueOf((short) 0x0202), "1292".getBytes("UTF-8"));
+        optionalParameters.put(Short.valueOf((short) 0x001D), "urgent");
+        optionalParameters.put(Short.valueOf((short) 0x0005), Byte.valueOf("4"));
+        optionalParameters.put(Short.valueOf((short) 0x0008), Short.valueOf((short) 2));
+        optionalParameters.put(Short.valueOf((short) 0x0017), Integer.valueOf(3600000));
+        optionalParameters.put(Short.valueOf((short) 0x130C), null);
+        // vendor specific optional parameter
+        optionalParameters.put(Short.valueOf((short) 0x2150), "0815".getBytes("UTF-8"));
+        optionalParameters.put(Short.valueOf((short) 0x2151), "0816");
+        optionalParameters.put(Short.valueOf((short) 0x2152), Byte.valueOf("6"));
+        optionalParameters.put(Short.valueOf((short) 0x2153), Short.valueOf((short) 9));
+        optionalParameters.put(Short.valueOf((short) 0x2154), Integer.valueOf(7400000));
+        optionalParameters.put(Short.valueOf((short) 0x2155), null);
+        exchange.getIn().setHeader(SmppConstants.OPTIONAL_PARAMETERS, optionalParameters);
+        exchange.getIn().setBody("short message body");
+        expect(session.submitMultiple(eq("CMT"), eq(TypeOfNumber.NATIONAL), eq(NumberingPlanIndicator.NATIONAL), eq("1818"),
+                aryEq(new Address[]{new Address(TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.INTERNET, "1919")}),
+                eq(new ESMClass()), eq((byte) 1), eq((byte) 2), eq("-300101001831100-"), eq("-300101003702200-"), eq(new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS)),
+                eq(ReplaceIfPresentFlag.REPLACE), eq(DataCoding.newInstance((byte) 0)), eq((byte) 0), aryEq("short message body".getBytes()),
+                aryEq(new OptionalParameter[]{
+                    new OptionalParameter.OctetString(Tag.SOURCE_SUBADDRESS, "1292"),
+                    new OptionalParameter.COctetString(Tag.ADDITIONAL_STATUS_INFO_TEXT.code(), "urgent"),
+                    new OptionalParameter.Byte(Tag.DEST_ADDR_SUBUNIT, (byte) 4),
+                    new OptionalParameter.Short(Tag.DEST_TELEMATICS_ID.code(), (short) 2),
+                    new OptionalParameter.Int(Tag.QOS_TIME_TO_LIVE, 3600000),
+                    new OptionalParameter.Null(Tag.ALERT_ON_MESSAGE_DELIVERY),
+                    new OptionalParameter.OctetString((short) 0x2150, "1292", "UTF-8"),
+                    new OptionalParameter.COctetString((short) 0x2151, "0816"),
+                    new OptionalParameter.Byte((short) 0x2152, (byte) 6),
+                    new OptionalParameter.Short((short) 0x2153, (short) 9),
+                    new OptionalParameter.Int((short) 0x2154, 7400000),
+                    new OptionalParameter.Null((short) 0x2155)})))
+                .andReturn(new SubmitMultiResult("1"));
+
+        replay(session);
+
+        command.execute(exchange);
+
+        verify(session);
+
+        assertEquals(Arrays.asList("1"), exchange.getOut().getHeader(SmppConstants.ID));
+        assertEquals(1, exchange.getOut().getHeader(SmppConstants.SENT_MESSAGE_COUNT));
+        assertNull(exchange.getOut().getHeader(SmppConstants.ERROR));
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/6ff502f6/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java
index e13d0c04..9f32a95 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppSubmitSmCommandTest.java
@@ -221,6 +221,69 @@ public class SmppSubmitSmCommandTest {
     }
 
     @Test
+    public void executeWithOptionalParameterNewStyle() throws Exception {
+        Exchange exchange = new DefaultExchange(new DefaultCamelContext(), ExchangePattern.InOut);
+        exchange.getIn().setHeader(SmppConstants.COMMAND, "SubmitSm");
+        exchange.getIn().setHeader(SmppConstants.ID, "1");
+        exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR_TON, TypeOfNumber.NATIONAL.value());
+        exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR_NPI, NumberingPlanIndicator.NATIONAL.value());
+        exchange.getIn().setHeader(SmppConstants.SOURCE_ADDR, "1818");
+        exchange.getIn().setHeader(SmppConstants.DEST_ADDR_TON, TypeOfNumber.INTERNATIONAL.value());
+        exchange.getIn().setHeader(SmppConstants.DEST_ADDR_NPI, NumberingPlanIndicator.INTERNET.value());
+        exchange.getIn().setHeader(SmppConstants.DEST_ADDR, "1919");
+        exchange.getIn().setHeader(SmppConstants.SCHEDULE_DELIVERY_TIME, new Date(1111111));
+        exchange.getIn().setHeader(SmppConstants.VALIDITY_PERIOD, new Date(2222222));
+        exchange.getIn().setHeader(SmppConstants.PROTOCOL_ID, (byte) 1);
+        exchange.getIn().setHeader(SmppConstants.PRIORITY_FLAG, (byte) 2);
+        exchange.getIn().setHeader(SmppConstants.REGISTERED_DELIVERY, new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS).value());
+        exchange.getIn().setHeader(SmppConstants.REPLACE_IF_PRESENT_FLAG, ReplaceIfPresentFlag.REPLACE.value());
+        exchange.getIn().setBody("short message body");
+        Map<Short, Object> optionalParameters = new LinkedHashMap<Short, Object>();
+        // standard optional parameter
+        optionalParameters.put(Short.valueOf((short) 0x0202), "1292".getBytes("UTF-8"));
+        optionalParameters.put(Short.valueOf((short) 0x001D), "urgent");
+        optionalParameters.put(Short.valueOf((short) 0x0005), Byte.valueOf("4"));
+        optionalParameters.put(Short.valueOf((short) 0x0008), Short.valueOf((short) 2));
+        optionalParameters.put(Short.valueOf((short) 0x0017), Integer.valueOf(3600000));
+        optionalParameters.put(Short.valueOf((short) 0x130C), null);
+        // vendor specific optional parameter
+        optionalParameters.put(Short.valueOf((short) 0x2150), "0815".getBytes("UTF-8"));
+        optionalParameters.put(Short.valueOf((short) 0x2151), "0816");
+        optionalParameters.put(Short.valueOf((short) 0x2152), Byte.valueOf("6"));
+        optionalParameters.put(Short.valueOf((short) 0x2153), Short.valueOf((short) 9));
+        optionalParameters.put(Short.valueOf((short) 0x2154), Integer.valueOf(7400000));
+        optionalParameters.put(Short.valueOf((short) 0x2155), null);
+        exchange.getIn().setHeader(SmppConstants.OPTIONAL_PARAMETERS, optionalParameters);
+        expect(session.submitShortMessage(eq("CMT"), eq(TypeOfNumber.NATIONAL), eq(NumberingPlanIndicator.NATIONAL), eq("1818"),
+                eq(TypeOfNumber.INTERNATIONAL), eq(NumberingPlanIndicator.INTERNET), eq("1919"),
+                eq(new ESMClass()), eq((byte) 1), eq((byte) 2), eq("-300101001831100-"), eq("-300101003702200-"), eq(new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS)),
+                eq(ReplaceIfPresentFlag.REPLACE.value()), eq(DataCoding.newInstance((byte) 0)), eq((byte) 0),
+                aryEq("short message body".getBytes()),
+                eq(new OptionalParameter.OctetString(Tag.SOURCE_SUBADDRESS, "1292")),
+                eq(new OptionalParameter.COctetString(Tag.ADDITIONAL_STATUS_INFO_TEXT.code(), "urgent")),
+                eq(new OptionalParameter.Byte(Tag.DEST_ADDR_SUBUNIT, (byte) 4)),
+                eq(new OptionalParameter.Short(Tag.DEST_TELEMATICS_ID.code(), (short) 2)),
+                eq(new OptionalParameter.Int(Tag.QOS_TIME_TO_LIVE, 3600000)),
+                eq(new OptionalParameter.Null(Tag.ALERT_ON_MESSAGE_DELIVERY)),
+                eq(new OptionalParameter.OctetString((short) 0x2150, "1292", "UTF-8")),
+                eq(new OptionalParameter.COctetString((short) 0x2151, "0816")),
+                eq(new OptionalParameter.Byte((short) 0x2152, (byte) 6)),
+                eq(new OptionalParameter.Short((short) 0x2153, (short) 9)),
+                eq(new OptionalParameter.Int((short) 0x2154, 7400000)),
+                eq(new OptionalParameter.Null((short) 0x2155))))
+                .andReturn("1");
+
+        replay(session);
+
+        command.execute(exchange);
+
+        verify(session);
+
+        assertEquals(Arrays.asList("1"), exchange.getOut().getHeader(SmppConstants.ID));
+        assertEquals(1, exchange.getOut().getHeader(SmppConstants.SENT_MESSAGE_COUNT));
+    }
+
+    @Test
     public void executeWithValidityPeriodAsString() throws Exception {
         Exchange exchange = new DefaultExchange(new DefaultCamelContext(), ExchangePattern.InOut);
         exchange.getIn().setHeader(SmppConstants.COMMAND, "SubmitSm");