@@ -91,6 +91,7 @@ final class HttpProtocolTestGenerator implements Runnable {
91
91
private final ServiceShape service ;
92
92
private final SymbolProvider symbolProvider ;
93
93
private final Symbol serviceSymbol ;
94
+ private final SymbolProvider serverSymbolProvider ;
94
95
private final Set <String > additionalStubs = new TreeSet <>();
95
96
private final ProtocolGenerator protocolGenerator ;
96
97
@@ -105,6 +106,7 @@ final class HttpProtocolTestGenerator implements Runnable {
105
106
Model model ,
106
107
ShapeId protocol ,
107
108
SymbolProvider symbolProvider ,
109
+ SymbolProvider serverSymbolProvider ,
108
110
TypeScriptDelegator delegator ,
109
111
ProtocolGenerator protocolGenerator
110
112
) {
@@ -113,6 +115,7 @@ final class HttpProtocolTestGenerator implements Runnable {
113
115
this .protocol = protocol ;
114
116
this .service = settings .getService (model );
115
117
this .symbolProvider = symbolProvider ;
118
+ this .serverSymbolProvider = serverSymbolProvider ;
116
119
this .delegator = delegator ;
117
120
this .protocolGenerator = protocolGenerator ;
118
121
serviceSymbol = symbolProvider .toSymbol (service );
@@ -247,7 +250,7 @@ private void generateClientRequestTest(OperationShape operation, HttpRequestTest
247
250
}
248
251
249
252
private void generateServerRequestTest (OperationShape operation , HttpRequestTestCase testCase ) {
250
- Symbol operationSymbol = symbolProvider .toSymbol (operation );
253
+ Symbol operationSymbol = serverSymbolProvider .toSymbol (operation );
251
254
252
255
// Lowercase all the headers we're expecting as this is what we'll get.
253
256
Map <String , String > headers = testCase .getHeaders ().entrySet ().stream ()
@@ -260,9 +263,8 @@ private void generateServerRequestTest(OperationShape operation, HttpRequestTest
260
263
String testName = testCase .getId () + ":ServerRequest" ;
261
264
testCase .getDocumentation ().ifPresent (writer ::writeDocs );
262
265
writer .openBlock ("it($S, async () => {" , "});\n " , testName , () -> {
263
- // TODO: use the symbol provider when it's ready
264
- String serviceName = StringUtils .capitalize (service .getId ().getName ());
265
- String operationName = StringUtils .capitalize (operation .getId ().getName ());
266
+ Symbol serviceSymbol = serverSymbolProvider .toSymbol (service );
267
+ Symbol handlerSymbol = serviceSymbol .expectProperty ("handler" , Symbol .class );
266
268
Symbol inputType = operationSymbol .expectProperty ("inputType" , Symbol .class );
267
269
Symbol outputType = operationSymbol .expectProperty ("outputType" , Symbol .class );
268
270
@@ -274,18 +276,18 @@ private void generateServerRequestTest(OperationShape operation, HttpRequestTest
274
276
// We use a partial here so that we don't have to define the entire service, but still get the advantages
275
277
// the type checker, including excess property checking. Later on we'll use `as` to cast this to the
276
278
// full service so that we can actually use it.
277
- writer .addImport (serviceName + "Service" , null , "./server" );
278
- writer .openBlock ("const testService: Partial<$LService> = {" , "};" , serviceName , () -> {
279
+ writer .openBlock ("const testService: Partial<$T> = {" , "};" , serviceSymbol , () -> {
279
280
writer .addImport ("Operation" , "__Operation" , "@aws-smithy/server-common" );
280
- writer .write ("$L: testFunction as __Operation<$T, $T>," , operationName , inputType , outputType );
281
+ writer .write ("$L: testFunction as __Operation<$T, $T>," ,
282
+ operationSymbol .getName (), inputType , outputType );
281
283
});
282
284
283
- String getHandlerName = String . format ( "get%sServiceHandler" , serviceName );
285
+ String getHandlerName = "get" + handlerSymbol . getName ( );
284
286
writer .addImport (getHandlerName , getHandlerName ,
285
287
"./protocols/" + ProtocolGenerator .getSanitizedName (protocolGenerator .getName ()));
286
288
287
289
// Cast the service as any so TS will ignore the fact that the type being passed in is incomplete.
288
- writer .write ("const handler = $L(testService as $LService );" , getHandlerName , serviceName );
290
+ writer .write ("const handler = $L(testService as $T );" , getHandlerName , serviceSymbol );
289
291
290
292
// Construct a new http request according to the test case definition.
291
293
writer .openBlock ("const request = new HttpRequest({" , "});" , () -> {
0 commit comments