blob: dcab5d526138b82935a0bedd11b33bc5f7a86905 [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.
*/
package org.apache.sentry.core.model.kafka;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import org.apache.sentry.core.model.kafka.KafkaActionFactory.KafkaAction;
import org.junit.Test;
import com.google.common.collect.Lists;
/**
* Test KafkaActionFactory creates expected Kafka action instances.
*/
public class TestKafkaAction {
private KafkaActionFactory factory = KafkaActionFactory.getInstance();
@Test
public void testImpliesAction() {
KafkaAction readAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.READ);
KafkaAction writeAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.WRITE);
KafkaAction createAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.CREATE);
KafkaAction deleteAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.DELETE);
KafkaAction alterAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.ALTER);
KafkaAction describeAction =
(KafkaAction) factory.getActionByName(KafkaActionConstant.DESCRIBE);
KafkaAction adminAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.CLUSTER_ACTION);
KafkaAction allAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.ALL);
assertTrue(allAction.implies(readAction));
assertTrue(allAction.implies(writeAction));
assertTrue(allAction.implies(createAction));
assertTrue(allAction.implies(deleteAction));
assertTrue(allAction.implies(alterAction));
assertTrue(allAction.implies(describeAction));
assertTrue(allAction.implies(adminAction));
assertTrue(allAction.implies(allAction));
assertTrue(readAction.implies(readAction));
assertFalse(readAction.implies(writeAction));
assertFalse(readAction.implies(createAction));
assertFalse(readAction.implies(deleteAction));
assertFalse(readAction.implies(alterAction));
assertFalse(readAction.implies(describeAction));
assertFalse(readAction.implies(adminAction));
assertFalse(readAction.implies(allAction));
assertFalse(writeAction.implies(readAction));
assertTrue(writeAction.implies(writeAction));
assertFalse(writeAction.implies(createAction));
assertFalse(writeAction.implies(deleteAction));
assertFalse(writeAction.implies(alterAction));
assertFalse(writeAction.implies(describeAction));
assertFalse(writeAction.implies(adminAction));
assertFalse(writeAction.implies(allAction));
assertFalse(createAction.implies(readAction));
assertFalse(createAction.implies(writeAction));
assertTrue(createAction.implies(createAction));
assertFalse(createAction.implies(deleteAction));
assertFalse(createAction.implies(alterAction));
assertFalse(createAction.implies(describeAction));
assertFalse(createAction.implies(adminAction));
assertFalse(createAction.implies(allAction));
assertFalse(deleteAction.implies(readAction));
assertFalse(deleteAction.implies(writeAction));
assertFalse(deleteAction.implies(createAction));
assertTrue(deleteAction.implies(deleteAction));
assertFalse(deleteAction.implies(alterAction));
assertFalse(deleteAction.implies(describeAction));
assertFalse(deleteAction.implies(adminAction));
assertFalse(deleteAction.implies(allAction));
assertFalse(alterAction.implies(readAction));
assertFalse(alterAction.implies(writeAction));
assertFalse(alterAction.implies(createAction));
assertFalse(alterAction.implies(deleteAction));
assertTrue(alterAction.implies(alterAction));
assertFalse(alterAction.implies(describeAction));
assertFalse(alterAction.implies(adminAction));
assertFalse(alterAction.implies(allAction));
assertFalse(describeAction.implies(readAction));
assertFalse(describeAction.implies(writeAction));
assertFalse(describeAction.implies(createAction));
assertFalse(describeAction.implies(deleteAction));
assertFalse(describeAction.implies(alterAction));
assertTrue(describeAction.implies(describeAction));
assertFalse(describeAction.implies(adminAction));
assertFalse(describeAction.implies(allAction));
assertFalse(adminAction.implies(readAction));
assertFalse(adminAction.implies(writeAction));
assertFalse(adminAction.implies(createAction));
assertFalse(adminAction.implies(deleteAction));
assertFalse(adminAction.implies(alterAction));
assertFalse(adminAction.implies(describeAction));
assertTrue(adminAction.implies(adminAction));
assertFalse(adminAction.implies(allAction));
}
@Test
public void testGetActionByName() throws Exception {
KafkaAction readAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.READ);
KafkaAction writeAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.WRITE);
KafkaAction createAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.CREATE);
KafkaAction deleteAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.DELETE);
KafkaAction alterAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.ALTER);
KafkaAction describeAction =
(KafkaAction) factory.getActionByName(KafkaActionConstant.DESCRIBE);
KafkaAction adminAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.CLUSTER_ACTION);
KafkaAction allAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.ALL);
assertTrue(readAction.equals(new KafkaAction(KafkaActionConstant.READ)));
assertTrue(writeAction.equals(new KafkaAction(KafkaActionConstant.WRITE)));
assertTrue(createAction.equals(new KafkaAction(KafkaActionConstant.CREATE)));
assertTrue(deleteAction.equals(new KafkaAction(KafkaActionConstant.DELETE)));
assertTrue(alterAction.equals(new KafkaAction(KafkaActionConstant.ALTER)));
assertTrue(describeAction.equals(new KafkaAction(KafkaActionConstant.DESCRIBE)));
assertTrue(adminAction.equals(new KafkaAction(KafkaActionConstant.CLUSTER_ACTION)));
assertTrue(allAction.equals(new KafkaAction(KafkaActionConstant.ALL)));
}
@Test
public void testGetActionsByCode() throws Exception {
KafkaAction readAction = new KafkaAction(KafkaActionConstant.READ);
KafkaAction writeAction = new KafkaAction(KafkaActionConstant.WRITE);
KafkaAction createAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.CREATE);
KafkaAction deleteAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.DELETE);
KafkaAction alterAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.ALTER);
KafkaAction describeAction =
(KafkaAction) factory.getActionByName(KafkaActionConstant.DESCRIBE);
KafkaAction adminAction = (KafkaAction) factory.getActionByName(KafkaActionConstant.CLUSTER_ACTION);
KafkaAction allAction = new KafkaAction(KafkaActionConstant.ALL);
assertEquals(Lists.newArrayList(readAction),
factory.getActionsByCode(readAction.getActionCode()));
assertEquals(Lists.newArrayList(writeAction),
factory.getActionsByCode(writeAction.getActionCode()));
assertEquals(Lists.newArrayList(createAction),
factory.getActionsByCode(createAction.getActionCode()));
assertEquals(Lists.newArrayList(deleteAction),
factory.getActionsByCode(deleteAction.getActionCode()));
assertEquals(Lists.newArrayList(alterAction),
factory.getActionsByCode(alterAction.getActionCode()));
assertEquals(Lists.newArrayList(describeAction),
factory.getActionsByCode(describeAction.getActionCode()));
assertEquals(Lists.newArrayList(adminAction),
factory.getActionsByCode(adminAction.getActionCode()));
assertEquals(Lists.newArrayList(readAction, writeAction, createAction, deleteAction,
alterAction, describeAction, adminAction), factory.getActionsByCode(allAction
.getActionCode()));
}
@Test
public void testGetActionForInvalidName() {
assertEquals("Failed to NOT create Kafka action for invalid name.", null, factory.getActionByName("INVALID"));
}
@Test
public void testGetActionForInvalidCode() {
assertEquals("Failed to NOT create Kafka actions for invalid code.", 0, factory.getActionsByCode(0).size());
}
}