public void TestModifyPolicyAPI()
        {
            Enforcer e = new Enforcer("examples/rbac_model.conf", "examples/rbac_policy.csv");

            TestGetPolicy(e, AsList(
                              AsList("alice", "data1", "read"),
                              AsList("bob", "data2", "write"),
                              AsList("data2_admin", "data2", "read"),
                              AsList("data2_admin", "data2", "write")));

            e.RemovePolicy("alice", "data1", "read");
            e.RemovePolicy("bob", "data2", "write");
            e.RemovePolicy("alice", "data1", "read");
            e.AddPolicy("eve", "data3", "read");
            e.AddPolicy("eve", "data3", "read");

            List <String> namedPolicy = AsList("eve", "data3", "read");

            e.RemoveNamedPolicy("p", namedPolicy);
            e.AddNamedPolicy("p", namedPolicy);

            TestGetPolicy(e, AsList(
                              AsList("data2_admin", "data2", "read"),
                              AsList("data2_admin", "data2", "write"),
                              AsList("eve", "data3", "read")));

            e.RemoveFilteredPolicy(1, "data2");

            TestGetPolicy(e, AsList(AsList("eve", "data3", "read")));
        }
        public void TestModifyPolicy()
        {
            var e = new Enforcer(_testModelFixture.GetNewRbacTestModel());

            e.BuildRoleLinks();

            TestGetPolicy(e, AsList(
                              AsList("alice", "data1", "read"),
                              AsList("bob", "data2", "write"),
                              AsList("data2_admin", "data2", "read"),
                              AsList("data2_admin", "data2", "write")));

            e.RemovePolicy("alice", "data1", "read");
            e.RemovePolicy("bob", "data2", "write");
            e.RemovePolicy("alice", "data1", "read");
            e.AddPolicy("eve", "data3", "read");
            e.AddPolicy("eve", "data3", "read");

            var namedPolicy = AsList("eve", "data3", "read");

            e.RemoveNamedPolicy("p", namedPolicy);
            e.AddNamedPolicy("p", namedPolicy);

            TestGetPolicy(e, AsList(
                              AsList("data2_admin", "data2", "read"),
                              AsList("data2_admin", "data2", "write"),
                              AsList("eve", "data3", "read")));

            e.RemoveFilteredPolicy(1, "data2");
            TestGetPolicy(e, AsList(AsList("eve", "data3", "read")));

            e.RemoveFilteredPolicy(1, Array.Empty <string>());
            TestGetPolicy(e, AsList(AsList("eve", "data3", "read")));

            e.RemoveFilteredPolicy(1, "");
            TestGetPolicy(e, AsList(AsList("eve", "data3", "read")));
        }
        public void TestModifyPolicy()
        {
            var e = new Enforcer(_testModelFixture.GetNewRbacTestModel());

            e.BuildRoleLinks();

            TestGetPolicy(e, AsList(
                              AsList("alice", "data1", "read"),
                              AsList("bob", "data2", "write"),
                              AsList("data2_admin", "data2", "read"),
                              AsList("data2_admin", "data2", "write")));

            e.RemovePolicy("alice", "data1", "read");
            e.RemovePolicy("bob", "data2", "write");
            e.RemovePolicy("alice", "data1", "read");
            e.AddPolicy("eve", "data3", "read");
            e.AddPolicy("eve", "data3", "read");

            var rules = AsList(
                AsList("jack", "data4", "read"),
                AsList("jack", "data4", "read"),
                AsList("jack", "data4", "read"),
                AsList("katy", "data4", "write"),
                AsList("leyo", "data4", "read"),
                AsList("katy", "data4", "write"),
                AsList("katy", "data4", "write"),
                AsList("ham", "data4", "write")
                );

            _ = e.AddPolicies(rules);
            _ = e.AddPolicies(rules);

            TestGetPolicy(e, AsList(
                              AsList("data2_admin", "data2", "read"),
                              AsList("data2_admin", "data2", "write"),
                              AsList("eve", "data3", "read"),
                              AsList("jack", "data4", "read"),
                              AsList("katy", "data4", "write"),
                              AsList("leyo", "data4", "read"),
                              AsList("ham", "data4", "write")
                              )
                          );

            _ = e.RemovePolicies(rules);
            _ = e.RemovePolicies(rules);

            var namedPolicy = AsList("eve", "data3", "read");

            e.RemoveNamedPolicy("p", namedPolicy);
            e.AddNamedPolicy("p", namedPolicy);

            TestGetPolicy(e, AsList(
                              AsList("data2_admin", "data2", "read"),
                              AsList("data2_admin", "data2", "write"),
                              AsList("eve", "data3", "read")));

            e.RemoveFilteredPolicy(1, "data2");
            TestGetPolicy(e, AsList(AsList("eve", "data3", "read")));

            e.RemoveFilteredPolicy(1);
            TestGetPolicy(e, AsList(AsList("eve", "data3", "read")));

            e.RemoveFilteredPolicy(1, "");
            TestGetPolicy(e, AsList(AsList("eve", "data3", "read")));
        }