+
+func TestGetSwagger(t *testing.T) {
+ e = getEcho()
+
+ type args struct {
+ apiPath string
+ apiName string
+ }
+ tests := []struct {
+ name string
+ args args
+ }{
+ {
+ name: "Provider api",
+ args: args{
+ apiPath: "provider",
+ apiName: "Provider",
+ },
+ },
+ {
+ name: "Publish api",
+ args: args{
+ apiPath: "publish",
+ apiName: "Publish",
+ },
+ },
+ {
+ name: "Invoker api",
+ args: args{
+ apiPath: "invoker",
+ apiName: "Invoker",
+ },
+ },
+ {
+ name: "Events api",
+ args: args{
+ apiPath: "events",
+ apiName: "Events",
+ },
+ },
+ {
+ name: "Discover api",
+ args: args{
+ apiPath: "discover",
+ apiName: "Discover",
+ },
+ },
+ {
+ name: "Security api",
+ args: args{
+ apiPath: "security",
+ apiName: "Security",
+ },
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := testutil.NewRequest().Get("/swagger/"+tt.args.apiPath).Go(t, e)
+ assert.Equal(t, http.StatusOK, result.Code())
+ var swaggerResponse openapi3.T
+ err := result.UnmarshalJsonToObject(&swaggerResponse)
+ assert.Nil(t, err)
+ assert.Contains(t, swaggerResponse.Info.Title, tt.args.apiName)
+ })
+ }
+ invalidApi := "foobar"
+ result := testutil.NewRequest().Get("/swagger/"+invalidApi).Go(t, e)
+ assert.Equal(t, http.StatusBadRequest, result.Code())
+ var errorResponse common29122.ProblemDetails
+ err := result.UnmarshalJsonToObject(&errorResponse)
+ assert.Nil(t, err)
+ assert.Contains(t, *errorResponse.Cause, "Invalid API")
+ assert.Contains(t, *errorResponse.Cause, invalidApi)
+}
+
+func TestHTTPSServer(t *testing.T) {
+ e = getEcho()
+ var port = 44333
+ go startHttpsWebServer(e, 44333, "certs/cert.pem", "certs/key.pem") //"certs/test/cert.pem", "certs/test/key.pem"
+
+ time.Sleep(100 * time.Millisecond)
+
+ tr := &http.Transport{
+ TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
+ }
+
+ client := &http.Client{Transport: tr}
+ res, err := client.Get(fmt.Sprintf("https://localhost:%d", port))
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ defer res.Body.Close()
+ assert.Equal(t, res.StatusCode, res.StatusCode)
+
+ body, err := io.ReadAll(res.Body)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ expected := []byte("Hello, World!")
+ assert.Equal(t, expected, body)
+}