From 7297b01949b6a1eea11c76ce25348ab9ee109898 Mon Sep 17 00:00:00 2001 From: Hason <258831020@qq.com> Date: Mon, 18 Sep 2023 01:59:14 +0800 Subject: [PATCH] feat: Expose getter and setter of aviatorEval for more customization (#359) * feat: Expose getter and setter of aviatorEval for more customization * test: Add test cases for setAviatorEvaluator method --- .../org/casbin/jcasbin/main/CoreEnforcer.java | 18 +++++++++++++ .../jcasbin/main/ManagementAPIUnitTest.java | 25 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/main/java/org/casbin/jcasbin/main/CoreEnforcer.java b/src/main/java/org/casbin/jcasbin/main/CoreEnforcer.java index 567b8045..3e102323 100644 --- a/src/main/java/org/casbin/jcasbin/main/CoreEnforcer.java +++ b/src/main/java/org/casbin/jcasbin/main/CoreEnforcer.java @@ -149,6 +149,24 @@ public void setModel(Model model) { fm = FunctionMap.loadFunctionMap(); } + /** + * set the aviator evaluator + * + * @param evaluator aviator evaluator + */ + public void setAviatorEvaluator(AviatorEvaluatorInstance evaluator) { + this.aviatorEval = Objects.requireNonNull(evaluator, "The aviator evaluator cannot be null."); + } + + /** + * gets the current Aviator Evaluator instance + * + * @return Aviator Evaluator instance of enforcer + */ + public AviatorEvaluatorInstance getAviatorEval() { + return aviatorEval; + } + /** * getAdapter gets the current adapter. * diff --git a/src/test/java/org/casbin/jcasbin/main/ManagementAPIUnitTest.java b/src/test/java/org/casbin/jcasbin/main/ManagementAPIUnitTest.java index 69d55d65..e1f1a576 100644 --- a/src/test/java/org/casbin/jcasbin/main/ManagementAPIUnitTest.java +++ b/src/test/java/org/casbin/jcasbin/main/ManagementAPIUnitTest.java @@ -14,6 +14,9 @@ package org.casbin.jcasbin.main; +import com.googlecode.aviator.AviatorEvaluator; +import com.googlecode.aviator.AviatorEvaluatorInstance; +import org.junit.Assert; import org.junit.Test; import java.util.List; @@ -203,4 +206,26 @@ public void testModifyGroupingPolicyAPI() { testGetUsers(e, "data2_admin", asList()); testGetUsers(e, "data3_admin", asList("eve")); } + + @Test + public void should_throwsNullPointException_when_setAviatorEvaluator_given_nullInstance() { + // given + AviatorEvaluatorInstance instance = null; + Enforcer enforcer = new Enforcer(); + // when + Assert.assertThrows("The aviator evaluator cannot be null.", NullPointerException.class, + () -> enforcer.setAviatorEvaluator(instance)); + } + + @Test + public void should_true_when_setAviatorEvaluator_given_customInstance() { + // given + AviatorEvaluatorInstance instance = AviatorEvaluator.newInstance(); + Enforcer enforcer = new Enforcer(); + // when + enforcer.setAviatorEvaluator(instance); + // then + Assert.assertEquals(instance, enforcer.getAviatorEval()); + } + }