CalculatorPortType cal = (CalculatorPortType)service.getPort(PORT_1, CalculatorPortType.class);
BindingProvider bindingProvider = (BindingProvider)cal;
assertTrue(bindingProvider.getBinding() instanceof SOAPBinding);
SOAPBinding binding = (SOAPBinding)bindingProvider.getBinding();
assertNotNull(binding.getRoles());
assertEquals(2, binding.getRoles().size());
assertTrue(binding.getRoles().contains(Soap12.getInstance().getNextRole()));
assertTrue(binding.getRoles().contains(Soap12.getInstance().getUltimateReceiverRole()));
String myrole = "http://myrole";
Set<String> roles = new HashSet<String>();
roles.add(myrole);
binding.setRoles(roles);
assertNotNull(binding.getRoles());
assertEquals(3, binding.getRoles().size());
assertTrue(binding.getRoles().contains(myrole));
assertTrue(binding.getRoles().contains(Soap12.getInstance().getNextRole()));
assertTrue(binding.getRoles().contains(Soap12.getInstance().getUltimateReceiverRole()));
roles.add(Soap12.getInstance().getNoneRole());
try {
binding.setRoles(roles);
fail("did not throw exception");
} catch (WebServiceException e) {
// that's expected with none role
}
}