Skip to content

Commit d767c34

Browse files
committed
partial-coverage
1 parent 8265a3c commit d767c34

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigTreePrivilegeParseVisitorTest.java

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,20 @@
1919

2020
package org.apache.iotdb.confignode.manager.pipe.source;
2121

22+
import org.apache.iotdb.common.rpc.thrift.TSStatus;
23+
import org.apache.iotdb.commons.auth.entity.PrivilegeType;
2224
import org.apache.iotdb.commons.auth.entity.PrivilegeUnion;
2325
import org.apache.iotdb.commons.exception.MetadataException;
2426
import org.apache.iotdb.commons.utils.StatusUtils;
27+
import org.apache.iotdb.confignode.consensus.request.ConfigPhysicalPlanType;
28+
import org.apache.iotdb.confignode.consensus.request.write.database.DatabaseSchemaPlan;
2529
import org.apache.iotdb.confignode.manager.ConfigManager;
2630
import org.apache.iotdb.confignode.manager.PermissionManager;
31+
import org.apache.iotdb.confignode.rpc.thrift.TDatabaseSchema;
2732
import org.apache.iotdb.confignode.rpc.thrift.TPermissionInfoResp;
2833
import org.apache.iotdb.confignode.service.ConfigNode;
2934
import org.apache.iotdb.db.exception.StorageEngineException;
35+
import org.apache.iotdb.rpc.TSStatusCode;
3036

3137
import org.apache.tsfile.exception.write.WriteProcessException;
3238
import org.junit.After;
@@ -35,6 +41,7 @@
3541
import org.junit.Test;
3642

3743
import java.io.IOException;
44+
import java.util.function.BiFunction;
3845

3946
public class PipeConfigTreePrivilegeParseVisitorTest {
4047

@@ -44,14 +51,15 @@ public class PipeConfigTreePrivilegeParseVisitorTest {
4451
new PipeConfigTreePrivilegeParseVisitor(false);
4552

4653
private ConfigNode oldInstance;
54+
private final TestPermissionManager permissionManager = new TestPermissionManager();
4755

4856
@Before
4957
public void setUp()
5058
throws IOException, WriteProcessException, MetadataException, InterruptedException {
5159
oldInstance = ConfigNode.getInstance();
5260
ConfigNode.setInstance(new ConfigNode());
5361
final ConfigManager configManager = new ConfigManager();
54-
configManager.setPermissionManager(new TestPermissionManager());
62+
configManager.setPermissionManager(permissionManager);
5563
ConfigNode.getInstance().setConfigManager(configManager);
5664
}
5765

@@ -61,19 +69,44 @@ public void tearDown() throws IOException, StorageEngineException {
6169
}
6270

6371
@Test
64-
public void testCreateDatabase() {
72+
public void testCanReadSysSchema() {
73+
permissionManager.setUserPrivilege(
74+
(userName, privilegeUnion) -> privilegeUnion.getPrivilegeType() == PrivilegeType.SYSTEM);
6575
Assert.assertTrue(skipVisitor.canReadSysSchema("root.db", null, true));
76+
77+
permissionManager.setUserPrivilege(
78+
(userName, privilegeUnion) ->
79+
privilegeUnion.getPrivilegeType() == PrivilegeType.READ_SCHEMA
80+
&& privilegeUnion.getPath().equals("root.db"));
81+
Assert.assertTrue(skipVisitor.canReadSysSchema("root.db", null, true));
82+
Assert.assertFalse(
83+
throwVisitor
84+
.visitCreateDatabase(
85+
new DatabaseSchemaPlan(
86+
ConfigPhysicalPlanType.CreateDatabase, new TDatabaseSchema("root.db1")),
87+
null)
88+
.isPresent());
6689
}
6790

6891
private static class TestPermissionManager extends PermissionManager {
92+
93+
private BiFunction<String, PrivilegeUnion, Boolean> checkUserPrivileges =
94+
(userName, privilegeUnion) -> true;
95+
6996
public TestPermissionManager() {
7097
super(null, null);
7198
}
7299

73100
@Override
74101
public TPermissionInfoResp checkUserPrivileges(
75102
final String username, final PrivilegeUnion union) {
76-
return new TPermissionInfoResp(StatusUtils.OK);
103+
return checkUserPrivileges.apply(username, union)
104+
? new TPermissionInfoResp(StatusUtils.OK)
105+
: new TPermissionInfoResp(new TSStatus(TSStatusCode.NO_PERMISSION.getStatusCode()));
106+
}
107+
108+
void setUserPrivilege(final BiFunction<String, PrivilegeUnion, Boolean> checkUserPrivileges) {
109+
this.checkUserPrivileges = checkUserPrivileges;
77110
}
78111
}
79112
}

0 commit comments

Comments
 (0)