public async Task CRUD_ReturnsExpResult(string method, string requesteeId, bool excluded, bool expGrantResult)
        {
            var ecr = new EntityConfigRecord
            {
                EntityKey        = nameof(TestModel),
                Type             = typeof(TestModel),
                PermissionRecord = new PermissionRecord("create", "read", "update", "delete"),
                EndpointSettings = new EndpointSettings
                {
                    PublicGet = true,
                },
            };
            var userPermissions = new UserPermissions
            {
                EntityPermissions = new[]
                {
                    new EntityPermission
                    {
                        Excluded       = excluded,
                        EntityId       = "some-entity-id",
                        EntityKey      = nameof(TestModel),
                        PermissionKeys = new[] { "create", "read", "update", "delete", },
                    },
                },
            };

            var pm = new Mock <IPermissionManager>();

            pm.Setup(pm => pm.GetUserPermissions(It.IsAny <string>())).ReturnsAsync(userPermissions);

            var logger = new Mock <ILogger <AnyServicePermissionMiddleware> >();
            var mw     = new TestAnyServicePermissionware(null, logger.Object);
            var wc     = new WorkContext
            {
                CurrentUserId             = "userId",
                CurrentEntityConfigRecord = ecr,
                RequestInfo = new RequestInfo
                {
                    Method      = method,
                    RequesteeId = requesteeId,
                },
            };
            var res = await mw.IsGrantedForTest(wc, pm.Object);

            res.ShouldBe(expGrantResult);
        }
        public async Task CRUD_ReturnsTrue_OnPost_Or_OnPublicGet(string method)
        {
            var logger = new Mock <ILogger <AnyServicePermissionMiddleware> >();
            var mw     = new TestAnyServicePermissionware(null, logger.Object);
            var wc     = new WorkContext
            {
                CurrentEntityConfigRecord = new EntityConfigRecord
                {
                    EndpointSettings = new EndpointSettings
                    {
                        PublicGet = true,
                    }
                },
                RequestInfo = new RequestInfo
                {
                    Method = method,
                    Path   = "/",
                },
            };
            var res = await mw.IsGrantedForTest(wc, null);

            res.ShouldBeTrue();
        }