@Test
public void testHandleUsernameTokenPrincipal() throws Exception {

	UserDetailsService userDetailsService = createMock(UserDetailsService.class);
	callbackHandler.setUserDetailsService(userDetailsService);
	expect(userDetailsService.loadUserByUsername("Ernie")).andReturn(user).anyTimes();
	replay(userDetailsService);
	callbackHandler.handleUsernameTokenPrincipal(callback);
	SecurityContext context = SecurityContextHolder.getContext();
	Assert.assertNotNull("SecurityContext must not be null", context);
	Authentication authentication = context.getAuthentication();
	Assert.assertNotNull("Authentication must not be null", authentication);
	Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
	Assert.assertTrue("GrantedAuthority[] must not be null or empty", (authorities != null && authorities.size() > 0));
	Assert.assertEquals("Unexpected authority", grantedAuthority, authorities.iterator().next());
	verify(userDetailsService);
}