blob: 0603d4c8e690d8e8dc6b6af64bc299f7be24e249 [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 service_test
import (
pb "github.com/apache/servicecomb-service-center/server/core/proto"
scerr "github.com/apache/servicecomb-service-center/server/error"
"github.com/apache/servicecomb-service-center/server/plugin/pkg/quota"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"strconv"
)
var _ = Describe("'Rule' service", func() {
Describe("execute 'create' operartion", func() {
var (
serviceId1 string
serviceId2 string
)
It("should be passed", func() {
respCreateService, err := serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "create_rule_group",
ServiceName: "create_rule_service",
Version: "1.0.0",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreateService.Response.Code).To(Equal(pb.Response_SUCCESS))
serviceId1 = respCreateService.ServiceId
respCreateService, err = serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "create_rule_group",
ServiceName: "create_rule_service",
Version: "1.0.1",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreateService.Response.Code).To(Equal(pb.Response_SUCCESS))
serviceId2 = respCreateService.ServiceId
})
Context("when request is invalid", func() {
It("should be failed", func() {
By("attribute is empty")
respAddRule, err := serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId1,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "",
Pattern: "Test*",
Description: "test BLACK",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("attribute is tag but name is invalid")
respAddRule, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId1,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "tag_@34",
Pattern: "Test*",
Description: "test BLACK",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("attribute is a invalid field name")
respAddRule, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId1,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "xxx",
Pattern: "Test*",
Description: "test BLACK",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("service does not exist")
respAddRule, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: "notexistservice",
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test white",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("service id is empty")
respAddRule, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: "",
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "",
Pattern: "Test*",
Description: "test white",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("rules is nil")
respAddRule, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId1,
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(scerr.ErrInvalidParams))
})
})
Context("when request is valid", func() {
It("should be passed", func() {
By("create a new black list")
respAddRule, err := serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId1,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test black",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(pb.Response_SUCCESS))
ruleId := respAddRule.RuleIds[0]
Expect(ruleId).ToNot(Equal(""))
By("create the black list again")
respAddRule, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId1,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test change black",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(pb.Response_SUCCESS))
Expect(len(respAddRule.RuleIds)).To(Equal(0)) // no changed
By("create a new white list when black list already exists")
respAddRule, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId1,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "WHITE",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test white",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
})
})
Context("when create rule out of gauge", func() {
It("should be failed", func() {
size := quota.DefaultRuleQuota + 1
rules := make([]*pb.AddOrUpdateServiceRule, 0, size)
for i := 0; i < size; i++ {
rules = append(rules, &pb.AddOrUpdateServiceRule{
RuleType: "BLACK",
Attribute: "ServiceName",
Pattern: strconv.Itoa(i),
Description: "test white",
})
}
resp, err := serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId2,
Rules: rules,
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(scerr.ErrInvalidParams))
resp, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId2,
Rules: rules[:size-1],
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(pb.Response_SUCCESS))
resp, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId2,
Rules: rules[size-1:],
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(scerr.ErrNotEnoughQuota))
})
})
})
Describe("execute 'get' operartion", func() {
var (
serviceId string
ruleId string
)
It("should be passed", func() {
respCreateService, err := serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "get_rule_group",
ServiceName: "get_rule_service",
Version: "1.0.0",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreateService.Response.Code).To(Equal(pb.Response_SUCCESS))
serviceId = respCreateService.ServiceId
respAddRule, err := serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test BLACK",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(pb.Response_SUCCESS))
ruleId = respAddRule.RuleIds[0]
Expect(ruleId).ToNot(Equal(""))
})
Context("when request is invalid", func() {
It("should be failed", func() {
By("service id is invalid")
respGetRule, err := serviceResource.GetRule(getContext(), &pb.GetServiceRulesRequest{
ServiceId: "",
})
Expect(err).To(BeNil())
Expect(respGetRule.Response.Code).To(Equal(scerr.ErrInvalidParams))
respGetRule, err = serviceResource.GetRule(getContext(), &pb.GetServiceRulesRequest{
ServiceId: TOO_LONG_SERVICEID,
})
Expect(err).To(BeNil())
Expect(respGetRule.Response.Code).To(Equal(scerr.ErrInvalidParams))
By("service does not exist")
respGetRule, err = serviceResource.GetRule(getContext(), &pb.GetServiceRulesRequest{
ServiceId: "notexist",
})
Expect(err).To(BeNil())
Expect(respGetRule.Response.Code).To(Equal(scerr.ErrServiceNotExists))
})
})
Context("when request is valid", func() {
It("should be passed", func() {
respGetRule, err := serviceResource.GetRule(getContext(), &pb.GetServiceRulesRequest{
ServiceId: serviceId,
})
Expect(err).To(BeNil())
Expect(respGetRule.Response.Code).To(Equal(pb.Response_SUCCESS))
Expect(respGetRule.Rules[0].RuleId).To(Equal(ruleId))
})
})
})
Describe("execute 'update' operartion", func() {
var (
serviceId string
ruleId string
)
It("should be passed", func() {
respCreateService, err := serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "update_rule_group",
ServiceName: "update_rule_service",
Version: "1.0.0",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreateService.Response.Code).To(Equal(pb.Response_SUCCESS))
serviceId = respCreateService.ServiceId
respAddRule, err := serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test BLACK",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(pb.Response_SUCCESS))
ruleId = respAddRule.RuleIds[0]
Expect(ruleId).ToNot(Equal(""))
})
Context("when request is invalid", func() {
It("should be failed", func() {
rule := &pb.AddOrUpdateServiceRule{
RuleType: "BLACK",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test BLACK update",
}
By("service id is empty")
respAddRule, err := serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: "",
RuleId: ruleId,
Rule: rule,
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("service does not exist")
respAddRule, err = serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: "notexistservice",
RuleId: ruleId,
Rule: rule,
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("rule id is empty")
respAddRule, err = serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: serviceId,
RuleId: "",
Rule: rule,
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("rule does not exist")
respAddRule, err = serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: serviceId,
RuleId: "notexistrule",
Rule: rule,
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("rule type is invalid")
respAddRule, err = serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: serviceId,
RuleId: ruleId,
Rule: &pb.AddOrUpdateServiceRule{
RuleType: "notType",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test BLACK update",
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("attribute is a invalid field name")
respAddRule, err = serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: serviceId,
RuleId: ruleId,
Rule: &pb.AddOrUpdateServiceRule{
RuleType: "BLACK",
Attribute: "noattribute",
Pattern: "Test*",
Description: "test BLACK update",
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("attribute is tag but name is invalid")
respAddRule, err = serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: serviceId,
RuleId: ruleId,
Rule: &pb.AddOrUpdateServiceRule{
RuleType: "BLACK",
Attribute: "tag_@34",
Pattern: "Test*",
Description: "test BLACK update",
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
By("change rule type")
respAddRule, err = serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: serviceId,
RuleId: ruleId,
Rule: &pb.AddOrUpdateServiceRule{
RuleType: "WHITE",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test white update",
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).ToNot(Equal(pb.Response_SUCCESS))
})
})
Context("when request is valid", func() {
It("should be passed", func() {
respAddRule, err := serviceResource.UpdateRule(getContext(), &pb.UpdateServiceRuleRequest{
ServiceId: serviceId,
RuleId: ruleId,
Rule: &pb.AddOrUpdateServiceRule{
RuleType: "BLACK",
Attribute: "AppId",
Pattern: "Test*",
Description: "test white update",
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(pb.Response_SUCCESS))
})
})
})
Describe("execute 'delete' operartion", func() {
var (
serviceId string
ruleId string
)
It("should be passed", func() {
respCreateService, err := serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "delete_rule_group",
ServiceName: "delete_rule_service",
Version: "1.0.0",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreateService.Response.Code).To(Equal(pb.Response_SUCCESS))
serviceId = respCreateService.ServiceId
respAddRule, err := serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: serviceId,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "ServiceName",
Pattern: "Test*",
Description: "test BLACK",
},
},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(pb.Response_SUCCESS))
ruleId = respAddRule.RuleIds[0]
Expect(ruleId).ToNot(Equal(""))
})
Context("when request is invalid", func() {
It("should be failed", func() {
By("service id is empty")
respAddRule, err := serviceResource.DeleteRule(getContext(), &pb.DeleteServiceRulesRequest{
ServiceId: "",
RuleIds: []string{"1000000"},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(scerr.ErrInvalidParams))
By("service does not exist")
respAddRule, err = serviceResource.DeleteRule(getContext(), &pb.DeleteServiceRulesRequest{
ServiceId: "notexistservice",
RuleIds: []string{"1000000"},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(scerr.ErrServiceNotExists))
By("rule does not exist")
respAddRule, err = serviceResource.DeleteRule(getContext(), &pb.DeleteServiceRulesRequest{
ServiceId: serviceId,
RuleIds: []string{"notexistrule"},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(scerr.ErrRuleNotExists))
By("rules is empty")
respAddRule, err = serviceResource.DeleteRule(getContext(), &pb.DeleteServiceRulesRequest{
ServiceId: serviceId,
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(scerr.ErrInvalidParams))
By("rules is invalid")
var arr []string
for i := 0; i < quota.DefaultRuleQuota+1; i++ {
arr = append(arr, strconv.Itoa(i))
}
respAddRule, err = serviceResource.DeleteRule(getContext(), &pb.DeleteServiceRulesRequest{
ServiceId: serviceId,
RuleIds: arr,
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(scerr.ErrInvalidParams))
})
})
Context("when request is valid", func() {
It("should be passed", func() {
respAddRule, err := serviceResource.DeleteRule(getContext(), &pb.DeleteServiceRulesRequest{
ServiceId: serviceId,
RuleIds: []string{ruleId},
})
Expect(err).To(BeNil())
Expect(respAddRule.Response.Code).To(Equal(pb.Response_SUCCESS))
respGetRule, err := serviceResource.GetRule(getContext(), &pb.GetServiceRulesRequest{
ServiceId: serviceId,
})
Expect(err).To(BeNil())
Expect(respGetRule.Response.Code).To(Equal(pb.Response_SUCCESS))
Expect(len(respGetRule.Rules)).To(Equal(0))
})
})
})
Describe("execute 'permission' operartion", func() {
var (
consumerVersion string
consumerTag string
providerBlack string
providerWhite string
)
It("should be passed", func() {
respCreate, err := serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "query_instance_tag",
ServiceName: "query_instance_version_consumer",
Version: "1.0.0",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreate.Response.Code).To(Equal(pb.Response_SUCCESS))
consumerVersion = respCreate.ServiceId
respCreate, err = serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "query_instance_tag",
ServiceName: "query_instance_tag_service",
Version: "1.0.2",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreate.Response.Code).To(Equal(pb.Response_SUCCESS))
providerBlack = respCreate.ServiceId
resp, err := serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: providerBlack,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "BLACK",
Attribute: "Version",
Pattern: "1.0.0",
},
{
RuleType: "BLACK",
Attribute: "tag_a",
Pattern: "b",
},
},
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(pb.Response_SUCCESS))
respCreate, err = serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "query_instance_tag",
ServiceName: "query_instance_tag_service",
Version: "1.0.3",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreate.Response.Code).To(Equal(pb.Response_SUCCESS))
providerWhite = respCreate.ServiceId
resp, err = serviceResource.AddRule(getContext(), &pb.AddServiceRulesRequest{
ServiceId: providerWhite,
Rules: []*pb.AddOrUpdateServiceRule{
{
RuleType: "WHITE",
Attribute: "Version",
Pattern: "1.0.0",
},
{
RuleType: "WHITE",
Attribute: "tag_a",
Pattern: "b",
},
},
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(pb.Response_SUCCESS))
respCreate, err = serviceResource.Create(getContext(), &pb.CreateServiceRequest{
Service: &pb.MicroService{
AppId: "query_instance_tag",
ServiceName: "query_instance_tag_consumer",
Version: "1.0.4",
Level: "FRONT",
Status: pb.MS_UP,
},
})
Expect(err).To(BeNil())
Expect(respCreate.Response.Code).To(Equal(pb.Response_SUCCESS))
consumerTag = respCreate.ServiceId
resp1, err := serviceResource.AddTags(getContext(), &pb.AddServiceTagsRequest{
ServiceId: consumerTag,
Tags: map[string]string{"a": "b"},
})
Expect(err).To(BeNil())
Expect(resp1.Response.Code).To(Equal(pb.Response_SUCCESS))
})
Context("when query instances", func() {
It("should be failed", func() {
By("consumer version in black list")
resp, err := instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{
ConsumerServiceId: consumerVersion,
ProviderServiceId: providerBlack,
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(scerr.ErrPermissionDeny))
By("consumer tag in black list")
resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{
ConsumerServiceId: consumerTag,
ProviderServiceId: providerBlack,
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(scerr.ErrPermissionDeny))
By("find should return 200 even if consumer permission deny")
respFind, err := instanceResource.Find(getContext(), &pb.FindInstancesRequest{
ConsumerServiceId: consumerVersion,
AppId: "query_instance_tag",
ServiceName: "query_instance_tag_service",
VersionRule: "0+",
})
Expect(err).To(BeNil())
Expect(respFind.Response.Code).To(Equal(pb.Response_SUCCESS))
Expect(len(respFind.Instances)).To(Equal(0))
respFind, err = instanceResource.Find(getContext(), &pb.FindInstancesRequest{
ConsumerServiceId: consumerTag,
AppId: "query_instance_tag",
ServiceName: "query_instance_tag_service",
VersionRule: "0+",
})
Expect(err).To(BeNil())
Expect(respFind.Response.Code).To(Equal(pb.Response_SUCCESS))
Expect(len(respFind.Instances)).To(Equal(0))
By("consumer not in black list")
resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{
ConsumerServiceId: providerWhite,
ProviderServiceId: providerBlack,
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(pb.Response_SUCCESS))
By("consumer not in white list")
resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{
ConsumerServiceId: providerBlack,
ProviderServiceId: providerWhite,
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(scerr.ErrPermissionDeny))
By("consumer version in white list")
resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{
ConsumerServiceId: consumerVersion,
ProviderServiceId: providerWhite,
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(pb.Response_SUCCESS))
By("consumer tag in white list")
resp, err = instanceResource.GetInstances(getContext(), &pb.GetInstancesRequest{
ConsumerServiceId: consumerTag,
ProviderServiceId: providerWhite,
})
Expect(err).To(BeNil())
Expect(resp.Response.Code).To(Equal(pb.Response_SUCCESS))
})
})
})
})