/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.test.module.extension.connector;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import org.mule.test.module.extension.AbstractExtensionFunctionalTestCase;
import org.mule.test.petstore.extension.PetStoreClient;
import java.util.Calendar;
import org.joda.time.format.ISODateTimeFormat;
import org.junit.Test;
public class PetStoreCachedConnectionWithDynamicParameterTestCase extends AbstractExtensionFunctionalTestCase {
public static final String FLOW_NAME = "getClient";
public static final String USERNAME = "username";
public static final String PASSWORD = "password";
public static final String DATE = "date";
@Override
protected String getConfigFile() {
return "petstore-dynamic-connection-cached-parameter.xml";
}
@Test
public void getDynamicConnectionParametersOnCachedConnection() throws Exception {
PetStoreClient client = (PetStoreClient) flowRunner(FLOW_NAME)
.withVariable(USERNAME, "john")
.withVariable(PASSWORD, "doe")
.withVariable(DATE,
ISODateTimeFormat.dateTimeParser().withOffsetParsed().parseDateTime("2008-09-15T15:53:23+05:00").toDate())
.run().getMessage().getPayload().getValue();
assertThat(client.getUsername(), is("john"));
assertThat(client.getPassword(), is("doe"));
Calendar calendar = Calendar.getInstance();
calendar.setTime(client.getOpeningDate());
assertEquals(calendar.get(Calendar.YEAR), 2008);
assertEquals(calendar.get(Calendar.MONTH) + 1, 9);
assertEquals(calendar.get(Calendar.DAY_OF_MONTH), 15);
client = (PetStoreClient) flowRunner(FLOW_NAME)
.withVariable(USERNAME, "john")
.withVariable(PASSWORD, "doe")
.withVariable(DATE, ISODateTimeFormat.dateTimeParser().withOffsetParsed().parseDateTime("2017-02-10").toDate())
.run().getMessage().getPayload().getValue();
assertThat(client.getUsername(), is("john"));
assertThat(client.getPassword(), is("doe"));
calendar.setTime(client.getOpeningDate());
assertEquals(calendar.get(Calendar.YEAR), 2017);
assertEquals(calendar.get(Calendar.MONTH) + 1, 2);
assertEquals(calendar.get(Calendar.DAY_OF_MONTH), 10);
}
}