blob: 35a08ac36074cfe3b090daa145537a69b2cb840b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package datasource_test
import (
"context"
"strconv"
"strings"
"testing"
"time"
"github.com/apache/servicecomb-service-center/datasource"
"github.com/apache/servicecomb-service-center/pkg/log"
"github.com/apache/servicecomb-service-center/pkg/util"
"github.com/apache/servicecomb-service-center/server/plugin/quota"
"github.com/apache/servicecomb-service-center/server/service"
pb "github.com/go-chassis/cari/discovery"
"github.com/stretchr/testify/assert"
)
func TestService_Register(t *testing.T) {
t.Run("Register service after init & install, should pass", func(t *testing.T) {
size := quota.DefaultSchemaQuota + 1
paths := make([]*pb.ServicePath, 0, size)
properties := make(map[string]string, size)
for i := 0; i < size; i++ {
s := strconv.Itoa(i) + strings.Repeat("x", 253)
paths = append(paths, &pb.ServicePath{Path: s, Property: map[string]string{s: s}})
properties[s] = s
}
request := &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "service-ms-appID",
ServiceName: "service-ms-serviceName",
Version: "32767.32767.32767.32767",
Alias: "service-ms-alias",
Level: "BACK",
Status: "UP",
Schemas: []string{"service-ms-schema"},
Paths: paths,
Properties: properties,
Framework: &pb.FrameWorkProperty{
Name: "service-ms-frameworkName",
Version: "service-ms-frameworkVersion",
},
RegisterBy: "SDK",
Timestamp: strconv.FormatInt(time.Now().Unix(), 10),
},
}
request.Service.ModTimestamp = request.Service.Timestamp
resp, err := datasource.Instance().RegisterService(getContext(), request)
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
})
t.Run("register service with same key", func(t *testing.T) {
// serviceName: some-relay-ms-service-name
// alias: sr-ms-service-name
resp, err := datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceName: "some-relay-ms-service-name",
Alias: "sr-ms-service-name",
AppId: "default",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
sameId := resp.ServiceId
// serviceName: some-relay-ms-service-name
// alias: sr1-ms-service-name
resp, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceName: "some-relay-ms-service-name",
Alias: "sr1-ms-service-name",
AppId: "default",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
// serviceName: some-relay1-ms-service-name
// alias: sr-ms-service-name
resp, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceName: "some-relay1-ms-service-name",
Alias: "sr-ms-service-name",
AppId: "default",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
// serviceName: some-relay1-ms-service-name
// alias: sr-ms-service-name
// add serviceId field: sameId
resp, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceId: sameId,
ServiceName: "some-relay1-ms-service-name",
Alias: "sr-ms-service-name",
AppId: "default",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
// serviceName: some-relay-ms-service-name
// alias: sr1-ms-service-name
// serviceId: sameId
resp, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceId: sameId,
ServiceName: "some-relay-ms-service-name",
Alias: "sr1-ms-service-name",
AppId: "default",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
// serviceName: some-relay-ms-service-name
// alias: sr1-ms-service-name
// serviceId: custom-id-ms-service-id -- different
resp, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceId: "custom-id-ms-service-id",
ServiceName: "some-relay-ms-service-name",
Alias: "sr1-ms-service-name",
AppId: "default",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ErrServiceAlreadyExists, resp.Response.GetCode())
// serviceName: some-relay1-ms-service-name
// alias: sr-ms-service-name
// serviceId: custom-id-ms-service-id -- different
resp, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceId: "custom-id-ms-service-id",
ServiceName: "some-relay1-ms-service-name",
Alias: "sr-ms-service-name",
AppId: "default",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ErrServiceAlreadyExists, resp.Response.GetCode())
})
t.Run("same serviceId,different service, can not register again,error is same as the service register twice",
func(t *testing.T) {
resp, err := datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceId: "same-serviceId-service-ms",
ServiceName: "serviceA-service-ms",
AppId: "default-service-ms",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, resp.Response.GetCode(), pb.ResponseSuccess)
// same serviceId with different service name
resp, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceId: "same-serviceId-service-ms",
ServiceName: "serviceB-service-ms",
AppId: "default-service-ms",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"xxxxxxxx",
},
Status: "UP",
},
})
assert.NotNil(t, resp)
assert.NoError(t, err)
assert.Equal(t, pb.ErrServiceAlreadyExists, resp.Response.GetCode())
})
}
func TestService_Get(t *testing.T) {
// get service test
t.Run("query all services, should pass", func(t *testing.T) {
resp, err := datasource.Instance().GetServices(getContext(), &pb.GetServicesRequest{})
assert.NoError(t, err)
assert.Greater(t, len(resp.Services), 0)
})
t.Run("get a exist service, should pass", func(t *testing.T) {
request := &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceId: "ms-service-query-id",
ServiceName: "ms-service-query",
AppId: "default",
Version: "1.0.4",
Level: "BACK",
Properties: make(map[string]string),
},
}
resp, err := datasource.Instance().RegisterService(getContext(), request)
assert.NoError(t, err)
assert.Equal(t, resp.Response.GetCode(), pb.ResponseSuccess)
// search service by serviceID
queryResp, err := datasource.Instance().GetService(getContext(), &pb.GetServiceRequest{
ServiceId: "ms-service-query-id",
})
assert.NoError(t, err)
assert.Equal(t, queryResp.Response.GetCode(), pb.ResponseSuccess)
})
t.Run("query a service by a not existed serviceId, should not pass", func(t *testing.T) {
// not exist service
resp, err := datasource.Instance().GetService(getContext(), &pb.GetServiceRequest{
ServiceId: "no-exist-service",
})
assert.NoError(t, err)
assert.Equal(t, resp.Response.GetCode(), pb.ErrServiceNotExists)
})
}
func TestService_Exist(t *testing.T) {
var (
serviceId1 string
serviceId2 string
)
t.Run("create service", func(t *testing.T) {
svc := &pb.MicroService{
Alias: "es_service_ms",
ServiceName: "exist_service_service_ms",
AppId: "exist_appId_service_ms",
Version: "1.0.0",
Level: "FRONT",
Schemas: []string{
"first_schemaId_service_ms",
},
Status: "UP",
}
resp, err := datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: svc,
})
assert.NoError(t, err)
assert.NotEqual(t, "", resp.ServiceId)
serviceId1 = resp.ServiceId
svc.ServiceId = ""
svc.Environment = pb.ENV_PROD
resp, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: svc,
})
assert.NoError(t, err)
assert.NotEqual(t, "", resp.ServiceId)
serviceId2 = resp.ServiceId
})
t.Run("check exist when service does not exist", func(t *testing.T) {
log.Info("check by querying a not exist serviceName")
resp, err := datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
AppId: "exist_appId",
ServiceName: "notExistService_service_ms",
Version: "1.0.0",
})
assert.NoError(t, err)
assert.Equal(t, pb.ErrServiceNotExists, resp.Response.GetCode())
log.Info("check by querying a not exist env")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
Environment: pb.ENV_TEST,
AppId: "exist_appId_service_ms",
ServiceName: "exist_service_service_ms",
Version: "1.0.0",
})
assert.NoError(t, err)
assert.Equal(t, pb.ErrServiceNotExists, resp.Response.GetCode())
log.Info("check by querying a not exist env with alias")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
Environment: pb.ENV_TEST,
AppId: "exist_appId_service_ms",
ServiceName: "es_service_ms",
Version: "1.0.0",
})
assert.NoError(t, err)
assert.Equal(t, pb.ErrServiceNotExists, resp.Response.GetCode())
log.Info("check by querying with a mismatching version")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
AppId: "exist_appId_service_ms",
ServiceName: "exist_service_service_ms",
Version: "2.0.0",
})
assert.NoError(t, err)
assert.Equal(t, pb.ErrServiceNotExists, resp.Response.GetCode())
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
AppId: "exist_appId_service_ms",
ServiceName: "exist_service_service_ms",
Version: "0.0.0-1.0.0",
})
assert.NoError(t, err)
assert.Equal(t, pb.ErrServiceVersionNotExists, resp.Response.GetCode())
})
t.Run("check exist when service exists", func(t *testing.T) {
log.Info("search with serviceName")
resp, err := datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
AppId: "exist_appId_service_ms",
ServiceName: "exist_service_service_ms",
Version: "1.0.0",
})
assert.NoError(t, err)
assert.Equal(t, serviceId1, resp.ServiceId)
log.Info("check with serviceName and env")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
Environment: pb.ENV_PROD,
AppId: "exist_appId_service_ms",
ServiceName: "exist_service_service_ms",
Version: "1.0.0",
})
assert.NoError(t, err)
assert.Equal(t, serviceId2, resp.ServiceId)
log.Info("check with alias")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
AppId: "exist_appId_service_ms",
ServiceName: "es_service_ms",
Version: "1.0.0",
})
assert.NoError(t, err)
assert.Equal(t, serviceId1, resp.ServiceId)
log.Info("check with alias and env")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
Environment: pb.ENV_PROD,
AppId: "exist_appId_service_ms",
ServiceName: "es_service_ms",
Version: "1.0.0",
})
assert.NoError(t, err)
assert.Equal(t, serviceId2, resp.ServiceId)
log.Info("check with latest versionRule")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
AppId: "exist_appId_service_ms",
ServiceName: "es_service_ms",
Version: "latest",
})
assert.NoError(t, err)
assert.Equal(t, serviceId1, resp.ServiceId)
log.Info("check with 1.0.0+ versionRule")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
AppId: "exist_appId_service_ms",
ServiceName: "es_service_ms",
Version: "1.0.0+",
})
assert.NoError(t, err)
assert.Equal(t, serviceId1, resp.ServiceId)
log.Info("check with range versionRule")
resp, err = datasource.Instance().ExistService(getContext(), &pb.GetExistenceRequest{
Type: service.ExistTypeMicroservice,
AppId: "exist_appId_service_ms",
ServiceName: "es_service_ms",
Version: "0.9.1-1.0.1",
})
assert.NoError(t, err)
assert.Equal(t, serviceId1, resp.ServiceId)
})
}
func TestService_Update(t *testing.T) {
var serviceId string
t.Run("create service", func(t *testing.T) {
resp, err := datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
Alias: "es_service_ms",
ServiceName: "update_prop_service_service_ms",
AppId: "update_prop_appId_service_ms",
Version: "1.0.0",
Level: "FRONT",
Status: "UP",
},
})
assert.NoError(t, err)
assert.NotNil(t, resp)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
assert.NotEqual(t, "", resp.ServiceId)
serviceId = resp.ServiceId
})
t.Run("update properties while properties not nil", func(t *testing.T) {
log.Info("shuold pass")
request := &pb.UpdateServicePropsRequest{
ServiceId: serviceId,
Properties: make(map[string]string),
}
request2 := &pb.UpdateServicePropsRequest{
ServiceId: serviceId,
Properties: make(map[string]string),
}
request.Properties["test"] = "1"
request2.Properties["k"] = "v"
resp, err := datasource.Instance().UpdateService(getContext(), request)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
resp, err = datasource.Instance().UpdateService(getContext(), request2)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
respGetService, err := datasource.Instance().GetService(getContext(), &pb.GetServiceRequest{
ServiceId: serviceId,
})
assert.NoError(t, err)
assert.Equal(t, serviceId, respGetService.Service.ServiceId)
assert.Equal(t, "", respGetService.Service.Properties["test"])
assert.Equal(t, "v", respGetService.Service.Properties["k"])
})
t.Run("update service that does not exist", func(t *testing.T) {
log.Info("it should be failed")
r := &pb.UpdateServicePropsRequest{
ServiceId: "not_exist_service_service_ms",
Properties: make(map[string]string),
}
resp, err := datasource.Instance().UpdateService(getContext(), r)
assert.NoError(t, err)
assert.NotEqual(t, pb.ResponseSuccess, resp.Response.GetCode())
})
t.Run("update service by removing the properties", func(t *testing.T) {
log.Info("it should pass")
r := &pb.UpdateServicePropsRequest{
ServiceId: serviceId,
Properties: nil,
}
resp, err := datasource.Instance().UpdateService(getContext(), r)
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
log.Info("remove properties for service with empty serviceId")
r = &pb.UpdateServicePropsRequest{
ServiceId: "",
Properties: map[string]string{},
}
resp, err = datasource.Instance().UpdateService(getContext(), r)
assert.NoError(t, err)
assert.NotEqual(t, pb.ResponseSuccess, resp.Response.GetCode())
})
}
func TestService_Delete(t *testing.T) {
var (
serviceContainInstId string
serviceNoInstId string
)
t.Run("create service & instance", func(t *testing.T) {
respCreate, err := datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceName: "delete_service_with_inst_ms",
AppId: "delete_service_ms",
Version: "1.0.0",
Level: "FRONT",
Status: "UP",
},
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, respCreate.Response.GetCode())
serviceContainInstId = respCreate.ServiceId
log.Info("attach instance")
instance := &pb.MicroServiceInstance{
ServiceId: serviceContainInstId,
Endpoints: []string{
"deleteService:127.0.0.1:8080",
},
HostName: "delete-host-ms",
Status: pb.MSI_UP,
}
respCreateIns, err := datasource.Instance().RegisterInstance(getContext(), &pb.RegisterInstanceRequest{
Instance: instance,
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, respCreateIns.Response.GetCode())
log.Info("create service without instance")
provider := &pb.MicroService{
ServiceName: "delete_service_no_inst_ms",
AppId: "delete_service_ms",
Version: "1.0.0",
Level: "FRONT",
Status: "UP",
}
respCreate, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: provider,
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, respCreate.Response.GetCode())
serviceNoInstId = respCreate.ServiceId
respCreate, err = datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
ServiceName: "delete_service_consumer_ms",
AppId: "delete_service_ms",
Version: "1.0.0",
Level: "FRONT",
Status: "UP",
},
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, respCreate.Response.GetCode())
})
t.Run("delete a service which contains instances with no force flag", func(t *testing.T) {
log.Info("should not pass")
resp, err := datasource.Instance().UnregisterService(getContext(), &pb.DeleteServiceRequest{
ServiceId: serviceContainInstId,
Force: false,
})
assert.NoError(t, err)
assert.NotEqual(t, pb.ResponseSuccess, resp.Response.GetCode())
})
t.Run("delete a service which contains instances with force flag", func(t *testing.T) {
log.Info("should pass")
resp, err := datasource.Instance().UnregisterService(getContext(), &pb.DeleteServiceRequest{
ServiceId: serviceContainInstId,
Force: true,
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
})
// todo: add delete service depended by consumer after finishing dependency management
t.Run("delete a service which depended by consumer with force flag", func(t *testing.T) {
log.Info("should pass")
resp, err := datasource.Instance().UnregisterService(getContext(), &pb.DeleteServiceRequest{
ServiceId: serviceNoInstId,
Force: true,
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
})
t.Run("delete a service with no force flag", func(t *testing.T) {
log.Info("should not pass")
resp, err := datasource.Instance().UnregisterService(getContext(), &pb.DeleteServiceRequest{
ServiceId: serviceNoInstId,
Force: false,
})
assert.NoError(t, err)
assert.NotEqual(t, pb.ResponseSuccess, resp.Response.GetCode())
})
}
func TestService_Info(t *testing.T) {
t.Run("get all services", func(t *testing.T) {
log.Info("should be passed")
resp, err := datasource.Instance().GetServicesInfo(getContext(), &pb.GetServicesInfoRequest{
Options: []string{"all"},
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
resp, err = datasource.Instance().GetServicesInfo(getContext(), &pb.GetServicesInfoRequest{
Options: []string{""},
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
resp, err = datasource.Instance().GetServicesInfo(getContext(), &pb.GetServicesInfoRequest{
Options: []string{"tags", "rules", "instances", "schemas", "statistics"},
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
resp, err = datasource.Instance().GetServicesInfo(getContext(), &pb.GetServicesInfoRequest{
Options: []string{"statistics"},
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
resp, err = datasource.Instance().GetServicesInfo(getContext(), &pb.GetServicesInfoRequest{
Options: []string{"instances"},
CountOnly: true,
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
})
}
func TestService_Detail(t *testing.T) {
var (
serviceId string
)
t.Run("execute 'get detail' operation", func(t *testing.T) {
log.Info("should be passed")
resp, err := datasource.Instance().RegisterService(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "govern_service_group",
ServiceName: "govern_service_name",
Version: "3.0.0",
Level: "FRONT",
Status: pb.MS_UP,
},
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
serviceId = resp.ServiceId
datasource.Instance().ModifySchema(getContext(), &pb.ModifySchemaRequest{
ServiceId: serviceId,
SchemaId: "schemaId",
Schema: "detail",
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
datasource.Instance().RegisterInstance(getContext(), &pb.RegisterInstanceRequest{
Instance: &pb.MicroServiceInstance{
ServiceId: serviceId,
Endpoints: []string{
"govern:127.0.0.1:8080",
},
HostName: "UT-HOST",
Status: pb.MSI_UP,
},
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
log.Info("when get invalid service detail, should be failed")
respD, err := datasource.Instance().GetServiceDetail(getContext(), &pb.GetServiceRequest{
ServiceId: "",
})
assert.NoError(t, err)
assert.NotEqual(t, pb.ResponseSuccess, respD.Response.GetCode())
log.Info("when get a service detail, should be passed")
respGetServiceDetail, err := datasource.Instance().GetServiceDetail(getContext(), &pb.GetServiceRequest{
ServiceId: serviceId,
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, respGetServiceDetail.Response.GetCode())
respDelete, err := datasource.Instance().UnregisterService(getContext(), &pb.DeleteServiceRequest{
ServiceId: serviceId,
Force: true,
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, respDelete.Response.GetCode())
respGetServiceDetail, err = datasource.Instance().GetServiceDetail(getContext(), &pb.GetServiceRequest{
ServiceId: serviceId,
})
assert.NoError(t, err)
assert.NotEqual(t, pb.ResponseSuccess, respGetServiceDetail.Response.GetCode())
})
}
func TestApplication_Get(t *testing.T) {
t.Run("execute 'get apps' operation", func(t *testing.T) {
log.Info("when request is valid, should be passed")
resp, err := datasource.Instance().GetApplications(getContext(), &pb.GetAppsRequest{})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
resp, err = datasource.Instance().GetApplications(getContext(), &pb.GetAppsRequest{
Environment: pb.ENV_ACCEPT,
})
assert.NoError(t, err)
assert.Equal(t, pb.ResponseSuccess, resp.Response.GetCode())
})
}
func getContext() context.Context {
return util.WithNoCache(util.SetDomainProject(context.Background(), "default", "default"))
}