/*
* 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 gobblin.data.management.copy.hive;
import org.testng.annotations.Test;
import org.testng.Assert;
public class WhitelistBlacklistTest {
@Test
public void testSimpleWhitelist() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("Dba.Tablea", "");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertFalse(whitelistBlacklist.acceptDb("dbb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dbb", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dbA", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dbA", "TableA"));
}
@Test
public void testSimpleBlacklist() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("", "dba.tablea");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertTrue(whitelistBlacklist.acceptDb("dbb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dbb", "tablea"));
}
@Test
public void testDbWhitelist() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("dba", "");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertFalse(whitelistBlacklist.acceptDb("dbb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dbb", "tablea"));
}
@Test
public void testDbBlacklist() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("", "dba");
Assert.assertFalse(whitelistBlacklist.acceptDb("dba"));
Assert.assertTrue(whitelistBlacklist.acceptDb("dbb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dbb", "tablea"));
}
@Test
public void testDbWhitelistStar() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("dba.*", "");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertFalse(whitelistBlacklist.acceptDb("dbb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dbb", "tablea"));
}
@Test
public void testDbBlacklistStar() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("", "dba.*");
Assert.assertFalse(whitelistBlacklist.acceptDb("dba"));
Assert.assertTrue(whitelistBlacklist.acceptDb("dbb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dbb", "tablea"));
}
@Test
public void testMultiWhitelist() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("dba,dbb.tablea", "");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertTrue(whitelistBlacklist.acceptDb("dbb"));
Assert.assertFalse(whitelistBlacklist.acceptDb("dbc"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dbb", "tablea"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dbc", "tablea"));
}
@Test
public void testMultipleTablesWhitelist() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("dba.tablea|tableb", "");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertFalse(whitelistBlacklist.acceptDb("dbb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "tablec"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dbb", "tablea"));
}
@Test
public void testTablePattern() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("dba.table*|accept", "");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertFalse(whitelistBlacklist.acceptDb("dbb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "accept"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "other"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dbb", "tablea"));
}
@Test
public void testDbPattern() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("db*", "");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertTrue(whitelistBlacklist.acceptDb("dbb"));
Assert.assertFalse(whitelistBlacklist.acceptDb("database"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dbb", "tablea"));
Assert.assertFalse(whitelistBlacklist.acceptTable("database", "tablea"));
}
@Test
public void testDbAndTablePattern() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("db*.table*", "");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertTrue(whitelistBlacklist.acceptDb("dbb"));
Assert.assertFalse(whitelistBlacklist.acceptDb("database"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "other"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dbb", "tablea"));
Assert.assertFalse(whitelistBlacklist.acceptTable("database", "tablea"));
}
@Test
public void testWhitelistBlacklist() throws Exception {
WhitelistBlacklist whitelistBlacklist = new WhitelistBlacklist("dba", "dba.tablea");
Assert.assertTrue(whitelistBlacklist.acceptDb("dba"));
Assert.assertFalse(whitelistBlacklist.acceptDb("dbb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dba", "tablea"));
Assert.assertTrue(whitelistBlacklist.acceptTable("dba", "tableb"));
Assert.assertFalse(whitelistBlacklist.acceptTable("dbb", "tableb"));
}
}