Skip to content

Commit 89881fd

Browse files
committed
fix: makes target field read only
Signed-off-by: Vincent Biret <[email protected]>
1 parent fda05d4 commit 89881fd

File tree

11 files changed

+45
-44
lines changed

11 files changed

+45
-44
lines changed

src/Microsoft.OpenApi/Models/References/BaseOpenApiReferenceHolder.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ public abstract class BaseOpenApiReferenceHolder<T, V> : IOpenApiReferenceHolder
1313
/// <summary>
1414
/// The resolved target object.
1515
/// </summary>
16-
protected T _target;
16+
protected readonly T _target;
1717
/// <inheritdoc/>
1818
public virtual T Target
1919
{
2020
get
2121
{
22-
_target ??= Reference.HostDocument?.ResolveReferenceTo<T>(Reference);
23-
return _target;
22+
if (_target is not null) return _target;
23+
return Reference.HostDocument?.ResolveReferenceTo<T>(Reference);
2424
}
2525
}
2626
/// <summary>
@@ -36,6 +36,7 @@ protected BaseOpenApiReferenceHolder(BaseOpenApiReferenceHolder<T, V> source)
3636
}
3737
private protected BaseOpenApiReferenceHolder(T target, string referenceId, ReferenceType referenceType)
3838
{
39+
Utils.CheckArgumentNull(target);
3940
_target = target;
4041

4142
Reference = new OpenApiReference()

src/Microsoft.OpenApi/Models/References/OpenApiTagReference.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public override OpenApiTag Target
2121
{
2222
get
2323
{
24-
_target ??= Reference.HostDocument?.Tags.FirstOrDefault(t => StringComparer.Ordinal.Equals(t.Name, Reference.Id));
25-
return _target;
24+
if (_target is not null) return _target;
25+
return Reference.HostDocument?.Tags.FirstOrDefault(t => StringComparer.Ordinal.Equals(t.Name, Reference.Id));
2626
}
2727
}
2828

test/Microsoft.OpenApi.Tests/Models/OpenApiCallbackTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace Microsoft.OpenApi.Tests.Models
1616
[Collection("DefaultSettings")]
1717
public class OpenApiCallbackTests
1818
{
19-
public static OpenApiCallback AdvancedCallback = new()
19+
private static OpenApiCallback AdvancedCallback => new()
2020
{
2121
PathItems =
2222
{
@@ -54,9 +54,9 @@ public class OpenApiCallbackTests
5454
}
5555
};
5656

57-
public static OpenApiCallbackReference CallbackProxy = new(ReferencedCallback, "simpleHook");
57+
private static OpenApiCallbackReference CallbackProxy => new(ReferencedCallback, "simpleHook");
5858

59-
public static OpenApiCallback ReferencedCallback = new()
59+
private static OpenApiCallback ReferencedCallback => new()
6060
{
6161
PathItems =
6262
{

test/Microsoft.OpenApi.Tests/Models/OpenApiExampleTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace Microsoft.OpenApi.Tests.Models
1919
[Collection("DefaultSettings")]
2020
public class OpenApiExampleTests
2121
{
22-
public static OpenApiExample AdvancedExample = new()
22+
private static OpenApiExample AdvancedExample => new()
2323
{
2424
Value = new JsonObject
2525
{
@@ -57,8 +57,8 @@ public class OpenApiExampleTests
5757
}
5858
};
5959

60-
public static OpenApiExampleReference OpenApiExampleReference = new(ReferencedExample, "example1");
61-
public static OpenApiExample ReferencedExample = new()
60+
private static OpenApiExampleReference OpenApiExampleReference => new(ReferencedExample, "example1");
61+
private static OpenApiExample ReferencedExample => new()
6262
{
6363
Value = new JsonObject
6464
{

test/Microsoft.OpenApi.Tests/Models/OpenApiHeaderTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace Microsoft.OpenApi.Tests.Models
1515
[Collection("DefaultSettings")]
1616
public class OpenApiHeaderTests
1717
{
18-
public static OpenApiHeader AdvancedHeader = new()
18+
private static OpenApiHeader AdvancedHeader => new()
1919
{
2020
Description = "sampleHeader",
2121
Schema = new OpenApiSchema()
@@ -25,9 +25,9 @@ public class OpenApiHeaderTests
2525
}
2626
};
2727

28-
public static OpenApiHeaderReference OpenApiHeaderReference = new(ReferencedHeader, "example1");
28+
private static OpenApiHeaderReference OpenApiHeaderReference => new(ReferencedHeader, "example1");
2929

30-
public static OpenApiHeader ReferencedHeader = new()
30+
private static OpenApiHeader ReferencedHeader => new()
3131
{
3232
Description = "sampleHeader",
3333
Schema = new OpenApiSchema()

test/Microsoft.OpenApi.Tests/Models/OpenApiLinkTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace Microsoft.OpenApi.Tests.Models
1818
[Collection("DefaultSettings")]
1919
public class OpenApiLinkTests
2020
{
21-
public static readonly OpenApiLink AdvancedLink = new()
21+
private static OpenApiLink AdvancedLink => new()
2222
{
2323
OperationId = "operationId1",
2424
Parameters =
@@ -42,8 +42,8 @@ public class OpenApiLinkTests
4242
}
4343
};
4444

45-
public static readonly OpenApiLinkReference LinkReference = new(ReferencedLink, "example1");
46-
public static readonly OpenApiLink ReferencedLink = new()
45+
private static OpenApiLinkReference LinkReference => new(ReferencedLink, "example1");
46+
private static OpenApiLink ReferencedLink => new()
4747
{
4848
OperationId = "operationId1",
4949
Parameters =

test/Microsoft.OpenApi.Tests/Models/OpenApiParameterTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,20 @@ namespace Microsoft.OpenApi.Tests.Models
1919
[Collection("DefaultSettings")]
2020
public class OpenApiParameterTests
2121
{
22-
public static OpenApiParameter BasicParameter = new()
22+
private static OpenApiParameter BasicParameter => new()
2323
{
2424
Name = "name1",
2525
In = ParameterLocation.Path
2626
};
2727

28-
public static OpenApiParameterReference OpenApiParameterReference = new(ReferencedParameter, "example1");
29-
public static OpenApiParameter ReferencedParameter = new()
28+
private static OpenApiParameterReference OpenApiParameterReference => new(ReferencedParameter, "example1");
29+
private static OpenApiParameter ReferencedParameter => new()
3030
{
3131
Name = "name1",
3232
In = ParameterLocation.Path
3333
};
3434

35-
public static OpenApiParameter AdvancedPathParameterWithSchema = new()
35+
private static OpenApiParameter AdvancedPathParameterWithSchema => new()
3636
{
3737
Name = "name1",
3838
In = ParameterLocation.Path,
@@ -61,7 +61,7 @@ public class OpenApiParameterTests
6161
}
6262
};
6363

64-
public static OpenApiParameter ParameterWithFormStyleAndExplodeFalse = new()
64+
private static OpenApiParameter ParameterWithFormStyleAndExplodeFalse => new()
6565
{
6666
Name = "name1",
6767
In = ParameterLocation.Query,
@@ -82,7 +82,7 @@ public class OpenApiParameterTests
8282
}
8383
};
8484

85-
public static OpenApiParameter ParameterWithFormStyleAndExplodeTrue = new()
85+
private static OpenApiParameter ParameterWithFormStyleAndExplodeTrue => new()
8686
{
8787
Name = "name1",
8888
In = ParameterLocation.Query,
@@ -103,7 +103,7 @@ public class OpenApiParameterTests
103103
}
104104
};
105105

106-
public static OpenApiParameter QueryParameterWithMissingStyle = new OpenApiParameter
106+
private static OpenApiParameter QueryParameterWithMissingStyle => new OpenApiParameter
107107
{
108108
Name = "id",
109109
In = ParameterLocation.Query,
@@ -117,7 +117,7 @@ public class OpenApiParameterTests
117117
}
118118
};
119119

120-
public static OpenApiParameter AdvancedHeaderParameterWithSchemaTypeObject = new()
120+
private static OpenApiParameter AdvancedHeaderParameterWithSchemaTypeObject => new()
121121
{
122122
Name = "name1",
123123
In = ParameterLocation.Header,

test/Microsoft.OpenApi.Tests/Models/OpenApiRequestBodyTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace Microsoft.OpenApi.Tests.Models
1515
[Collection("DefaultSettings")]
1616
public class OpenApiRequestBodyTests
1717
{
18-
public static OpenApiRequestBody AdvancedRequestBody = new()
18+
private static OpenApiRequestBody AdvancedRequestBody => new()
1919
{
2020
Description = "description",
2121
Required = true,
@@ -31,8 +31,8 @@ public class OpenApiRequestBodyTests
3131
}
3232
};
3333

34-
public static OpenApiRequestBodyReference OpenApiRequestBodyReference = new(ReferencedRequestBody, "example1");
35-
public static OpenApiRequestBody ReferencedRequestBody = new()
34+
private static OpenApiRequestBodyReference OpenApiRequestBodyReference => new(ReferencedRequestBody, "example1");
35+
private static OpenApiRequestBody ReferencedRequestBody => new()
3636
{
3737
Description = "description",
3838
Required = true,

test/Microsoft.OpenApi.Tests/Models/OpenApiResponseTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ namespace Microsoft.OpenApi.Tests.Models
2020
[Collection("DefaultSettings")]
2121
public class OpenApiResponseTests
2222
{
23-
public static OpenApiResponse BasicResponse = new OpenApiResponse();
23+
private static OpenApiResponse BasicResponse => new OpenApiResponse();
2424

25-
public static OpenApiResponse AdvancedV2Response = new OpenApiResponse
25+
private static OpenApiResponse AdvancedV2Response => new OpenApiResponse
2626
{
2727
Description = "A complex object array response",
2828
Content =
@@ -61,7 +61,7 @@ public class OpenApiResponseTests
6161
},
6262
}
6363
};
64-
public static OpenApiResponse AdvancedV3Response = new OpenApiResponse
64+
private static OpenApiResponse AdvancedV3Response => new OpenApiResponse
6565
{
6666
Description = "A complex object array response",
6767
Content =
@@ -101,8 +101,8 @@ public class OpenApiResponseTests
101101
}
102102
};
103103

104-
public static OpenApiResponseReference V2OpenApiResponseReference = new OpenApiResponseReference(ReferencedV2Response, "example1");
105-
public static OpenApiResponse ReferencedV2Response = new OpenApiResponse
104+
private static OpenApiResponseReference V2OpenApiResponseReference => new OpenApiResponseReference(ReferencedV2Response, "example1");
105+
private static OpenApiResponse ReferencedV2Response => new OpenApiResponse
106106
{
107107
Description = "A complex object array response",
108108
Content =
@@ -136,9 +136,9 @@ public class OpenApiResponseTests
136136
},
137137
}
138138
};
139-
public static OpenApiResponseReference V3OpenApiResponseReference = new OpenApiResponseReference(ReferencedV3Response, "example1");
139+
private static OpenApiResponseReference V3OpenApiResponseReference => new OpenApiResponseReference(ReferencedV3Response, "example1");
140140

141-
public static OpenApiResponse ReferencedV3Response = new OpenApiResponse
141+
private static OpenApiResponse ReferencedV3Response => new OpenApiResponse
142142
{
143143
Description = "A complex object array response",
144144
Content =

test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,30 @@ namespace Microsoft.OpenApi.Tests.Models
1717
[Collection("DefaultSettings")]
1818
public class OpenApiSecuritySchemeTests
1919
{
20-
public static OpenApiSecurityScheme ApiKeySecurityScheme = new()
20+
private static OpenApiSecurityScheme ApiKeySecurityScheme => new()
2121
{
2222
Description = "description1",
2323
Name = "parameterName",
2424
Type = SecuritySchemeType.ApiKey,
2525
In = ParameterLocation.Query,
2626
};
2727

28-
public static OpenApiSecurityScheme HttpBasicSecurityScheme = new()
28+
private static OpenApiSecurityScheme HttpBasicSecurityScheme => new()
2929
{
3030
Description = "description1",
3131
Type = SecuritySchemeType.Http,
3232
Scheme = OpenApiConstants.Basic
3333
};
3434

35-
public static OpenApiSecurityScheme HttpBearerSecurityScheme = new()
35+
private static OpenApiSecurityScheme HttpBearerSecurityScheme => new()
3636
{
3737
Description = "description1",
3838
Type = SecuritySchemeType.Http,
3939
Scheme = OpenApiConstants.Bearer,
4040
BearerFormat = OpenApiConstants.Jwt
4141
};
4242

43-
public static OpenApiSecurityScheme OAuth2SingleFlowSecurityScheme = new()
43+
private static OpenApiSecurityScheme OAuth2SingleFlowSecurityScheme => new()
4444
{
4545
Description = "description1",
4646
Type = SecuritySchemeType.OAuth2,
@@ -58,7 +58,7 @@ public class OpenApiSecuritySchemeTests
5858
}
5959
};
6060

61-
public static OpenApiSecurityScheme OAuth2MultipleFlowSecurityScheme = new()
61+
private static OpenApiSecurityScheme OAuth2MultipleFlowSecurityScheme => new()
6262
{
6363
Description = "description1",
6464
Type = SecuritySchemeType.OAuth2,
@@ -96,16 +96,16 @@ public class OpenApiSecuritySchemeTests
9696
}
9797
};
9898

99-
public static OpenApiSecurityScheme OpenIdConnectSecurityScheme = new()
99+
private static OpenApiSecurityScheme OpenIdConnectSecurityScheme => new()
100100
{
101101
Description = "description1",
102102
Type = SecuritySchemeType.OpenIdConnect,
103103
Scheme = OpenApiConstants.Bearer,
104104
OpenIdConnectUrl = new("https://example.com/openIdConnect")
105105
};
106106

107-
public static OpenApiSecuritySchemeReference OpenApiSecuritySchemeReference = new(ReferencedSecurityScheme, "sampleSecurityScheme");
108-
public static OpenApiSecurityScheme ReferencedSecurityScheme = new()
107+
private static OpenApiSecuritySchemeReference OpenApiSecuritySchemeReference => new(ReferencedSecurityScheme, "sampleSecurityScheme");
108+
private static OpenApiSecurityScheme ReferencedSecurityScheme => new()
109109
{
110110
Description = "description1",
111111
Type = SecuritySchemeType.OpenIdConnect,

0 commit comments

Comments
 (0)