package dinet import ( "errors" "testing" "github.com/stretchr/testify/require" "src.dualinventive.com/go/lib/dilog" ) // ParentDeviceMock implements ParentDevice which is useful for unit testing type ParentDeviceMock struct { logger dilog.Logger conn Conn router *Router } // NewParentDeviceMock creates a new ParentDeviceMock using a test transport func NewParentDeviceMock(t *testing.T) (*ParentDeviceMock, *TestTransport) { logger := dilog.NewTestLogger(t) conn, err := NewDeviceConn(TransportTest) require.Nil(t, err) err = conn.Connect("") require.Nil(t, err) rtr, err := NewRouter(logger, conn) require.Nil(t, err) return &ParentDeviceMock{ logger: logger, conn: conn, router: rtr, }, conn.(*TestTransport) } // Close doesn't do anything func (t *ParentDeviceMock) Close() error { return nil } // UID returns a static test device UID func (t *ParentDeviceMock) UID() string { return "fe020000000000000000f403433e1a52" } // RegisterUID doesn't do anything func (t *ParentDeviceMock) RegisterUID(uid string) error { return nil } // UnregisterUID doesn't do anything func (t *ParentDeviceMock) UnregisterUID(uid string) error { return nil } // RegisterDevice doesn't do anything func (t *ParentDeviceMock) RegisterDevice(device Device) error { return nil } // UnregisterDevice doesn't do anything func (t *ParentDeviceMock) UnregisterDevice(uid string) error { return nil } // Router returns a router func (t *ParentDeviceMock) Router() *Router { return t.router } // Search doesn't do anything func (t *ParentDeviceMock) Search(uid string) (Device, error) { return nil, errors.New("not found") } // Logger returns a test logger func (t *ParentDeviceMock) Logger() dilog.Logger { return t.logger }