@@ -14,46 +14,60 @@ public class CommandGeneratorTest {
14
14
public void addsCommandSpecificPlugins () {
15
15
testCommmandCodegen (
16
16
"output-structure.smithy" ,
17
- "getSerdePlugin(config, this.serialize, this.deserialize)"
17
+ new String [] { "getSerdePlugin(config, this.serialize, this.deserialize)" }
18
18
);
19
19
}
20
20
21
21
@ Test
22
22
public void writesSerializer () {
23
23
testCommmandCodegen (
24
24
"output-structure.smithy" ,
25
- ".ser("
25
+ new String [] { ".ser(" }
26
26
);
27
27
}
28
28
29
29
@ Test
30
30
public void writesDeserializer () {
31
31
testCommmandCodegen (
32
32
"output-structure.smithy" ,
33
- ".de("
33
+ new String [] { ".de(" }
34
34
);
35
35
}
36
36
37
- private void testCommmandCodegen (String file , String expectedType ) {
38
- Model model = Model .assembler ()
39
- .addImport (getClass ().getResource (file ))
40
- .assemble ()
41
- .unwrap ();
37
+ @ Test
38
+ public void writesOperationContextParamValues () {
39
+ testCommmandCodegen (
40
+ "endpointsV2/endpoints-operation-context-params.smithy" ,
41
+ new String [] {
42
+ "opContextParamIdentifier: { type: \" operationContextParams\" , name: this.input.fooString }" ,
43
+ "opContextParamSubExpression: { type: \" operationContextParams\" , name: this.input.fooObj.bar }" ,
44
+ }
45
+ );
46
+ }
47
+
48
+ private void testCommmandCodegen (String filename , String [] expectedTypeArray ) {
42
49
MockManifest manifest = new MockManifest ();
43
50
PluginContext context = PluginContext .builder ()
44
- .model (model )
45
- .fileManifest (manifest )
46
- .settings (Node .objectNodeBuilder ()
47
- .withMember ("service" , Node .from ("smithy.example#Example" ))
48
- .withMember ("package" , Node .from ("example" ))
49
- .withMember ("packageVersion" , Node .from ("1.0.0" ))
50
- .build ())
51
- .build ();
51
+ .pluginClassLoader (getClass ().getClassLoader ())
52
+ .model (Model .assembler ()
53
+ .addImport (getClass ().getResource (filename ))
54
+ .discoverModels ()
55
+ .assemble ()
56
+ .unwrap ())
57
+ .fileManifest (manifest )
58
+ .settings (Node .objectNodeBuilder ()
59
+ .withMember ("service" , Node .from ("smithy.example#Example" ))
60
+ .withMember ("package" , Node .from ("example" ))
61
+ .withMember ("packageVersion" , Node .from ("1.0.0" ))
62
+ .build ())
63
+ .build ();
52
64
53
65
new TypeScriptCodegenPlugin ().execute (context );
54
66
String contents = manifest .getFileString (CodegenUtils .SOURCE_FOLDER + "//commands/GetFooCommand.ts" ).get ();
55
67
56
68
assertThat (contents , containsString ("as __MetadataBearer" ));
57
- assertThat (contents , containsString (expectedType ));
69
+ for (String expectedType : expectedTypeArray ) {
70
+ assertThat (contents , containsString (expectedType ));
71
+ }
58
72
}
59
73
}
0 commit comments