You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.1 KiB
54 lines
1.1 KiB
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Copyright 2012 The Gorilla Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package rpc
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
type Service1Request struct {
|
|
A int
|
|
B int
|
|
}
|
|
|
|
type Service1Response struct {
|
|
Result int
|
|
}
|
|
|
|
type Service1 struct {
|
|
}
|
|
|
|
func (t *Service1) Multiply(r *http.Request, req *Service1Request, res *Service1Response) error {
|
|
res.Result = req.A * req.B
|
|
return nil
|
|
}
|
|
|
|
type Service2 struct {
|
|
}
|
|
|
|
func TestRegisterService(t *testing.T) {
|
|
var err error
|
|
s := NewServer()
|
|
service1 := new(Service1)
|
|
service2 := new(Service2)
|
|
|
|
// Inferred name.
|
|
err = s.RegisterService(service1, "")
|
|
if err != nil || !s.HasMethod("Service1.Multiply") {
|
|
t.Errorf("Expected to be registered: Service1.Multiply")
|
|
}
|
|
// Provided name.
|
|
err = s.RegisterService(service1, "Foo")
|
|
if err != nil || !s.HasMethod("Foo.Multiply") {
|
|
t.Errorf("Expected to be registered: Foo.Multiply")
|
|
}
|
|
// No methods.
|
|
err = s.RegisterService(service2, "")
|
|
if err == nil {
|
|
t.Errorf("Expected error on service2")
|
|
}
|
|
}
|
|
|