1*b28a5538SAdam Hornacek /* 2*b28a5538SAdam Hornacek * CDDL HEADER START 3*b28a5538SAdam Hornacek * 4*b28a5538SAdam Hornacek * The contents of this file are subject to the terms of the 5*b28a5538SAdam Hornacek * Common Development and Distribution License (the "License"). 6*b28a5538SAdam Hornacek * You may not use this file except in compliance with the License. 7*b28a5538SAdam Hornacek * 8*b28a5538SAdam Hornacek * See LICENSE.txt included in this distribution for the specific 9*b28a5538SAdam Hornacek * language governing permissions and limitations under the License. 10*b28a5538SAdam Hornacek * 11*b28a5538SAdam Hornacek * When distributing Covered Code, include this CDDL HEADER in each 12*b28a5538SAdam Hornacek * file and include the License file at LICENSE.txt. 13*b28a5538SAdam Hornacek * If applicable, add the following below this CDDL HEADER, with the 14*b28a5538SAdam Hornacek * fields enclosed by brackets "[]" replaced with your own identifying 15*b28a5538SAdam Hornacek * information: Portions Copyright [yyyy] [name of copyright owner] 16*b28a5538SAdam Hornacek * 17*b28a5538SAdam Hornacek * CDDL HEADER END 18*b28a5538SAdam Hornacek */ 19*b28a5538SAdam Hornacek 20*b28a5538SAdam Hornacek /* 21*b28a5538SAdam Hornacek * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. 22*b28a5538SAdam Hornacek */ 23*b28a5538SAdam Hornacek package opengrok.auth.plugin; 24*b28a5538SAdam Hornacek 25*b28a5538SAdam Hornacek import java.util.Map; 26*b28a5538SAdam Hornacek import java.util.TreeMap; 27*b28a5538SAdam Hornacek import opengrok.auth.plugin.entity.User; 28*b28a5538SAdam Hornacek import org.junit.Assert; 29*b28a5538SAdam Hornacek import org.junit.Before; 30*b28a5538SAdam Hornacek import org.junit.Test; 31*b28a5538SAdam Hornacek 32*b28a5538SAdam Hornacek /** 33*b28a5538SAdam Hornacek * 34*b28a5538SAdam Hornacek * @author Vladimir Kotal 35*b28a5538SAdam Hornacek */ 36*b28a5538SAdam Hornacek public class LdapUserPluginTest { 37*b28a5538SAdam Hornacek private LdapUserPlugin plugin; 38*b28a5538SAdam Hornacek 39*b28a5538SAdam Hornacek @Before setUp()40*b28a5538SAdam Hornacek public void setUp() { 41*b28a5538SAdam Hornacek plugin = new LdapUserPlugin(); 42*b28a5538SAdam Hornacek } 43*b28a5538SAdam Hornacek getParamsMap()44*b28a5538SAdam Hornacek private Map<String, Object> getParamsMap() { 45*b28a5538SAdam Hornacek Map<String, Object> params = new TreeMap<>(); 46*b28a5538SAdam Hornacek params.put(AbstractLdapPlugin.CONFIGURATION_PARAM, 47*b28a5538SAdam Hornacek getClass().getResource("config.xml").getFile()); 48*b28a5538SAdam Hornacek 49*b28a5538SAdam Hornacek return params; 50*b28a5538SAdam Hornacek } 51*b28a5538SAdam Hornacek 52*b28a5538SAdam Hornacek @Test loadTestNegative1()53*b28a5538SAdam Hornacek public void loadTestNegative1() { 54*b28a5538SAdam Hornacek Map<String, Object> params = getParamsMap(); 55*b28a5538SAdam Hornacek params.put("foo", (Object)"bar"); 56*b28a5538SAdam Hornacek try { 57*b28a5538SAdam Hornacek plugin.load(params); 58*b28a5538SAdam Hornacek Assert.fail("should have caused exception"); 59*b28a5538SAdam Hornacek } catch (NullPointerException e) { 60*b28a5538SAdam Hornacek } 61*b28a5538SAdam Hornacek } 62*b28a5538SAdam Hornacek 63*b28a5538SAdam Hornacek @Test loadTestNegative2()64*b28a5538SAdam Hornacek public void loadTestNegative2() { 65*b28a5538SAdam Hornacek Map<String, Object> params = getParamsMap(); 66*b28a5538SAdam Hornacek params.put(LdapUserPlugin.OBJECT_CLASS, (Object)"#$@"); 67*b28a5538SAdam Hornacek try { 68*b28a5538SAdam Hornacek plugin.load(params); 69*b28a5538SAdam Hornacek Assert.fail("should have caused exception"); 70*b28a5538SAdam Hornacek } catch (NullPointerException e) { 71*b28a5538SAdam Hornacek } 72*b28a5538SAdam Hornacek } 73*b28a5538SAdam Hornacek 74*b28a5538SAdam Hornacek @Test loadTestPostitive()75*b28a5538SAdam Hornacek public void loadTestPostitive() { 76*b28a5538SAdam Hornacek Map<String, Object> params = getParamsMap(); 77*b28a5538SAdam Hornacek params.put(LdapUserPlugin.OBJECT_CLASS, (Object)"posixUser"); 78*b28a5538SAdam Hornacek params.put(LdapUserPlugin.ATTRIBUTES, (Object)"mail"); 79*b28a5538SAdam Hornacek try { 80*b28a5538SAdam Hornacek plugin.load(params); 81*b28a5538SAdam Hornacek } catch (NullPointerException e) { 82*b28a5538SAdam Hornacek Assert.fail("should not cause exception"); 83*b28a5538SAdam Hornacek } 84*b28a5538SAdam Hornacek } 85*b28a5538SAdam Hornacek 86*b28a5538SAdam Hornacek @Test getFilterTest1()87*b28a5538SAdam Hornacek public void getFilterTest1() { 88*b28a5538SAdam Hornacek Map<String, Object> params = getParamsMap(); 89*b28a5538SAdam Hornacek String cl = "posixUser"; 90*b28a5538SAdam Hornacek params.put(LdapUserPlugin.OBJECT_CLASS, (Object) cl); 91*b28a5538SAdam Hornacek params.put(LdapUserPlugin.ATTRIBUTES, (Object) "uid,mail"); 92*b28a5538SAdam Hornacek plugin.load(params); 93*b28a5538SAdam Hornacek String cn = "cn=foo-foo_bar1"; 94*b28a5538SAdam Hornacek User user = new User(cn + ",l=EMEA,dc=foobar,dc=com", "id", null, false); 95*b28a5538SAdam Hornacek String filter = plugin.getFilter(user); 96*b28a5538SAdam Hornacek Assert.assertEquals("(&(" + LdapUserPlugin.OBJECT_CLASS + "=" + cl + ")(" + cn + "))", 97*b28a5538SAdam Hornacek filter); 98*b28a5538SAdam Hornacek } 99*b28a5538SAdam Hornacek 100*b28a5538SAdam Hornacek @Test(expected = NullPointerException.class) testLoadWithoutAttributes()101*b28a5538SAdam Hornacek public void testLoadWithoutAttributes() { 102*b28a5538SAdam Hornacek Map<String, Object> params = getParamsMap(); 103*b28a5538SAdam Hornacek String cl = "posixUser"; 104*b28a5538SAdam Hornacek params.put(LdapUserPlugin.OBJECT_CLASS, (Object) cl); 105*b28a5538SAdam Hornacek plugin.load(params); 106*b28a5538SAdam Hornacek } 107*b28a5538SAdam Hornacek } 108