Add Policy DSL Validator, Schema Exporter, and Simulation Smoke tools
- Implemented PolicyDslValidator with command-line options for strict mode and JSON output. - Created PolicySchemaExporter to generate JSON schemas for policy-related models. - Developed PolicySimulationSmoke tool to validate policy simulations against expected outcomes. - Added project files and necessary dependencies for each tool. - Ensured proper error handling and usage instructions across tools.
This commit is contained in:
		@@ -42,10 +42,38 @@ public class StandardClientProvisioningStoreTests
 | 
			
		||||
        Assert.Equal("bootstrap-client", descriptor!.ClientId);
 | 
			
		||||
        Assert.True(descriptor.Confidential);
 | 
			
		||||
        Assert.Contains("client_credentials", descriptor.AllowedGrantTypes);
 | 
			
		||||
        Assert.Contains("scopeA", descriptor.AllowedScopes);
 | 
			
		||||
        Assert.Contains("scopea", descriptor.AllowedScopes);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Fact]
 | 
			
		||||
    [Fact]
 | 
			
		||||
    public async Task CreateOrUpdateAsync_NormalisesTenant()
 | 
			
		||||
    {
 | 
			
		||||
        var store = new TrackingClientStore();
 | 
			
		||||
        var revocations = new TrackingRevocationStore();
 | 
			
		||||
        var provisioning = new StandardClientProvisioningStore("standard", store, revocations, TimeProvider.System);
 | 
			
		||||
 | 
			
		||||
        var registration = new AuthorityClientRegistration(
 | 
			
		||||
            clientId: "tenant-client",
 | 
			
		||||
            confidential: false,
 | 
			
		||||
            displayName: "Tenant Client",
 | 
			
		||||
            clientSecret: null,
 | 
			
		||||
            allowedGrantTypes: new[] { "client_credentials" },
 | 
			
		||||
            allowedScopes: new[] { "scopeA" },
 | 
			
		||||
            tenant: " Tenant-Alpha " );
 | 
			
		||||
 | 
			
		||||
        await provisioning.CreateOrUpdateAsync(registration, CancellationToken.None);
 | 
			
		||||
 | 
			
		||||
        Assert.True(store.Documents.TryGetValue("tenant-client", out var document));
 | 
			
		||||
        Assert.NotNull(document);
 | 
			
		||||
        Assert.Equal("tenant-alpha", document!.Properties[AuthorityClientMetadataKeys.Tenant]);
 | 
			
		||||
 | 
			
		||||
        var descriptor = await provisioning.FindByClientIdAsync("tenant-client", CancellationToken.None);
 | 
			
		||||
        Assert.NotNull(descriptor);
 | 
			
		||||
        Assert.Equal("tenant-alpha", descriptor!.Tenant);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public async Task CreateOrUpdateAsync_StoresAudiences()
 | 
			
		||||
    {
 | 
			
		||||
        var store = new TrackingClientStore();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user