/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.karaf.jaas.modules.syncope; import org.junit.Test; import org.junit.Assert; import java.util.List; public class SyncopeLoginModuleTest { @Test public void testRolesExtraction() throws Exception { String syncopeResponse = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<user>\n" + " <attributes>\n" + " <attribute>\n" + " <readonly>false</readonly>\n" + " <schema>cool</schema>\n" + " <value>false</value>\n" + " </attribute>\n" + " <attribute>\n" + " <readonly>false</readonly>\n" + " <schema>email</schema>\n" + " <value>karaf@example.net</value>\n" + " </attribute>\n" + " <attribute>\n" + " <readonly>false</readonly>\n" + " <schema>fullname</schema>\n" + " <value>karaf</value>\n" + " </attribute>\n" + " <attribute>\n" + " <readonly>false</readonly>\n" + " <schema>gender</schema>\n" + " <value>M</value>\n" + " </attribute>\n" + " <attribute>\n" + " <readonly>false</readonly>\n" + " <schema>surname</schema>\n" + " <value>karaf</value>\n" + " </attribute>\n" + " <attribute>\n" + " <readonly>false</readonly>\n" + " <schema>userId</schema>\n" + " <value>karaf@example.net</value>\n" + " </attribute>\n" + " </attributes>\n" + " <derivedAttributes/>\n" + " <id>100</id>\n" + " <propagationStatuses/>\n" + " <resources/>\n" + " <virtualAttributes/>\n" + " <creationDate>2014-08-12T18:37:09.202+02:00</creationDate>\n" + " <failedLogins>0</failedLogins>\n" + " <lastLoginDate>2014-08-13T09:38:02.204+02:00</lastLoginDate>\n" + " <memberships>\n" + " <membership>\n" + " <attributes/>\n" + " <derivedAttributes/>\n" + " <id>100</id>\n" + " <propagationStatuses/>\n" + " <resources/>\n" + " <virtualAttributes/>\n" + " <resources/>\n" + " <roleId>100</roleId>\n" + " <roleName>admin</roleName>\n" + " </membership>\n" + " <membership>\n" + " <attributes/>\n" + " <derivedAttributes/>\n" + " <id>101</id>\n" + " <propagationStatuses/>\n" + " <resources/>\n" + " <virtualAttributes/>\n" + " <resources/>\n" + " <roleId>101</roleId>\n" + " <roleName>another</roleName>\n" + " </membership>\n" + " </memberships>\n" + " <password>36460D3A3C1E27C0DB2AF23344475EE712DD3C9D</password>\n" + " <status>active</status>\n" + " <username>karaf</username>\n" + "</user>\n"; SyncopeLoginModule syncopeLoginModule = new SyncopeLoginModule(); List<String> roles = syncopeLoginModule.extractingRoles(syncopeResponse); Assert.assertEquals(2, roles.size()); Assert.assertEquals("admin", roles.get(0)); Assert.assertEquals("another", roles.get(1)); } }