48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package ca_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// TestGetCtrlNotFound covers the resolve-failure branch of GetCtrl.
|
|
func TestGetCtrlNotFound(t *testing.T) {
|
|
srv := newTestServer(t)
|
|
cli := newTestClient(t, srv)
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
|
|
defer cancel()
|
|
|
|
if _, err := cli.GetCtrl(ctx, "NO:SUCH:PV"); err == nil {
|
|
t.Fatal("GetCtrl on missing PV: want error")
|
|
}
|
|
}
|
|
|
|
// TestPutNotFound covers the resolve-failure branch of Put.
|
|
func TestPutNotFound(t *testing.T) {
|
|
srv := newTestServer(t)
|
|
cli := newTestClient(t, srv)
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
|
|
defer cancel()
|
|
|
|
if err := cli.Put(ctx, "NO:SUCH:PV", 1.0); err == nil {
|
|
t.Fatal("Put on missing PV: want error")
|
|
}
|
|
}
|
|
|
|
// TestPutUncoercibleValue covers the encodePut-failure branch of Put: the PV
|
|
// resolves but the supplied value cannot be coerced to the native type.
|
|
func TestPutUncoercibleValue(t *testing.T) {
|
|
srv := newTestServer(t)
|
|
cli := newTestClient(t, srv)
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
defer cancel()
|
|
|
|
if err := cli.Put(ctx, "TEST:DOUBLE", []int{1, 2, 3}); err == nil {
|
|
t.Fatal("Put with uncoercible value: want error")
|
|
}
|
|
}
|