/* * 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 nl.surfnet.coin.teams.service.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.Serializable; import java.util.List; import nl.surfnet.coin.db.AbstractInMemoryDatabaseTest; import nl.surfnet.coin.teams.domain.GroupProvider; import nl.surfnet.coin.teams.domain.GroupProviderType; import nl.surfnet.coin.teams.domain.GroupProviderUserOauth; import nl.surfnet.coin.teams.domain.ServiceProviderGroupAcl; import org.apache.commons.lang.SerializationUtils; import org.junit.Before; import org.junit.Test; /** * Test for GroupProviderServiceSQLImpl that uses an in-memory database. * */ public class GroupProviderServiceSQLImplTest extends AbstractInMemoryDatabaseTest { private static GroupProviderServiceSQLImpl groupProviderServiceSQL; @Before public void init() { groupProviderServiceSQL = new GroupProviderServiceSQLImpl(super.getJdbcTemplate()); } /** * Test method for * {@link nl.surfnet.coin.teams.service.impl.GroupProviderServiceSQLImpl#getGroupProviderUserOauths(java.lang.String)} * . */ @Test public void testGetGroupProviderUserOauths() { List<GroupProviderUserOauth> oauths = groupProviderServiceSQL.getGroupProviderUserOauths("urn:collab:person:test.surfguest.nl:tester"); assertEquals(1, oauths.size()); GroupProviderUserOauth groupProviderUserOauth = oauths.get(0); assertEquals("avans", groupProviderUserOauth.getProvider()); } /** * Test method for * {@link nl.surfnet.coin.teams.service.impl.GroupProviderServiceSQLImpl#getGroupProviderByStringIdentifier(java.lang.String)} * . */ @Test public void testGetGroupProviderByStringIdentifier() { GroupProvider groupProvider = groupProviderServiceSQL.getGroupProviderByStringIdentifier("grouper"); assertEquals("SURFteams grouper",groupProvider.getName()); } @Test public void testGetGroupProviderUserOauth() { String userId = "urn:collab:person:test.surfguest.nl:tester2"; GroupProviderUserOauth groupProviderUserOauth = groupProviderServiceSQL.getGroupProviderUserOauth(userId, "avans"); assertEquals(userId,groupProviderUserOauth.getPersonId()); groupProviderUserOauth = groupProviderServiceSQL.getGroupProviderUserOauth("does-not-exist", "avans"); assertTrue(groupProviderUserOauth == null); } @Test public void testGetAllGroupProviders() throws Exception { List<GroupProvider> all = groupProviderServiceSQL.getAllGroupProviders(); assertEquals(4,all.size()); //we need to ensure Grouper is also in here boolean grouperPresent = false; for (GroupProvider groupProvider : all) { if (groupProvider.getGroupProviderType().equals(GroupProviderType.GROUPER)) { grouperPresent = true; break; } } assertTrue(grouperPresent); } /** * The {@link GroupProvider} are placed in the session and therefore need to be {@link Serializable} */ @Test public void serializeGroupProvider() { List<GroupProvider> all = groupProviderServiceSQL.getAllGroupProviders(); byte[] serialize = SerializationUtils.serialize((Serializable)all); } @Test public void testGetBasicAuthProvider() throws Exception { GroupProvider groupProvider = groupProviderServiceSQL.getGroupProviderByStringIdentifier("mock"); assertEquals(GroupProviderType.BASIC_AUTHENTICATION, groupProvider.getGroupProviderType()); } /** * Test method for * {@link nl.surfnet.coin.teams.service.impl.GroupProviderServiceSQLImpl#getOAuthGroupProviders(java.lang.String)} * . */ @Test public void testGetOAuthGroupProviders() { List<GroupProvider> providers = groupProviderServiceSQL.getOAuthGroupProviders("urn:collab:person:test.surfguest.nl:tester"); assertEquals(1,providers.size()); GroupProvider groupProvider = providers.get(0); List<ServiceProviderGroupAcl> acls = groupProvider.getServiceProviderGroupAcls(); assertEquals(2, acls.size()); } /* (non-Javadoc) * @see nl.surfnet.coin.db.AbstractInMemoryDatabaseTest#getMockDataContentFilename() */ @Override public String getMockDataContentFilename() { return "test-data-eb.sql"; } /* (non-Javadoc) * @see nl.surfnet.coin.db.AbstractInMemoryDatabaseTest#getMockDataCleanUpFilename() */ @Override public String getMockDataCleanUpFilename() { return "cleanup-test-data-eb.sql"; } }