@@ -489,3 +489,153 @@ map FlattenedXmlMapWithXmlNamespaceOutputMap {
489
489
@xmlNamespace (uri : " https://the-value.example.com" )
490
490
value : String ,
491
491
}
492
+
493
+ @http (uri : " /NestedXmlMaps" , method : " POST" )
494
+ operation NestedXmlMaps {
495
+ input : NestedXmlMapsInputOutput ,
496
+ output : NestedXmlMapsInputOutput ,
497
+ }
498
+
499
+ structure NestedXmlMapsInputOutput {
500
+ nestedMap : NestedMap ,
501
+
502
+ @xmlFlattened
503
+ flatNestedMap : NestedMap ,
504
+ }
505
+
506
+ map NestedMap {
507
+ key : String ,
508
+ value : FooEnumMap ,
509
+ }
510
+
511
+ apply NestedXmlMaps @httpRequestTests ([
512
+ {
513
+ id : " NestedXmlMapRequest" ,
514
+ documentation : " Tests requests with nested maps." ,
515
+ protocol : restXml ,
516
+ method : " POST" ,
517
+ uri : " /NestedXmlMaps" ,
518
+ body : """
519
+ <NestedXmlMapsInputOutput>
520
+ <nestedMap>
521
+ <entry>
522
+ <key>foo</key>
523
+ <value>
524
+ <entry>
525
+ <key>bar</key>
526
+ <value>Bar</value>
527
+ </entry>
528
+ </value>
529
+ </entry>
530
+ </nestedMap>
531
+ </NestedXmlMapsInputOutput>""" ,
532
+ bodyMediaType : " application/xml" ,
533
+ headers : {
534
+ "Content-Type" : " application/xml" ,
535
+ },
536
+ params : {
537
+ nestedMap : {
538
+ foo : {
539
+ bar : " Bar" ,
540
+ }
541
+ }
542
+ }
543
+ },
544
+ {
545
+ id : " FlatNestedXmlMapRequest" ,
546
+ documentation : """
547
+ Tests requests with nested flat maps. Since maps can only be
548
+ flattened when they're structure members, only the outer map is flat.""" ,
549
+ protocol : restXml ,
550
+ method : " POST" ,
551
+ uri : " /NestedXmlMaps" ,
552
+ body : """
553
+ <NestedXmlMapsInputOutput>
554
+ <flatNestedMap>
555
+ <key>foo</key>
556
+ <value>
557
+ <entry>
558
+ <key>bar</key>
559
+ <value>Bar</value>
560
+ </entry>
561
+ </value>
562
+ </flatNestedMap>
563
+ </NestedXmlMapsInputOutput>""" ,
564
+ bodyMediaType : " application/xml" ,
565
+ headers : {
566
+ "Content-Type" : " application/xml" ,
567
+ },
568
+ params : {
569
+ flatNestedMap : {
570
+ foo : {
571
+ bar : " Bar" ,
572
+ }
573
+ }
574
+ }
575
+ },
576
+ ])
577
+
578
+ apply NestedXmlMaps @httpResponseTests ([
579
+ {
580
+ id : " NestedXmlMapResponse" ,
581
+ documentation : " Tests responses with nested maps." ,
582
+ protocol : restXml ,
583
+ code : 200 ,
584
+ body : """
585
+ <NestedXmlMapsInputOutput>
586
+ <nestedMap>
587
+ <entry>
588
+ <key>foo</key>
589
+ <value>
590
+ <entry>
591
+ <key>bar</key>
592
+ <value>Bar</value>
593
+ </entry>
594
+ </value>
595
+ </entry>
596
+ </nestedMap>
597
+ </NestedXmlMapsInputOutput>""" ,
598
+ bodyMediaType : " application/xml" ,
599
+ headers : {
600
+ "Content-Type" : " application/xml" ,
601
+ },
602
+ params : {
603
+ nestedMap : {
604
+ foo : {
605
+ bar : " Bar" ,
606
+ }
607
+ }
608
+ }
609
+ },
610
+ {
611
+ id : " FlatNestedXmlMapResponse" ,
612
+ documentation : """
613
+ Tests responses with nested flat maps. Since maps can only be
614
+ flattened when they're structure members, only the outer map is flat.""" ,
615
+ protocol : restXml ,
616
+ code : 200 ,
617
+ body : """
618
+ <NestedXmlMapsInputOutput>
619
+ <flatNestedMap>
620
+ <key>foo</key>
621
+ <value>
622
+ <entry>
623
+ <key>bar</key>
624
+ <value>Bar</value>
625
+ </entry>
626
+ </value>
627
+ </flatNestedMap>
628
+ </NestedXmlMapsInputOutput>""" ,
629
+ bodyMediaType : " application/xml" ,
630
+ headers : {
631
+ "Content-Type" : " application/xml" ,
632
+ },
633
+ params : {
634
+ flatNestedMap : {
635
+ foo : {
636
+ bar : " Bar" ,
637
+ }
638
+ }
639
+ }
640
+ },
641
+ ])
0 commit comments