private SmsHttpTemplate createSmsHttpTemplate(Request request) { SmsHttpTemplate smsHttpTemplate = new SmsHttpTemplate(); Outgoing outgoing = new Outgoing(); outgoing.setRequest(request); smsHttpTemplate.setOutgoing(outgoing); return smsHttpTemplate; }
@Test public void shouldSetBodyParametersForPOSTRequestType() { Map<String, String> params = new HashMap<String, String>(); params.put("key1", "value1"); params.put("key2", "value2"); params.put("recipients", "$recipients"); params.put("message", "$message"); Request request = new SmsSendTemplateBuilder.RequestBuilder() .withType(HttpMethodType.POST) .withBodyParameters(params) .withRecipientSeperator(",") .build(); SmsHttpTemplate smsHttpTemplate = createSmsHttpTemplate(request); PostMethod httpMethod = (PostMethod) smsHttpTemplate.generateRequestFor(Arrays.asList("123", "456", "789"), "someMessage"); assertEquals(4, httpMethod.getParameters().length); assertEquals("value1", httpMethod.getParameter("key1").getValue()); assertEquals("value2", httpMethod.getParameter("key2").getValue()); assertEquals("123,456,789", httpMethod.getParameter("recipients").getValue()); assertEquals("someMessage", httpMethod.getParameter("message").getValue()); }
@Test public void shouldCreateCorrectRequestTypeBasedOnConfiguration_GET() { TemplateReader templateReader = createTemplateReader("templates/sms-http-get-template.json"); SmsHttpTemplate smsHttpGETTemplate = templateReader.getTemplate(); assertEquals( GetMethod.class, smsHttpGETTemplate .generateRequestFor(Arrays.asList("123", "456", "789"), "Hello World") .getClass()); }
@Test public void shouldReplaceMessageVariableWithValue() throws URIException { Request request = new Request(); request.setUrlPath("http://smshost.com/sms/send"); Map<String, String> queryParameters = new HashMap<String, String>() { { put("message", "$message"); } }; request.setQueryParameters(queryParameters); SmsHttpTemplate smsHttpTemplate = createSmsHttpTemplate(request); HttpMethod httpMethod = smsHttpTemplate.generateRequestFor(Arrays.asList("123"), "foobar"); assertEquals("http://smshost.com/sms/send?message=foobar", httpMethod.getURI().getURI()); }
@Test public void shouldReplaceReciepientsVariableWithValue() throws URIException { Request request = new Request(); request.setUrlPath("http://smshost.com/sms/send"); request.setRecipientsSeparator(","); Map<String, String> queryParameters = new HashMap<String, String>() { { put("recipients", "$recipients"); } }; request.setQueryParameters(queryParameters); SmsHttpTemplate smsHttpTemplate = createSmsHttpTemplate(request); HttpMethod httpMethod = smsHttpTemplate.generateRequestFor(Arrays.asList("123", "456", "789"), "some message"); assertEquals( "http://smshost.com/sms/send?recipients=123,456,789", httpMethod.getURI().getURI()); }