Skip to content

Commit d72d4b5

Browse files
committed
Share validation type info
1 parent b96f620 commit d72d4b5

File tree

11 files changed

+1418
-2387
lines changed

11 files changed

+1418
-2387
lines changed

src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ public static IHost CreateHost(
127127
services.AddSingleton<IMetricsOperationFactory, MetricsOperationFactory>();
128128
services.AddSingleton<ITraceOperationFactory, TraceOperationFactory>();
129129
services.AddSingleton<IGCDumpOperationFactory, GCDumpOperationFactory>();
130+
ValidatableTypes.AddValidation(services);
130131
TestValidatableTypes.AddValidation(services);
131132
servicesCallback?.Invoke(services);
132133
})

src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestValidatableType.cs

Lines changed: 1 addition & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@
44
using Microsoft.AspNetCore.Http.Validation;
55
using Microsoft.AspNetCore.Http.Validation.Generated;
66
using Microsoft.Extensions.DependencyInjection;
7-
using Microsoft.Diagnostics.Tools.Monitor;
8-
using Microsoft.Diagnostics.Monitoring.WebApi.Models;
9-
using Microsoft.Diagnostics.Tools.Monitor.CollectionRules.Options;
10-
using Microsoft.Diagnostics.Tools.Monitor.CollectionRules.Options.Actions;
11-
using Microsoft.Diagnostics.Tools.Monitor.CollectionRules.Options.Triggers.EventCounterShortcuts;
12-
using Microsoft.Diagnostics.Monitoring.WebApi;
13-
using Microsoft.Diagnostics.Tools.Monitor.Egress.FileSystem;
14-
using Microsoft.Diagnostics.Tools.Monitor.CollectionRules.Options.Triggers;
157

168
namespace Microsoft.Diagnostics.Monitoring.TestCommon
179
{
@@ -22,56 +14,11 @@ namespace Microsoft.Diagnostics.Monitoring.TestCommon
2214
[ValidatableType]
2315
internal sealed class TestValidatableTypes
2416
{
25-
public required CollectionRuleOptions CollectionRuleOptions { get; init; }
26-
27-
public required ExecuteOptions ExecuteOptions { get; init; }
28-
29-
public required SetEnvironmentVariableOptions SetEnvironmentVariableOptions { get; init; }
30-
31-
public required GetEnvironmentVariableOptions GetEnvironmentVariableOptions { get; init; }
32-
33-
public required CollectTraceOptions CollectTraceOptions { get; init; }
34-
35-
public required GlobalCounterOptions GlobalCounterOptions { get; init; }
36-
37-
public required CollectGCDumpOptions CollectGCDumpOptions { get; init; }
38-
39-
public required CollectLiveMetricsOptions CollectLiveMetricsOptions { get; init; }
40-
41-
public required CollectStacksOptions CollectStacksOptions { get; init; }
42-
43-
public required CollectLogsOptions CollectLogsOptions { get; init; }
44-
45-
public required RootOptions RootOptions { get; init; }
46-
47-
public required FileSystemEgressProviderOptions FileSystemEgressProviderOptions { get; init; }
48-
49-
public required CollectDumpOptions CollectDumpOptions { get; init; }
50-
51-
public required LoadProfilerOptions LoadProfilerOptions { get; init; }
52-
53-
public required CollectExceptionsOptions CollectExceptionsOptions { get; init; }
54-
55-
// Triggers...
56-
public required AspNetRequestCountOptions AspNetRequestCountOptions { get; init; }
57-
public required AspNetRequestDurationOptions AspNetRequestDurationOptions { get; init; }
58-
public required AspNetResponseStatusOptions AspNetResponseStatusOptions { get; init; }
59-
public required EventCounterOptions EventCounterOptions { get; init; }
60-
public required CPUUsageOptions CPUUsageOptions { get; init; }
61-
public required GCHeapSizeOptions GCHeapSizeOptions { get; init; }
62-
public required ThreadpoolQueueLengthOptions ThreadpoolQueueLengthOptions { get; init; }
63-
public required EventMeterOptions EventMeterOptions { get; init; }
64-
65-
// Nested member
66-
public required EventPipeProvider EventPipeProvider { get; init; }
67-
68-
// TODO: only one resolver per project? Generate this for tests, for now. Maybe want to separate this one out
69-
// by test later.
7017
public required PassThroughOptions PassThroughOptions { get; init; }
7118

7219
public static void AddValidation(IServiceCollection services)
7320
{
74-
GeneratedServiceCollectionExtensions.AddValidation(services);
21+
TestGeneratedServiceCollectionExtensions.AddValidation(services);
7522
}
7623
}
7724
}

src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/ValidatableInfoResolver.cs

Lines changed: 18 additions & 1417 deletions
Large diffs are not rendered by default.

src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestsSample/Microsoft.Diagnostics.Monitoring.Tool.UnitTestsSample.csproj

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
<TargetFramework>net10.0</TargetFramework>
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
7-
<InterceptorsNamespaces>$(InterceptorsNamespaces);Microsoft.AspNetCore.Http.Validation.Generated</InterceptorsNamespaces>
8-
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
97
</PropertyGroup>
108

119
<ItemGroup>
@@ -31,10 +29,4 @@
3129
LatestRuntimeFrameworkVersion="$(AspNetCoreAppVersion)" />
3230
</ItemGroup>
3331

34-
<Target Name="RemoveAnalyzer" BeforeTargets="CoreCompile">
35-
<ItemGroup>
36-
<Analyzer Remove="@(Analyzer)" Condition="'%(Analyzer.FileName)' == 'Microsoft.AspNetCore.Http.ValidationsGenerator'" />
37-
</ItemGroup>
38-
</Target>
39-
4032
</Project>
Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,14 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

4-
using Microsoft.Diagnostics.Tools.Monitor;
5-
using Microsoft.AspNetCore.Http.Validation;
6-
using Microsoft.Diagnostics.Tools.Monitor.CollectionRules.Options.Actions;
7-
using Microsoft.Diagnostics.Tools.Monitor.Extensibility;
8-
using Microsoft.Diagnostics.Tools.Monitor.Egress.FileSystem;
4+
using Microsoft.AspNetCore.Http.Validation.Generated;
95

106
var builder = WebApplication.CreateBuilder(new WebApplicationOptions
117
{
128
ContentRootPath = AppContext.BaseDirectory
139
});
1410

15-
Microsoft.AspNetCore.Http.Validation.Generated.GeneratedServiceCollectionExtensions.AddValidation(builder.Services);
11+
GeneratedServiceCollectionExtensions.AddValidation(builder.Services);
1612
builder.Build();
1713

1814
public partial class Program {}
19-
20-
[ValidatableType]
21-
sealed class TestValidatableType
22-
{
23-
public required ExtensionManifest ExtensionManifest { get; init; }
24-
25-
// public RootOptions RootOptions { get; init; } // TODO: this hits bad generated code.
26-
// Take a more granular approach for now.
27-
public required FileSystemEgressProviderOptions FileSystemEgressProviderOptions { get; init; }
28-
29-
public required ExecuteOptions ExecuteOptions { get; init; }
30-
31-
public required AzureAdOptions AzureAdOptions { get; init; }
32-
}

0 commit comments

Comments
 (0)