mockCasContext.setServiceTokensToVend(proxyTickets);
person.setSecurityContext(mockCasContext);
ChannelStaticData staticData = new ChannelStaticData();
staticData.setPerson(person);
CasConnectionContext connectionContext = new CasConnectionContext();
connectionContext.init(staticData);
ChannelRuntimeData withoutParameter = new ChannelRuntimeData();
// when the "cw_xml" parameter is neither present in ChannelRuntimeData nor
// in ChannelStaticData, the CasConnectionContext acquires a ticket for the
// null service
assertEquals("ticket=proxyTicket1", connectionContext.getPostData(withoutParameter));
assertEquals(null, mockCasContext.getServiceTokenTargets().get(0));
ChannelRuntimeData withParameter = new ChannelRuntimeData();
String runtimeService = "http://baseactionurl.blogspot.com/2005/12/ja-sig-facebook.html";
withParameter.setParameter("cw_xml", runtimeService);
// read the cw_xml parameter from ChannelRuntimeData
assertEquals("ticket=proxyTicket2", connectionContext.getPostData(withParameter));
assertEquals(runtimeService, mockCasContext.getServiceTokenTargets().get(1));
// prefer the parameter from ChannelRuntimeData rather than ChannelStaticData
ChannelStaticData staticDataWithUri = new ChannelStaticData();
staticDataWithUri.setPerson(person);
String staticService = "http://www.ja-sig.org/wiki/";
staticDataWithUri.setParameter("cw_xml", staticService);
connectionContext.init(staticDataWithUri);
assertEquals("ticket=proxyTicket3", connectionContext.getPostData(withParameter));
assertEquals(runtimeService, mockCasContext.getServiceTokenTargets().get(2));