[dart][dio] fix features of dart-dio generator (#15537)

This commit is contained in:
Tiffany Marrel
2023-05-18 05:02:38 +02:00
committed by GitHub
parent d60b10826c
commit c7d185dda9
3 changed files with 104 additions and 63 deletions

View File

@@ -143,67 +143,67 @@ These options may be applied as additional-properties (cli) or configOptions (pl
### Client Modification Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasePath||ToolingExtension
|Authorizations||ToolingExtension
|UserAgent||ToolingExtension
|BasePath||ToolingExtension
|Authorizations||ToolingExtension
|UserAgent||ToolingExtension
|MockServer|✗|ToolingExtension
### Data Type Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Custom|✗|OAS2,OAS3
|Int32||OAS2,OAS3
|Int64||OAS2,OAS3
|Float||OAS2,OAS3
|Double||OAS2,OAS3
|Decimal||ToolingExtension
|String||OAS2,OAS3
|Byte||OAS2,OAS3
|Binary||OAS2,OAS3
|Boolean||OAS2,OAS3
|Date||OAS2,OAS3
|DateTime||OAS2,OAS3
|Password||OAS2,OAS3
|File||OAS2
|Int32||OAS2,OAS3
|Int64||OAS2,OAS3
|Float||OAS2,OAS3
|Double||OAS2,OAS3
|Decimal||ToolingExtension
|String||OAS2,OAS3
|Byte||OAS2,OAS3
|Binary||OAS2,OAS3
|Boolean||OAS2,OAS3
|Date||OAS2,OAS3
|DateTime||OAS2,OAS3
|Password||OAS2,OAS3
|File||OAS2
|Uuid|✗|
|Array||OAS2,OAS3
|Array||OAS2,OAS3
|Null|✗|OAS3
|AnyType|✗|OAS2,OAS3
|Object||OAS2,OAS3
|Maps||ToolingExtension
|CollectionFormat||OAS2
|CollectionFormatMulti||OAS2
|Enum||OAS2,OAS3
|ArrayOfEnum||ToolingExtension
|ArrayOfModel||ToolingExtension
|ArrayOfCollectionOfPrimitives||ToolingExtension
|ArrayOfCollectionOfModel||ToolingExtension
|ArrayOfCollectionOfEnum||ToolingExtension
|MapOfEnum||ToolingExtension
|MapOfModel||ToolingExtension
|MapOfCollectionOfPrimitives||ToolingExtension
|MapOfCollectionOfModel||ToolingExtension
|MapOfCollectionOfEnum||ToolingExtension
|Object||OAS2,OAS3
|Maps||ToolingExtension
|CollectionFormat||OAS2
|CollectionFormatMulti||OAS2
|Enum||OAS2,OAS3
|ArrayOfEnum||ToolingExtension
|ArrayOfModel||ToolingExtension
|ArrayOfCollectionOfPrimitives||ToolingExtension
|ArrayOfCollectionOfModel||ToolingExtension
|ArrayOfCollectionOfEnum||ToolingExtension
|MapOfEnum||ToolingExtension
|MapOfModel||ToolingExtension
|MapOfCollectionOfPrimitives||ToolingExtension
|MapOfCollectionOfModel||ToolingExtension
|MapOfCollectionOfEnum||ToolingExtension
### Documentation Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Readme||ToolingExtension
|Model||ToolingExtension
|Api||ToolingExtension
|Readme||ToolingExtension
|Model||ToolingExtension
|Api||ToolingExtension
### Global Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Host||OAS2,OAS3
|BasePath||OAS2,OAS3
|Info||OAS2,OAS3
|Host||OAS2,OAS3
|BasePath||OAS2,OAS3
|Info||OAS2,OAS3
|Schemes|✗|OAS2,OAS3
|PartialSchemes||OAS2,OAS3
|Consumes||OAS2
|Produces||OAS2
|ExternalDocumentation||OAS2,OAS3
|Examples||OAS2,OAS3
|PartialSchemes||OAS2,OAS3
|Consumes||OAS2
|Produces||OAS2
|ExternalDocumentation||OAS2,OAS3
|Examples||OAS2,OAS3
|XMLStructureDefinitions|✗|OAS2,OAS3
|MultiServer|✗|OAS3
|ParameterizedServer|✗|OAS3
@@ -214,34 +214,34 @@ These options may be applied as additional-properties (cli) or configOptions (pl
### Parameter Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Path||OAS2,OAS3
|Query||OAS2,OAS3
|Header||OAS2,OAS3
|Body||OAS2
|FormUnencoded||OAS2
|FormMultipart||OAS2
|Cookie||OAS3
|Path||OAS2,OAS3
|Query||OAS2,OAS3
|Header||OAS2,OAS3
|Body||OAS2
|FormUnencoded||OAS2
|FormMultipart||OAS2
|Cookie||OAS3
### Schema Support Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Simple||OAS2,OAS3
|Composite||OAS2,OAS3
|Polymorphism||OAS2,OAS3
|Union||OAS3
|allOf||OAS2,OAS3
|anyOf||OAS3
|oneOf||OAS3
|Simple||OAS2,OAS3
|Composite||OAS2,OAS3
|Polymorphism||OAS2,OAS3
|Union||OAS3
|allOf||OAS2,OAS3
|anyOf||OAS3
|oneOf||OAS3
|not|✗|OAS3
### Security Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasicAuth||OAS2,OAS3
|ApiKey||OAS2,OAS3
|BasicAuth||OAS2,OAS3
|ApiKey||OAS2,OAS3
|OpenIDConnect|✗|OAS3
|BearerToken||OAS3
|OAuth2_Implicit||OAS2,OAS3
|BearerToken||OAS3
|OAuth2_Implicit||OAS2,OAS3
|OAuth2_Password|✗|OAS2,OAS3
|OAuth2_ClientCredentials|✗|OAS2,OAS3
|OAuth2_AuthorizationCode|✗|OAS2,OAS3
@@ -250,7 +250,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
### Wire Format Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|JSON||OAS2,OAS3
|JSON||OAS2,OAS3
|XML|✗|OAS2,OAS3
|PROTOBUF|✗|ToolingExtension
|Custom|✗|OAS2,OAS3

View File

@@ -92,7 +92,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
SchemaSupportFeature.anyOf
)
);
generatorMetadata = GeneratorMetadata.newBuilder()
generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata)
.stability(Stability.STABLE)
.build();

