1
+ using System ;
2
+ using System . IO ;
3
+ using Microsoft . OpenApi . Interfaces ;
4
+ using Microsoft . OpenApi . Writers ;
5
+ using Xunit ;
6
+
7
+ namespace Microsoft . OpenApi . OData . OpenApiExtensions . Tests ;
8
+
9
+ public class OpenApiDeprecationExtensionTests
10
+ {
11
+ [ Fact ]
12
+ public void ExtensionNameMatchesExpected ( )
13
+ {
14
+ // Arrange
15
+ OpenApiDeprecationExtension extension = new ( ) ;
16
+
17
+ // Act
18
+ string name = extension . Name ;
19
+ string expectedName = "x-ms-deprecation" ;
20
+ Assert . Equal ( expectedName , name ) ;
21
+
22
+ // Assert
23
+ Assert . Equal ( expectedName , name ) ;
24
+ }
25
+ [ Fact ]
26
+ public void WritesNothingWhenNoValues ( )
27
+ {
28
+ // Arrange
29
+ OpenApiDeprecationExtension extension = new ( ) ;
30
+ using TextWriter sWriter = new StringWriter ( ) ;
31
+ OpenApiJsonWriter writer = new ( sWriter ) ;
32
+
33
+ // Act
34
+ extension . Write ( writer , OpenApiSpecVersion . OpenApi3_0 ) ;
35
+ string result = sWriter . ToString ( ) ;
36
+
37
+ // Assert
38
+ Assert . Null ( extension . Date ) ;
39
+ Assert . Null ( extension . RemovalDate ) ;
40
+ Assert . Null ( extension . Version ) ;
41
+ Assert . Null ( extension . Description ) ;
42
+ Assert . Empty ( result ) ;
43
+ }
44
+ [ Fact ]
45
+ public void WritesAllValues ( )
46
+ {
47
+ // Arrange
48
+ OpenApiDeprecationExtension extension = new ( ) {
49
+ Date = new DateTime ( 2020 , 1 , 1 ) ,
50
+ RemovalDate = new DateTime ( 2021 , 1 , 1 ) ,
51
+ Version = "1.0.0" ,
52
+ Description = "This is a test"
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 . NotNull ( extension . Date ) ;
63
+ Assert . NotNull ( extension . RemovalDate ) ;
64
+ Assert . NotNull ( extension . Version ) ;
65
+ Assert . NotNull ( extension . Description ) ;
66
+ Assert . Contains ( "2021-01-01T00:00:00.000000" , result ) ;
67
+ Assert . Contains ( "removalDate" , result ) ;
68
+ Assert . Contains ( "version" , result ) ;
69
+ Assert . Contains ( "1.0.0" , result ) ;
70
+ Assert . Contains ( "description" , result ) ;
71
+ Assert . Contains ( "This is a test" , result ) ;
72
+ }
73
+ }
0 commit comments