github.com/google/cloudprober@v0.11.3/rds/server/server_test.go (about)

     1  package server
     2  
     3  import (
     4  	"context"
     5  	"reflect"
     6  	"testing"
     7  
     8  	"github.com/golang/protobuf/proto"
     9  	pb "github.com/google/cloudprober/rds/proto"
    10  )
    11  
    12  type testProvider struct {
    13  	resources []*pb.Resource
    14  }
    15  
    16  func (tp *testProvider) ListResources(*pb.ListResourcesRequest) (*pb.ListResourcesResponse, error) {
    17  	return &pb.ListResourcesResponse{
    18  		Resources: tp.resources,
    19  	}, nil
    20  }
    21  
    22  func TestListResources(t *testing.T) {
    23  	testResources := []*pb.Resource{
    24  		&pb.Resource{
    25  			Name: proto.String("testR1"),
    26  			Ip:   proto.String("IP1"),
    27  		},
    28  		&pb.Resource{
    29  			Name: proto.String("testR2"),
    30  			Ip:   proto.String("IP2"),
    31  		},
    32  	}
    33  	srv := &Server{
    34  		providers: map[string]Provider{
    35  			"test_provider": &testProvider{
    36  				resources: testResources,
    37  			},
    38  		},
    39  	}
    40  	res, err := srv.ListResources(context.Background(), &pb.ListResourcesRequest{
    41  		Provider:     proto.String("test_provider"),
    42  		ResourcePath: proto.String("rp"),
    43  	})
    44  	if err != nil {
    45  		t.Errorf("Got unexpected error while listing test resources: %v", err)
    46  	}
    47  	if !reflect.DeepEqual(res.Resources, testResources) {
    48  		t.Errorf("Didn't get expected resource. Got=%v, Want=%v", res.Resources, testResources)
    49  	}
    50  }