@@ -399,11 +399,11 @@ func TestRestServerGenerator(t *testing.T) {
399
399
input := project.GenerateCodeRequest {
400
400
UserName : "mahendraintelops" ,
401
401
RepositoryName : "first-project-github" ,
402
- ProjectName : "first-rest-project" ,
402
+ ProjectName : "first-rest-server- project" ,
403
403
Json : restServerConfigJSON ,
404
404
}
405
405
defer func () {
406
- _ = os .RemoveAll ("/tmp/first-rest-project" )
406
+ _ = os .RemoveAll ("/tmp/first-rest-server- project" )
407
407
}()
408
408
409
409
// retrieve project struct
@@ -470,3 +470,107 @@ func TestGrpcServerGenerator(t *testing.T) {
470
470
t .Errorf ("handlers.Handle failed %s" , err0 .Error ())
471
471
}
472
472
}
473
+
474
+ func TestRestServerWithOpenApiGenerator (t * testing.T ) {
475
+ restServerWithOpenAPIConfigJSON := `{
476
+ "edges": {},
477
+ "nodes": {
478
+ "node-02": {
479
+ "id": "node-02",
480
+ "typeId": "node-type-circle",
481
+ "consumerData": {
482
+ "nodeType": "node-type-circle",
483
+ "name": "sample-service",
484
+ "language": "go",
485
+ "restConfig": {
486
+ "server": {
487
+ "sqlDb": "",
488
+ "port": "8080",
489
+ "resources": [],
490
+ "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"
491
+ },
492
+ "template": "openAPI",
493
+ "framework": "go-gin-server"
494
+ }
495
+ }
496
+ }
497
+ }
498
+ }`
499
+ input := project.GenerateCodeRequest {
500
+ UserName : "mahendraintelops" ,
501
+ RepositoryName : "first-project-github" ,
502
+ ProjectName : "first-rest-server-with-openapi-project" ,
503
+ Json : restServerWithOpenAPIConfigJSON ,
504
+ }
505
+ defer func () {
506
+ _ = os .RemoveAll ("/tmp/first-rest-server-with-openapi-project" )
507
+ }()
508
+
509
+ // retrieve project struct
510
+ getProject , err := grpc .GetProject (& input )
511
+ if err != nil {
512
+ t .Errorf ("grpc.GetProject conversion failed = %v" , getProject )
513
+ }
514
+ // trigger project generation
515
+ if err0 := handlers .Handle (getProject ); err0 != nil {
516
+ t .Errorf ("handlers.Handle failed %s" , err0 .Error ())
517
+ }
518
+ }
519
+
520
+ func TestWsServerGenerator (t * testing.T ) {
521
+ wsServerConfigJSON := `{
522
+ "edges": {},
523
+ "nodes": {
524
+ "node-b0": {
525
+ "id": "node-b0",
526
+ "typeId": "node-type-circle",
527
+ "consumerData": {
528
+ "nodeType": "circle",
529
+ "name": "student-service",
530
+ "language": "go",
531
+ "wsConfig": {
532
+ "server": {
533
+ "sqlDb": "SQLite",
534
+ "port": "50052",
535
+ "resources": [
536
+ {
537
+ "fields": {
538
+ "Name": "string",
539
+ "RollNumber": "int32",
540
+ "College": "string"
541
+ },
542
+ "name": "StudentModel"
543
+ }
544
+ ]
545
+ },
546
+ "framework": "go-ws-server",
547
+ "template": "compage"
548
+ }
549
+ }
550
+ }
551
+ }
552
+ }`
553
+ input := project.GenerateCodeRequest {
554
+ UserName : "mahendraintelops" ,
555
+ RepositoryName : "first-project-github" ,
556
+ ProjectName : "first-ws-server-project" ,
557
+ Json : wsServerConfigJSON ,
558
+ }
559
+ defer func () {
560
+ _ = os .RemoveAll ("/tmp/first-ws-server-project" )
561
+ }()
562
+
563
+ // retrieve project struct
564
+ getProject , err := grpc .GetProject (& input )
565
+ if err != nil {
566
+ t .Errorf ("grpc.GetProject conversion failed = %v" , getProject )
567
+ }
568
+ // trigger project generation
569
+ if err0 := handlers .Handle (getProject ); err0 != nil {
570
+ if err0 .Error () == "unsupported protocol ws for language go" {
571
+ // TODO implementation is yet to be done
572
+ } else {
573
+ t .Errorf ("handlers.Handle failed %s" , err0 .Error ())
574
+ }
575
+ }
576
+ }
0 commit comments