* Test method for {@link org.apache.james.managesieve.core.CoreProcessor#capability()}.
*/
@Test
public final void testCapability() {
MockSession session = new MockSession();
MockSieveParser parser = new MockSieveParser();
CoreProcessor core = new CoreProcessor(session, new MockSieveRepository(), parser);
// Unauthenticated
session.setAuthentication(false);
parser.setExtensions(Arrays.asList(new String[]{"a","b","c"}));
Map<Capabilities, String> capabilities = core.capability();
assertEquals(CoreProcessor.IMPLEMENTATION_DESCRIPTION, capabilities.get(Capabilities.IMPLEMENTATION));
assertEquals(CoreProcessor.MANAGE_SIEVE_VERSION, capabilities.get(Capabilities.VERSION));
assertEquals("a b c", capabilities.get(Capabilities.SIEVE));
assertFalse(capabilities.containsKey(Capabilities.OWNER));
assertTrue(capabilities.containsKey(Capabilities.GETACTIVE));
// Authenticated
session.setAuthentication(true);
parser.setExtensions(Arrays.asList(new String[]{"a","b","c"}));
session.setUser("test");
capabilities = core.capability();
assertEquals(CoreProcessor.IMPLEMENTATION_DESCRIPTION, capabilities.get(Capabilities.IMPLEMENTATION));
assertEquals(CoreProcessor.MANAGE_SIEVE_VERSION, capabilities.get(Capabilities.VERSION));
assertEquals("a b c", capabilities.get(Capabilities.SIEVE));