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(); }