5
5
"github.com/intelops/compage/core/internal/converter/grpc"
6
6
"github.com/intelops/compage/core/internal/handlers"
7
7
"os"
8
+ "strings"
8
9
"testing"
9
10
)
10
11
@@ -557,7 +558,7 @@ func TestRestServerWithOpenApiGenerator(t *testing.T) {
557
558
"consumerData": {
558
559
"nodeType": "node-type-circle",
559
560
"name": "sample-service",
560
- "language": "go ",
561
+ "language": "$$LANGUAGE$$ ",
561
562
"restConfig": {
562
563
"server": {
563
564
"sqlDb": "",
@@ -566,30 +567,56 @@ func TestRestServerWithOpenApiGenerator(t *testing.T) {
566
567
"openApiFileYamlContent": "swagger: \"2.0\"\ninfo:\n version: 1.0.0\n title: Swagger Petstore\n license:\n name: MIT\nhost: petstore.swagger.io\nbasePath: /v1\nschemes:\n - http\nconsumes:\n - application/json\nproduces:\n - application/json\npaths:\n /pets:\n get:\n summary: List all pets\n operationId: listPets\n tags:\n - pets\n parameters:\n - name: limit\n in: query\n description: How many items to return at one time (max 100)\n required: false\n type: integer\n format: int32\n responses:\n \"200\":\n description: A paged array of pets\n headers:\n x-next:\n type: string\n description: A link to the next page of responses\n schema:\n $ref: '#/definitions/Pets'\n default:\n description: unexpected error\n schema:\n $ref: '#/definitions/Error'\n post:\n summary: Create a pet\n operationId: createPets\n tags:\n - pets\n responses:\n \"201\":\n description: Null response\n default:\n description: unexpected error\n schema:\n $ref: '#/definitions/Error'\n /pets/{petId}:\n get:\n summary: Info for a specific pet\n operationId: showPetById\n tags:\n - pets\n parameters:\n - name: petId\n in: path\n required: true\n description: The id of the pet to retrieve\n type: string\n responses:\n \"200\":\n description: Expected response to a valid request\n schema:\n $ref: '#/definitions/Pets'\n default:\n description: unexpected error\n schema:\n $ref: '#/definitions/Error'\ndefinitions:\n Pet:\n type: \"object\"\n required:\n - id\n - name\n properties:\n id:\n type: integer\n format: int64\n name:\n type: string\n tag:\n type: string\n Pets:\n type: array\n items:\n $ref: '#/definitions/Pet'\n Error:\n type: \"object\"\n required:\n - code\n - message\n properties:\n code:\n type: integer\n format: int32\n message:\n type: string\n"
567
568
},
568
569
"template": "openAPI",
569
- "framework": "go-gin-server "
570
+ "framework": "$$FRAMEWORK$$ "
570
571
}
571
572
}
572
573
}
573
574
}
574
575
}`
575
- input := project.GenerateCodeRequest {
576
- UserName : "mahendraintelops" ,
577
- RepositoryName : "first-project-github" ,
578
- ProjectName : "first-rest-server-with-openapi-project" ,
579
- Json : restServerWithOpenAPIConfigJSON ,
576
+ var tests = []struct {
577
+ language string
578
+ framework string
579
+ want error
580
+ }{
581
+ {"java" , "java-micronaut-server" , nil },
582
+ {"java" , "java-undertow-server" , nil },
583
+ {"java" , "spring" , nil },
584
+ {"python" , "python-flask" , nil },
585
+ {"ruby" , "ruby-on-rails" , nil },
586
+ {"ruby" , "ruby-sinatra" , nil },
587
+ {"go" , "go-gin-server" , nil },
588
+ {"go" , "go-server" , nil },
589
+ {"go" , "go-echo-server" , nil },
590
+ {"javascript" , "nodejs-express-server" , nil },
591
+ {"rust" , "rust-server" , nil },
580
592
}
581
- defer func () {
582
- _ = os .RemoveAll ("/tmp/first-rest-server-with-openapi-project" )
583
- }()
584
593
585
- // retrieve project struct
586
- getProject , err := grpc .GetProject (& input )
587
- if err != nil {
588
- t .Errorf ("grpc.GetProject conversion failed = %v" , getProject )
589
- }
590
- // trigger project generation
591
- if err0 := handlers .Handle (getProject ); err0 != nil {
592
- t .Errorf ("handlers.Handle failed %s" , err0 .Error ())
594
+ for _ , tt := range tests {
595
+ t .Run (tt .language , func (t * testing.T ) {
596
+ replacedConfig := strings .Replace (restServerWithOpenAPIConfigJSON , "$$LANGUAGE$$" , tt .language , 1 )
597
+ replacedConfig = strings .Replace (replacedConfig , "$$FRAMEWORK$$" , tt .framework , 1 )
598
+ input := project.GenerateCodeRequest {
599
+ UserName : "mahendraintelops" ,
600
+ RepositoryName : "first-project-github" ,
601
+ ProjectName : "first-openapi-based-project-" + tt .language ,
602
+ Json : replacedConfig ,
603
+ }
604
+ defer func () {
605
+ _ = os .RemoveAll ("/tmp/first-openapi-based-project-" + tt .language )
606
+ }()
607
+
608
+ // retrieve project struct
609
+ getProject , err := grpc .GetProject (& input )
610
+ if err != nil {
611
+ t .Errorf ("grpc.GetProject conversion failed = %v" , getProject )
612
+ }
613
+
614
+ // trigger project generation
615
+ ans := handlers .Handle (getProject )
616
+ if ans != tt .want {
617
+ t .Errorf ("got %v, want %v" , ans , tt .want )
618
+ }
619
+ })
593
620
}
594
621
}
595
622
0 commit comments