1
+ // ------------------------------------------------------------
2
+ // Copyright (c) Microsoft Corporation. All rights reserved.
3
+ // Licensed under the MIT License (MIT). See LICENSE in the repo root for license information.
4
+ // ------------------------------------------------------------
5
+
6
+ using System . IO ;
7
+ using Microsoft . OpenApi . Writers ;
8
+ using Xunit ;
9
+
10
+ namespace Microsoft . OpenApi . OData . OpenApiExtensions . Tests ;
11
+
12
+ public class OpenApiEnumFlagsExtensionTests
13
+ {
14
+ [ Fact ]
15
+ public void ExtensionNameMatchesExpected ( )
16
+ {
17
+ // Arrange
18
+ OpenApiEnumFlagsExtension extension = new ( ) ;
19
+
20
+ // Act
21
+ string name = extension . Name ;
22
+ string expectedName = "x-ms-enum-flags" ;
23
+
24
+ // Assert
25
+ Assert . Equal ( expectedName , name ) ;
26
+ }
27
+
28
+ [ Fact ]
29
+ public void WritesDefaultValues ( )
30
+ {
31
+ // Arrange
32
+ OpenApiEnumFlagsExtension extension = new ( ) ;
33
+ using TextWriter sWriter = new StringWriter ( ) ;
34
+ OpenApiJsonWriter writer = new ( sWriter ) ;
35
+
36
+ // Act
37
+ extension . Write ( writer , OpenApiSpecVersion . OpenApi3_0 ) ;
38
+ string result = sWriter . ToString ( ) ;
39
+
40
+ // Assert
41
+ Assert . False ( extension . IsFlags ) ;
42
+ Assert . Null ( extension . Style ) ;
43
+ Assert . Contains ( "\" isFlags\" : false" , result ) ;
44
+ Assert . DoesNotContain ( "\" style\" " , result ) ;
45
+ }
46
+
47
+ [ Fact ]
48
+ public void WritesAllDefaultValues ( )
49
+ {
50
+ // Arrange
51
+ OpenApiEnumFlagsExtension extension = new ( ) {
52
+ IsFlags = true
53
+ } ;
54
+ using TextWriter sWriter = new StringWriter ( ) ;
55
+ OpenApiJsonWriter writer = new ( sWriter ) ;
56
+
57
+ // Act
58
+ extension . Write ( writer , OpenApiSpecVersion . OpenApi3_0 ) ;
59
+ string result = sWriter . ToString ( ) ;
60
+
61
+ // Assert
62
+ Assert . True ( extension . IsFlags ) ;
63
+ Assert . Null ( extension . Style ) ;
64
+ Assert . Contains ( "\" isFlags\" : true" , result ) ;
65
+ Assert . DoesNotContain ( "\" style\" :" , result ) ;
66
+ }
67
+
68
+ [ Fact ]
69
+ public void WritesAllValues ( )
70
+ {
71
+ // Arrange
72
+ OpenApiEnumFlagsExtension extension = new ( ) {
73
+ IsFlags = true ,
74
+ Style = "simple"
75
+ } ;
76
+ using TextWriter sWriter = new StringWriter ( ) ;
77
+ OpenApiJsonWriter writer = new ( sWriter ) ;
78
+
79
+ // Act
80
+ extension . Write ( writer , OpenApiSpecVersion . OpenApi3_0 ) ;
81
+ string result = sWriter . ToString ( ) ;
82
+
83
+ // Assert
84
+ Assert . True ( extension . IsFlags ) ;
85
+ Assert . NotNull ( extension . Style ) ;
86
+ Assert . Contains ( "\" isFlags\" : true" , result ) ;
87
+ Assert . Contains ( "\" style\" : \" simple\" " , result ) ;
88
+ }
89
+ }
0 commit comments