@@ -11,6 +11,26 @@ namespace Microsoft.OpenApi.Tests.Services
11
11
{
12
12
public class OpenApiUrlTreeNodeTests
13
13
{
14
+ private OpenApiDocument OpenApiDocumentSample_1 => new OpenApiDocument ( )
15
+ {
16
+ Paths = new OpenApiPaths ( )
17
+ {
18
+ [ "/" ] = new OpenApiPathItem ( ) ,
19
+ [ "/houses" ] = new OpenApiPathItem ( ) ,
20
+ [ "/cars" ] = new OpenApiPathItem ( )
21
+ }
22
+ } ;
23
+
24
+ private OpenApiDocument OpenApiDocumentSample_2 => new OpenApiDocument ( )
25
+ {
26
+ Paths = new OpenApiPaths ( )
27
+ {
28
+ [ "/" ] = new OpenApiPathItem ( ) ,
29
+ [ "/hotels" ] = new OpenApiPathItem ( ) ,
30
+ [ "/offices" ] = new OpenApiPathItem ( )
31
+ }
32
+ } ;
33
+
14
34
[ Fact ]
15
35
public void CreateUrlSpaceWithoutOpenApiDocument ( )
16
36
{
@@ -64,15 +84,7 @@ public void CreatePathWithoutRootWorks()
64
84
[ Fact ]
65
85
public void CreateMultiplePathsWorks ( )
66
86
{
67
- var doc = new OpenApiDocument ( )
68
- {
69
- Paths = new OpenApiPaths ( )
70
- {
71
- [ "/" ] = new OpenApiPathItem ( ) ,
72
- [ "/houses" ] = new OpenApiPathItem ( ) ,
73
- [ "/cars" ] = new OpenApiPathItem ( )
74
- }
75
- } ;
87
+ var doc = OpenApiDocumentSample_1 ;
76
88
77
89
string label = "assets" ;
78
90
var rootNode = OpenApiUrlTreeNode . Create ( doc , label ) ;
@@ -89,25 +101,9 @@ public void CreateMultiplePathsWorks()
89
101
[ Fact ]
90
102
public void AttachDocumentWorks ( )
91
103
{
92
- var doc1 = new OpenApiDocument ( )
93
- {
94
- Paths = new OpenApiPaths ( )
95
- {
96
- [ "/" ] = new OpenApiPathItem ( ) ,
97
- [ "/houses" ] = new OpenApiPathItem ( ) ,
98
- [ "/cars" ] = new OpenApiPathItem ( )
99
- }
100
- } ;
104
+ var doc1 = OpenApiDocumentSample_1 ;
101
105
102
- var doc2 = new OpenApiDocument ( )
103
- {
104
- Paths = new OpenApiPaths ( )
105
- {
106
- [ "/" ] = new OpenApiPathItem ( ) ,
107
- [ "/hotels" ] = new OpenApiPathItem ( ) ,
108
- [ "/offices" ] = new OpenApiPathItem ( )
109
- }
110
- } ;
106
+ var doc2 = OpenApiDocumentSample_2 ;
111
107
112
108
var label1 = "personal" ;
113
109
var label2 = "business" ;
@@ -123,15 +119,7 @@ public void AttachDocumentWorks()
123
119
[ Fact ]
124
120
public void AttachPathWorks ( )
125
121
{
126
- var doc = new OpenApiDocument ( )
127
- {
128
- Paths = new OpenApiPaths ( )
129
- {
130
- [ "/" ] = new OpenApiPathItem ( ) ,
131
- [ "/houses" ] = new OpenApiPathItem ( ) ,
132
- [ "/cars" ] = new OpenApiPathItem ( )
133
- }
134
- } ;
122
+ var doc = OpenApiDocumentSample_1 ;
135
123
136
124
var label1 = "personal" ;
137
125
var rootNode = OpenApiUrlTreeNode . Create ( doc , label1 ) ;
@@ -335,96 +323,10 @@ public void SegmentIsParameterWorks()
335
323
Assert . Equal ( "{apartment-id}" , rootNode . Children [ "houses" ] . Children [ "apartments" ] . Children [ "{apartment-id}" ] . Segment ) ;
336
324
}
337
325
338
- [ Fact ]
339
- public void ThrowsArgumentExceptionForDuplicateLabels ( )
340
- {
341
- var doc1 = new OpenApiDocument ( )
342
- {
343
- Paths = new OpenApiPaths ( )
344
- {
345
- [ "/" ] = new OpenApiPathItem ( ) ,
346
- [ "/houses" ] = new OpenApiPathItem ( ) ,
347
- [ "/cars" ] = new OpenApiPathItem ( )
348
- }
349
- } ;
350
-
351
- var doc2 = new OpenApiDocument ( )
352
- {
353
- Paths = new OpenApiPaths ( )
354
- {
355
- [ "/" ] = new OpenApiPathItem ( ) ,
356
- [ "/hotels" ] = new OpenApiPathItem ( ) ,
357
- [ "/offices" ] = new OpenApiPathItem ( )
358
- }
359
- } ;
360
-
361
- var label1 = "personal" ;
362
- var rootNode = OpenApiUrlTreeNode . Create ( doc1 , label1 ) ;
363
-
364
- Assert . Throws < ArgumentException > ( ( ) => rootNode . Attach ( doc2 , label1 ) ) ;
365
- }
366
-
367
- [ Fact ]
368
- public void ThrowsArgumentNullExceptionForNullArgumentsInCreateMethod ( )
369
- {
370
- var doc = new OpenApiDocument ( )
371
- {
372
- Paths = new OpenApiPaths ( )
373
- {
374
- [ "/" ] = new OpenApiPathItem ( ) ,
375
- [ "/houses" ] = new OpenApiPathItem ( ) ,
376
- [ "/cars" ] = new OpenApiPathItem ( )
377
- }
378
- } ;
379
-
380
- Assert . Throws < ArgumentNullException > ( ( ) => OpenApiUrlTreeNode . Create ( doc , "" ) ) ;
381
- Assert . Throws < ArgumentNullException > ( ( ) => OpenApiUrlTreeNode . Create ( doc , null ) ) ;
382
- Assert . Throws < ArgumentNullException > ( ( ) => OpenApiUrlTreeNode . Create ( null , "beta" ) ) ;
383
- }
384
-
385
- [ Fact ]
386
- public void ThrowsArgumentNullExceptionForNullArgumentsInAttachMethod ( )
387
- {
388
- var doc1 = new OpenApiDocument ( )
389
- {
390
- Paths = new OpenApiPaths ( )
391
- {
392
- [ "/" ] = new OpenApiPathItem ( ) ,
393
- [ "/houses" ] = new OpenApiPathItem ( ) ,
394
- [ "/cars" ] = new OpenApiPathItem ( )
395
- }
396
- } ;
397
-
398
- var doc2 = new OpenApiDocument ( )
399
- {
400
- Paths = new OpenApiPaths ( )
401
- {
402
- [ "/" ] = new OpenApiPathItem ( ) ,
403
- [ "/hotels" ] = new OpenApiPathItem ( ) ,
404
- [ "/offices" ] = new OpenApiPathItem ( )
405
- }
406
- } ;
407
-
408
- var label1 = "personal" ;
409
- var rootNode = OpenApiUrlTreeNode . Create ( doc1 , label1 ) ;
410
-
411
- Assert . Throws < ArgumentNullException > ( ( ) => rootNode . Attach ( doc2 , "" ) ) ;
412
- Assert . Throws < ArgumentNullException > ( ( ) => rootNode . Attach ( doc2 , null ) ) ;
413
- Assert . Throws < ArgumentNullException > ( ( ) => rootNode . Attach ( null , "beta" ) ) ;
414
- }
415
-
416
326
[ Fact ]
417
327
public void AdditionalDataWorks ( )
418
328
{
419
- var doc = new OpenApiDocument ( )
420
- {
421
- Paths = new OpenApiPaths ( )
422
- {
423
- [ "/" ] = new OpenApiPathItem ( ) ,
424
- [ "/houses" ] = new OpenApiPathItem ( ) ,
425
- [ "/cars" ] = new OpenApiPathItem ( )
426
- }
427
- } ;
329
+ var doc = OpenApiDocumentSample_1 ;
428
330
429
331
var label = "personal" ;
430
332
var rootNode = OpenApiUrlTreeNode . Create ( doc , label ) ;
@@ -476,5 +378,70 @@ public void AdditionalDataWorks()
476
378
Assert . Equal ( "Convertible" , item ) ;
477
379
} ) ;
478
380
}
381
+
382
+ [ Fact ]
383
+ public void ThrowsArgumentExceptionForDuplicateLabels ( )
384
+ {
385
+ var doc1 = OpenApiDocumentSample_1 ;
386
+
387
+ var doc2 = OpenApiDocumentSample_2 ;
388
+
389
+ var label1 = "personal" ;
390
+ var rootNode = OpenApiUrlTreeNode . Create ( doc1 , label1 ) ;
391
+
392
+ Assert . Throws < ArgumentException > ( ( ) => rootNode . Attach ( doc2 , label1 ) ) ;
393
+ }
394
+
395
+ [ Fact ]
396
+ public void ThrowsArgumentNullExceptionForNullOrEmptyArgumentsInCreateMethod ( )
397
+ {
398
+ var doc = OpenApiDocumentSample_1 ;
399
+
400
+ Assert . Throws < ArgumentNullException > ( ( ) => OpenApiUrlTreeNode . Create ( doc , "" ) ) ;
401
+ Assert . Throws < ArgumentNullException > ( ( ) => OpenApiUrlTreeNode . Create ( doc , null ) ) ;
402
+ Assert . Throws < ArgumentNullException > ( ( ) => OpenApiUrlTreeNode . Create ( null , "beta" ) ) ;
403
+ Assert . Throws < ArgumentNullException > ( ( ) => OpenApiUrlTreeNode . Create ( null , null ) ) ;
404
+ Assert . Throws < ArgumentNullException > ( ( ) => OpenApiUrlTreeNode . Create ( null , "" ) ) ;
405
+ }
406
+
407
+ [ Fact ]
408
+ public void ThrowsArgumentNullExceptionForNullOrEmptyArgumentsInAttachMethod ( )
409
+ {
410
+ var doc1 = OpenApiDocumentSample_1 ;
411
+
412
+ var doc2 = OpenApiDocumentSample_2 ;
413
+
414
+ var label1 = "personal" ;
415
+ var rootNode = OpenApiUrlTreeNode . Create ( doc1 , label1 ) ;
416
+
417
+ Assert . Throws < ArgumentNullException > ( ( ) => rootNode . Attach ( doc2 , "" ) ) ;
418
+ Assert . Throws < ArgumentNullException > ( ( ) => rootNode . Attach ( doc2 , null ) ) ;
419
+ Assert . Throws < ArgumentNullException > ( ( ) => rootNode . Attach ( null , "beta" ) ) ;
420
+ Assert . Throws < ArgumentNullException > ( ( ) => rootNode . Attach ( null , null ) ) ;
421
+ Assert . Throws < ArgumentNullException > ( ( ) => rootNode . Attach ( null , "" ) ) ;
422
+ }
423
+
424
+ [ Fact ]
425
+ public void ThrowsArgumentNullExceptionForNullOrEmptyArgumentInHasOperationsMethod ( )
426
+ {
427
+ var doc = OpenApiDocumentSample_1 ;
428
+
429
+ var label = "personal" ;
430
+ var rootNode = OpenApiUrlTreeNode . Create ( doc , label ) ;
431
+
432
+ Assert . Throws < ArgumentNullException > ( ( ) => rootNode . HasOperations ( null ) ) ;
433
+ Assert . Throws < ArgumentNullException > ( ( ) => rootNode . HasOperations ( "" ) ) ;
434
+ }
435
+
436
+ [ Fact ]
437
+ public void ThrowsArgumentNullExceptionForNullArgumentInAddAdditionalDataMethod ( )
438
+ {
439
+ var doc = OpenApiDocumentSample_1 ;
440
+
441
+ var label = "personal" ;
442
+ var rootNode = OpenApiUrlTreeNode . Create ( doc , label ) ;
443
+
444
+ Assert . Throws < ArgumentNullException > ( ( ) => rootNode . AddAdditionalData ( null ) ) ;
445
+ }
479
446
}
480
447
}
0 commit comments