@@ -911,4 +911,230 @@ public void generateSerializableModel() throws Exception {
911
911
"private const val serialVersionUID: kotlin.Long = 1"
912
912
);
913
913
}
914
+
915
+ @ Test
916
+ public void reactiveWithoutFlow () throws Exception {
917
+ File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
918
+ KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen ();
919
+ codegen .setOutputDir (output .getAbsolutePath ());
920
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .REACTIVE , true );
921
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_FLOW_FOR_ARRAY_RETURN_TYPE , false );
922
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_TAGS , true );
923
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .SERVICE_IMPLEMENTATION , true );
924
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .DELEGATE_PATTERN , true );
925
+
926
+ List <File > files = new DefaultGenerator ()
927
+ .opts (
928
+ new ClientOptInput ()
929
+ .openAPI (TestUtils .parseSpec ("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml" ))
930
+ .config (codegen )
931
+ )
932
+ .generate ();
933
+
934
+ Assertions .assertThat (files ).contains (
935
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
936
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
937
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
938
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" )
939
+ );
940
+
941
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
942
+ "Flow<kotlin.String>" );
943
+
944
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
945
+ "List<kotlin.String>" );
946
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
947
+ "Flow<kotlin.String>" );
948
+
949
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
950
+ "List<kotlin.String>" );
951
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
952
+ "Flow<kotlin.String>" );
953
+
954
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
955
+ "List<kotlin.String>" );
956
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
957
+ "Flow<kotlin.String>" );
958
+ }
959
+
960
+ @ Test
961
+ public void reactiveWithFlow () throws Exception {
962
+ File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
963
+ KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen ();
964
+ codegen .setOutputDir (output .getAbsolutePath ());
965
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .REACTIVE , true );
966
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_FLOW_FOR_ARRAY_RETURN_TYPE , true );
967
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_TAGS , true );
968
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .SERVICE_IMPLEMENTATION , true );
969
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .DELEGATE_PATTERN , true );
970
+
971
+ List <File > files = new DefaultGenerator ()
972
+ .opts (
973
+ new ClientOptInput ()
974
+ .openAPI (TestUtils .parseSpec ("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml" ))
975
+ .config (codegen )
976
+ )
977
+ .generate ();
978
+
979
+ Assertions .assertThat (files ).contains (
980
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
981
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
982
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
983
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" )
984
+ );
985
+
986
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
987
+ "List<kotlin.String>" );
988
+
989
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
990
+ "List<kotlin.String>" );
991
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
992
+ "Flow<kotlin.String>" );
993
+
994
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
995
+ "List<kotlin.String>" );
996
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
997
+ "Flow<kotlin.String>" );
998
+
999
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
1000
+ "List<kotlin.String>" );
1001
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
1002
+ "Flow<kotlin.String>" );
1003
+ }
1004
+
1005
+ @ Test
1006
+ public void reactiveWithDefaultValueFlow () throws Exception {
1007
+ File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1008
+ KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen ();
1009
+ codegen .setOutputDir (output .getAbsolutePath ());
1010
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .REACTIVE , true );
1011
+ // should use default 'true' instead
1012
+ // codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, true);
1013
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_TAGS , true );
1014
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .SERVICE_IMPLEMENTATION , true );
1015
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .DELEGATE_PATTERN , true );
1016
+
1017
+ List <File > files = new DefaultGenerator ()
1018
+ .opts (
1019
+ new ClientOptInput ()
1020
+ .openAPI (TestUtils .parseSpec ("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml" ))
1021
+ .config (codegen )
1022
+ )
1023
+ .generate ();
1024
+
1025
+ Assertions .assertThat (files ).contains (
1026
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1027
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
1028
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1029
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" )
1030
+ );
1031
+
1032
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
1033
+ "List<kotlin.String>" );
1034
+
1035
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1036
+ "List<kotlin.String>" );
1037
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1038
+ "Flow<kotlin.String>" );
1039
+
1040
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1041
+ "List<kotlin.String>" );
1042
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1043
+ "Flow<kotlin.String>" );
1044
+
1045
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
1046
+ "List<kotlin.String>" );
1047
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
1048
+ "Flow<kotlin.String>" );
1049
+ }
1050
+
1051
+ @ Test
1052
+ public void nonReactiveWithoutFlow () throws Exception {
1053
+ File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1054
+ KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen ();
1055
+ codegen .setOutputDir (output .getAbsolutePath ());
1056
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .REACTIVE , false );
1057
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_FLOW_FOR_ARRAY_RETURN_TYPE , false );
1058
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_TAGS , true );
1059
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .SERVICE_IMPLEMENTATION , true );
1060
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .DELEGATE_PATTERN , true );
1061
+
1062
+ List <File > files = new DefaultGenerator ()
1063
+ .opts (
1064
+ new ClientOptInput ()
1065
+ .openAPI (TestUtils .parseSpec ("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml" ))
1066
+ .config (codegen )
1067
+ )
1068
+ .generate ();
1069
+
1070
+ Assertions .assertThat (files ).contains (
1071
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1072
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
1073
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1074
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" )
1075
+ );
1076
+
1077
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
1078
+ "Flow<kotlin.String>" );
1079
+
1080
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1081
+ "List<kotlin.String>" );
1082
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1083
+ "Flow<kotlin.String>" );
1084
+
1085
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1086
+ "List<kotlin.String>" );
1087
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1088
+ "Flow<kotlin.String>" );
1089
+
1090
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
1091
+ "List<kotlin.String>" );
1092
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
1093
+ "Flow<kotlin.String>" );
1094
+ }
1095
+
1096
+ @ Test
1097
+ public void nonReactiveWithFlow () throws Exception {
1098
+ File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1099
+ KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen ();
1100
+ codegen .setOutputDir (output .getAbsolutePath ());
1101
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .REACTIVE , false );
1102
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_FLOW_FOR_ARRAY_RETURN_TYPE , true );
1103
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .USE_TAGS , true );
1104
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .SERVICE_IMPLEMENTATION , true );
1105
+ codegen .additionalProperties ().put (KotlinSpringServerCodegen .DELEGATE_PATTERN , true );
1106
+
1107
+ List <File > files = new DefaultGenerator ()
1108
+ .opts (
1109
+ new ClientOptInput ()
1110
+ .openAPI (TestUtils .parseSpec ("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml" ))
1111
+ .config (codegen )
1112
+ )
1113
+ .generate ();
1114
+
1115
+ Assertions .assertThat (files ).contains (
1116
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1117
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
1118
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1119
+ new File (output , "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" )
1120
+ );
1121
+
1122
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt" ),
1123
+ "Flow<kotlin.String>" );
1124
+
1125
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1126
+ "List<kotlin.String>" );
1127
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt" ),
1128
+ "Flow<kotlin.String>" );
1129
+
1130
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1131
+ "List<kotlin.String>" );
1132
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt" ),
1133
+ "Flow<kotlin.String>" );
1134
+
1135
+ assertFileContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
1136
+ "List<kotlin.String>" );
1137
+ assertFileNotContains (Paths .get (output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt" ),
1138
+ "Flow<kotlin.String>" );
1139
+ }
914
1140
}
0 commit comments