// 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") } }