public void GetRoleAccessAbleActionListTest()
        {
            MyRuleServiceImpl target = new MyRuleServiceImpl();
            List<MR_ACTION> actionList;

            
            actionList = target.GetRoleAccessAbleActionList("R01", "M01");
            // 0个 动作.  人事管理 是 顶级模块无 动作.
            Assert.AreEqual(0, actionList.Count);
            
            actionList = target.GetRoleAccessAbleActionList("R01", "M02");
            // 0个 动作.  人事组织管理  是 1级模块无 动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R01", "M03");
            // 0个 动作.  权限管理 是 1级模块无 动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R01", "M04");
            // 4个 动作. 部门管理 有  增改删 (查)  4个 动作.
            Assert.AreEqual(4, actionList.Count);
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_1));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_2));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_3));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_4));


            actionList = target.GetRoleAccessAbleActionList("R01", "M05");
            // 4个 动作. 职位管理 有  增改删 (查)  4个 动作.
            Assert.AreEqual(4, actionList.Count);
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_5));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_6));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_7));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_8));


            actionList = target.GetRoleAccessAbleActionList("R01", "M06");
            // 4个 动作. 人员管理 有  增改删 (查)  4个 动作.
            Assert.AreEqual(4, actionList.Count);
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_9));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_10));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_11));
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_12));


            actionList = target.GetRoleAccessAbleActionList("R01", "M07");
            // 权限管理模块  没有定义动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R01", "M08");
            // 权限功能管理  没有定义动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R01", "M09");
            // 接口角色管理  没有定义动作.
            Assert.AreEqual(0, actionList.Count);





            actionList = target.GetRoleAccessAbleActionList("R02", "M01");
            // 0个 动作.  人事管理 是 顶级模块无 动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R02", "M02");
            // 0个 动作.  人事组织管理  是 1级模块无 动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R02", "M03");
            // 0个 动作.  权限管理 是 1级模块无 动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R02", "M04");
            // 1个 动作. 部门管理 有   (查)  1个 动作.
            Assert.AreEqual(1, actionList.Count);
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_1));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_2));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_3));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_4));


            actionList = target.GetRoleAccessAbleActionList("R02", "M05");
            // 1个 动作. 职位管理 有   (查)  1个 动作.
            Assert.AreEqual(1, actionList.Count);
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_5));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_6));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_7));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_8));


            actionList = target.GetRoleAccessAbleActionList("R02", "M06");
            // 1个 动作. 人员管理 有   (查)  1个 动作.
            Assert.AreEqual(1, actionList.Count);
            Assert.AreEqual(1, actionList.Count(p => p.ACTION_NAME == TestData.Action_9));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_10));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_11));
            Assert.AreEqual(0, actionList.Count(p => p.ACTION_NAME == TestData.Action_12));


            actionList = target.GetRoleAccessAbleActionList("R02", "M07");
            // 权限管理模块  没有定义动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R02", "M08");
            // 权限功能管理  没有定义动作.
            Assert.AreEqual(0, actionList.Count);

            actionList = target.GetRoleAccessAbleActionList("R02", "M09");
            // 接口角色管理  没有定义动作.
            Assert.AreEqual(0, actionList.Count);



        }