Skip to content
Closed
7 changes: 4 additions & 3 deletions src/test/java/org/casbin/jcasbin/main/FrontendUnitTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@ public class FrontendUnitTest {
public void testCasbinJsGetPermissionForUser() throws IOException {
SyncedEnforcer e = new SyncedEnforcer("examples/rbac_model.conf", "examples/rbac_with_hierarchy_policy.csv");
HashMap<String, Object> received = new Gson().fromJson(Frontend.casbinJsGetPermissionForUser(e, "alice"), HashMap.class);
String expectedModelStr = new String(Files.readAllBytes(Paths.get("examples/rbac_model.conf")));
assertEquals(received.get("m"), expectedModelStr);
String receivedModelStr = ((String) received.get("m")).replace("\r\n", "\n").replace("\r", "\n");
String expectedModelStr = new String(Files.readAllBytes(Paths.get("examples/rbac_model.conf"))).replace("\r\n", "\n").replace("\r", "\n");
assertEquals(expectedModelStr, receivedModelStr);

String expectedPolicyStr = new String(Files.readAllBytes(Paths.get("examples/rbac_with_hierarchy_policy.csv")));
String expectedPolicyStr = new String(Files.readAllBytes(Paths.get("examples/rbac_with_hierarchy_policy.csv"))).replace("\r\n", "\n").replace("\r", "\n");
expectedPolicyStr = Pattern.compile("\n+").matcher(expectedPolicyStr).replaceAll("\n");
String[] expectedPolicyItem = expectedPolicyStr.split(",|\n");
int i = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
package org.casbin.jcasbin.main.benchmark;

import org.casbin.jcasbin.main.Enforcer;
import org.casbin.jcasbin.main.ModelUnitTest;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.profile.GCProfiler;
import org.openjdk.jmh.runner.Runner;
Expand All @@ -25,29 +24,54 @@

import java.util.concurrent.TimeUnit;

@OutputTimeUnit(TimeUnit.MILLISECONDS)
/**
* Benchmark for ABAC model.
* Data scale: 0 rules (0 user).
*/
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@BenchmarkMode(Mode.AverageTime)
public class BenchmarkABACModel {
private static Enforcer e = new Enforcer("examples/abac_model.conf", "",false);
private static ModelUnitTest.TestResource data1 = new ModelUnitTest.TestResource("data1", "alice");
private static Enforcer e;
private static TestResource data1;

public static void main(String args[]) throws RunnerException {
public static class TestResource {
private String Name;
private String Owner;

public TestResource(String name, String owner) {
this.Name = name;
this.Owner = owner;
}

public String getName() {
return Name;
}

public String getOwner() {
return Owner;
}
}

static {
e = new Enforcer("examples/abac_model.conf", "", false);
data1 = new TestResource("data1", "alice");
}

public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(BenchmarkABACModel.class.getName())
.exclude("Pref")
.warmupIterations(3)
.measurementIterations(3)
.addProfiler(GCProfiler.class)
.forks(1)
.build();
.include(BenchmarkABACModel.class.getName())
.exclude("Pref")
.warmupIterations(3)
.measurementIterations(5)
.addProfiler(GCProfiler.class)
.forks(2)
.build();
new Runner(opt).run();
}

@Threads(1)
@Benchmark
public static void benchmarkABACModel() {
for (int i = 0; i < 1000; i++) {
e.enforce("alice", data1, "read");
}
public void benchmarkABACModel() {
e.enforce("alice", data1, "read");
}
}
Loading