diff options
author | Wataru Ishida <ishida.wataru@lab.ntt.co.jp> | 2016-11-16 09:41:10 -0500 |
---|---|---|
committer | Wataru Ishida <ishida.wataru@lab.ntt.co.jp> | 2016-11-16 09:41:10 -0500 |
commit | 285d4165acf04d8fa8b3e300282f40b2c11a0588 (patch) | |
tree | 6574906221f714abb4e4acb3c2ebcce134160136 | |
parent | e6f109a72c6e5b1056f82a840ce5af30188ce434 (diff) |
client: fix bug of GetNeighbor()
also add a unit test
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
-rw-r--r-- | client/client.go | 3 | ||||
-rw-r--r-- | client/client_test.go | 53 |
2 files changed, 56 insertions, 0 deletions
diff --git a/client/client.go b/client/client.go index 734e7ec4..a2107637 100644 --- a/client/client.go +++ b/client/client.go @@ -143,6 +143,9 @@ func (cli *GoBGPClient) GetNeighbor(name string) (*config.Neighbor, error) { if err != nil { return nil, err } + if len(ns) == 0 { + return nil, fmt.Errorf("not found neighbor %s", name) + } return ns[0], nil } diff --git a/client/client_test.go b/client/client_test.go new file mode 100644 index 00000000..9825f91b --- /dev/null +++ b/client/client_test.go @@ -0,0 +1,53 @@ +// Copyright (C) 2016 Nippon Telegraph and Telephone Corporation. +// +// Licensed 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 client + +import ( + "testing" + + api "github.com/osrg/gobgp/api" + "github.com/osrg/gobgp/config" + "github.com/osrg/gobgp/server" + "github.com/stretchr/testify/assert" +) + +func TestGetNeighbor(test *testing.T) { + assert := assert.New(test) + s := server.NewBgpServer() + go s.Serve() + g := api.NewGrpcServer(s, ":50051") + go g.Serve() + cli, err := NewGoBGPClient("") + err = cli.StartServer(&config.Global{ + Config: config.GlobalConfig{ + As: 1, + RouterId: "1.1.1.1", + Port: 1790, + }, + }) + assert.Nil(err) + err = cli.AddNeighbor(&config.Neighbor{ + Config: config.NeighborConfig{ + NeighborAddress: "10.0.0.1", + PeerAs: 2, + }, + }) + assert.Nil(err) + _, err = cli.GetNeighbor("10.0.0.1") + assert.Nil(err) + _, err = cli.GetNeighbor("10.0.0.2") + assert.Equal(err.Error(), "not found neighbor 10.0.0.2") +} |