TestUnixUserGroupInformation.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:4k
源码类别:
网格计算
开发平台:
Java
- /**
- * 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.hadoop.security;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.io.TestWritable;
- import junit.framework.TestCase;
- /** Unit tests for UnixUserGroupInformation */
- public class TestUnixUserGroupInformation extends TestCase {
- final private static String USER_NAME = "user1";
- final private static String GROUP1_NAME = "group1";
- final private static String GROUP2_NAME = "group2";
- final private static String GROUP3_NAME = "group3";
- final private static String[] GROUP_NAMES =
- new String[]{GROUP1_NAME, GROUP2_NAME, GROUP3_NAME};
- /** Test login method */
- public void testLogin() throws Exception {
- Configuration conf = new Configuration();
- // loin from unix
- String userName = UnixUserGroupInformation.getUnixUserName();
- UnixUserGroupInformation curUserGroupInfo =
- UnixUserGroupInformation.login(conf);
- assertEquals(curUserGroupInfo.getUserName(), userName);
- assertTrue(curUserGroupInfo == UnixUserGroupInformation.login(conf));
- // login from the configuration
- UnixUserGroupInformation userGroupInfo = new UnixUserGroupInformation(
- USER_NAME, GROUP_NAMES );
- UnixUserGroupInformation.saveToConf(conf,
- UnixUserGroupInformation.UGI_PROPERTY_NAME, userGroupInfo);
- curUserGroupInfo = UnixUserGroupInformation.login(conf);
- assertEquals(curUserGroupInfo, userGroupInfo);
- assertTrue(curUserGroupInfo == UnixUserGroupInformation.login(conf));
- }
- /** test constructor */
- public void testConstructor() throws Exception {
- UnixUserGroupInformation uugi =
- new UnixUserGroupInformation(USER_NAME, GROUP_NAMES);
- assertEquals(uugi, new UnixUserGroupInformation( new String[]{
- USER_NAME, GROUP1_NAME, GROUP2_NAME, GROUP3_NAME} ));
- // failure test
- testConstructorFailures(null, GROUP_NAMES);
- testConstructorFailures("", GROUP_NAMES);
- testConstructorFailures(USER_NAME, null);
- testConstructorFailures(USER_NAME, new String[0]);
- testConstructorFailures(USER_NAME, new String[]{null});
- testConstructorFailures(USER_NAME, new String[]{""});
- testConstructorFailures(USER_NAME, new String[]{GROUP1_NAME, null});
- testConstructorFailures(USER_NAME,
- new String[]{GROUP1_NAME, null, GROUP2_NAME});
- }
- private void testConstructorFailures(String userName, String[] groupNames) {
- boolean gotException = false;
- try {
- new UnixUserGroupInformation(userName, groupNames);
- } catch (Exception e) {
- gotException = true;
- }
- assertTrue(gotException);
- }
- public void testEquals() throws Exception {
- UnixUserGroupInformation uugi =
- new UnixUserGroupInformation(USER_NAME, GROUP_NAMES);
- assertEquals(uugi, uugi);
- assertEquals(uugi, new UnixUserGroupInformation(USER_NAME, GROUP_NAMES));
- assertEquals(uugi, new UnixUserGroupInformation(USER_NAME,
- new String[]{GROUP1_NAME, GROUP3_NAME, GROUP2_NAME}));
- assertFalse(uugi.equals(new UnixUserGroupInformation()));
- assertFalse(uugi.equals(new UnixUserGroupInformation(USER_NAME,
- new String[]{GROUP2_NAME, GROUP3_NAME, GROUP1_NAME})));
- }
- /** test Writable */
- public void testWritable() throws Exception {
- UnixUserGroupInformation ugi = new UnixUserGroupInformation(
- USER_NAME, GROUP_NAMES);
- TestWritable.testWritable(ugi, new Configuration());
- }
- }