View File

@@ -16,15 +16,25 @@
package org.openapitools.codegen.dart.dio;
import org.openapitools.codegen.ClientOptInput;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.DefaultGenerator;
import org.openapitools.codegen.Generator;
import org.openapitools.codegen.TestUtils;
import org.openapitools.codegen.config.CodegenConfigurator;
import org.openapitools.codegen.languages.DartDioClientCodegen;
import org.testng.Assert;
import org.testng.annotations.Test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -40,6 +50,15 @@ public class DartDioClientCodegenTest {
Assert.assertTrue(codegen.isHideGenerationTimestamp());
}
@Test
public void testInitialFeatures() {
final DartDioClientCodegen codegen = new DartDioClientCodegen();
codegen.processOpts();
Assert.assertNotNull(codegen.getFeatureSet().getSecurityFeatures());
Assert.assertFalse(codegen.getFeatureSet().getSecurityFeatures().isEmpty());
}
@Test
public void testSettersForConfigValues() throws Exception {
final DartDioClientCodegen codegen = new DartDioClientCodegen();
@@ -82,4 +101,26 @@ public class DartDioClientCodegenTest {
}
}
@Test
public void verifyDartDioGeneratorRuns() throws IOException {
File output = Files.createTempDirectory("test").toFile();
output.deleteOnExit();
final CodegenConfigurator configurator = new CodegenConfigurator()
.setGeneratorName("dart-dio")
.setGitUserId("my-user")
.setGitRepoId("my-repo")
.setPackageName("my-package")
.setInputSpec("src/test/resources/3_0/petstore.yaml")
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
ClientOptInput opts = configurator.toClientOptInput();
Generator generator = new DefaultGenerator().opts(opts);
List<File> files = generator.generate();
files.forEach(File::deleteOnExit);
TestUtils.ensureContainsFile(files, output, "README.md");
TestUtils.ensureContainsFile(files, output, "lib/src/api.dart");
}
}