@@ -75,6 +75,45 @@ public async Task Returns_expected_response()
75
75
Assert . Equal ( "sample" , responseObj ? . SelectToken ( "AString" ) ? . Value < string > ( ) ) ;
76
76
Assert . Equal ( 1 , responseObj ? . SelectToken ( "ANumber" ) ? . Value < int > ( ) ) ;
77
77
}
78
+
79
+ [ Fact ]
80
+ public async Task Returns_expected_response_when_invoked_more_than_once ( )
81
+ {
82
+ // Arrange
83
+ var client = new SelfContainedWebApplicationFactoryWithWebHost < Dummy >
84
+ (
85
+ configureServices : services =>
86
+ {
87
+ services . AddViewModelComposition ( options =>
88
+ {
89
+ options . AssemblyScanner . Disable ( ) ;
90
+ options . RegisterCompositionHandler < TestGetStringHandler > ( ) ;
91
+ options . RegisterCompositionHandler < TestGetIntegerHandler > ( ) ;
92
+ } ) ;
93
+ services . AddRouting ( ) ;
94
+ services . AddControllers ( ) ;
95
+ } ,
96
+ configure : app =>
97
+ {
98
+ app . UseRouting ( ) ;
99
+ app . UseEndpoints ( builder => builder . MapCompositionHandlers ( ) ) ;
100
+ }
101
+ ) . CreateClient ( ) ;
102
+
103
+ client . DefaultRequestHeaders . Add ( "Accept-Casing" , "casing/pascal" ) ;
104
+ // Act
105
+ _ = await client . GetAsync ( "/sample/1" ) ;
106
+ var response = await client . GetAsync ( "/sample/1" ) ;
107
+
108
+ // Assert
109
+ Assert . True ( response . IsSuccessStatusCode ) ;
110
+
111
+ var responseString = await response . Content . ReadAsStringAsync ( ) ;
112
+ var responseObj = JObject . Parse ( responseString ) ;
113
+
114
+ Assert . Equal ( "sample" , responseObj ? . SelectToken ( "AString" ) ? . Value < string > ( ) ) ;
115
+ Assert . Equal ( 1 , responseObj ? . SelectToken ( "ANumber" ) ? . Value < int > ( ) ) ;
116
+ }
78
117
79
118
[ Fact ]
80
119
public async Task Returns_expected_response_using_output_formatters ( )
0 commit comments