blob: c14d03836874c91bc4f4500e0326399487cc751d [file] [log] [blame]
;; 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.
(ns org.apache.storm.security.auth.AuthUtils-test
(:import [org.apache.storm.security.auth AuthUtils IAutoCredentials])
(:import [java.io IOException])
(:import [javax.security.auth.login AppConfigurationEntry Configuration])
(:import [org.mockito Mockito])
(:use [clojure test]))
(deftest test-throws-on-missing-section
(is (thrown? IOException
(AuthUtils/get (Mockito/mock Configuration) "bogus-section" "")))
)
(defn- mk-mock-app-config-entry []
(let [toRet (Mockito/mock AppConfigurationEntry)]
(. (Mockito/when (.getOptions toRet)) thenReturn (hash-map))
toRet
)
)
(deftest test-returns-null-if-no-such-section
(let [entry (mk-mock-app-config-entry)
entries (into-array (.getClass entry) [entry])
section "bogus-section"
conf (Mockito/mock Configuration)]
(. (Mockito/when (. conf getAppConfigurationEntry section ))
thenReturn entries)
(is (nil? (AuthUtils/get conf section "nonexistent-key")))
)
)
(deftest test-returns-first-value-for-valid-key
(let [k "the-key"
expected "good-value"
empty-entry (mk-mock-app-config-entry)
bad-entry (Mockito/mock AppConfigurationEntry)
good-entry (Mockito/mock AppConfigurationEntry)
conf (Mockito/mock Configuration)]
(. (Mockito/when (.getOptions bad-entry)) thenReturn {k "bad-value"})
(. (Mockito/when (.getOptions good-entry)) thenReturn {k expected})
(let [entries (into-array (.getClass empty-entry)
[empty-entry good-entry bad-entry])
section "bogus-section"]
(. (Mockito/when (. conf getAppConfigurationEntry section))
thenReturn entries)
(is (not (nil? (AuthUtils/get conf section k))))
(is (= (AuthUtils/get conf section k) expected))
)
))
(deftest test-empty-auto-creds
(let [result (AuthUtils/GetAutoCredentials {})]
(is (.isEmpty result))
)
)
(deftest test-empty-creds-renewers
(let [result (AuthUtils/GetCredentialRenewers {})]
(is (.isEmpty result))
)
)