blob: 5a5ed63e05901a82bef0ca7f8f528daa93db1e08 [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 grpc
import (
"context"
"testing"
)
import (
"github.com/stretchr/testify/assert"
)
import (
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/protocol/grpc/internal/helloworld"
"dubbo.apache.org/dubbo-go/v3/protocol/grpc/internal/routeguide"
)
func TestUnaryClient(t *testing.T) {
server, err := helloworld.NewServer("127.0.0.1:30000")
assert.NoError(t, err)
go server.Start()
defer server.Stop()
url, err := common.NewURL(helloworldURL)
assert.NoError(t, err)
cli, err := NewClient(url)
assert.NoError(t, err)
impl := &helloworld.GreeterClientImpl{}
client := impl.GetDubboStub(cli.ClientConn)
result, err := client.SayHello(context.Background(), &helloworld.HelloRequest{Name: "request name"})
assert.NoError(t, err)
assert.Equal(t, &helloworld.HelloReply{Message: "Hello request name"}, result)
}
func TestStreamClient(t *testing.T) {
server, err := routeguide.NewServer("127.0.0.1:30000")
assert.NoError(t, err)
go server.Start()
defer server.Stop()
url, err := common.NewURL(routeguideURL)
assert.NoError(t, err)
cli, err := NewClient(url)
assert.NoError(t, err)
impl := &routeguide.RouteGuideClientImpl{}
client := impl.GetDubboStub(cli.ClientConn)
result, err := client.GetFeature(context.Background(), &routeguide.Point{Latitude: 409146138, Longitude: -746188906})
assert.NoError(t, err)
assert.Equal(t, &routeguide.Feature{
Name: "Berkshire Valley Management Area Trail, Jefferson, NJ, USA",
Location: &routeguide.Point{Latitude: 409146138, Longitude: -746188906},
}, result)
listFeaturesStream, err := client.ListFeatures(context.Background(), &routeguide.Rectangle{
Lo: &routeguide.Point{Latitude: 400000000, Longitude: -750000000},
Hi: &routeguide.Point{Latitude: 420000000, Longitude: -730000000},
})
assert.NoError(t, err)
routeguide.PrintFeatures(listFeaturesStream)
recordRouteStream, err := client.RecordRoute(context.Background())
assert.NoError(t, err)
routeguide.RunRecordRoute(recordRouteStream)
routeChatStream, err := client.RouteChat(context.Background())
assert.NoError(t, err)
routeguide.RunRouteChat(routeChatStream)
}