// NewSubscription returns a new *common.Subscription for receiving events from // this client. func (c *Client) NewSubscription() (*common.Subscription, error) { sub := common.NewSubscription(c) c.Lock() c.subscriptions[sub.ID()] = sub c.Unlock() return sub, nil }
// NewSubscription returns a new *common.Subscription for receiving events from // this device. func (d *Device) NewSubscription() (*common.Subscription, error) { sub := common.NewSubscription(d) d.Lock() d.subscriptions[sub.ID()] = sub d.Unlock() return sub, nil }
// NewSubscription returns a new *common.Subscription for receiving events from // this group. func (g *Group) NewSubscription() (*common.Subscription, error) { sub := common.NewSubscription(g) g.Lock() g.subscriptions[sub.ID()] = sub g.Unlock() return sub, nil }
// NewSubscription returns a new *common.Subscription for receiving events from // this protocol. func (p *V2) NewSubscription() (*common.Subscription, error) { if err := p.init(); err != nil { return nil, err } sub := common.NewSubscription(p) p.Lock() p.subscriptions[sub.ID()] = sub p.Unlock() return sub, nil }
locationID = `mockLocationID` locationUnknownID = `unknownLocationID` locationLabel = `mockLocation` locationUnknownLabel = `unknownLocation` groupID = `mockGroupID` groupUnknownID = `unknownGroupID` groupLabel = `mockGroup` groupUnknownLabel = `unknownGroup` ) It("should send discovery to the protocol on NewClient", func() { var err error mockProtocol = new(mocks.Protocol) mockProtocol.On(`SetClient`, mock.Anything).Return() mockProtocol.SubscriptionTarget.On(`NewSubscription`).Return(common.NewSubscription(mockProtocol), nil) mockProtocol.On(`Discover`).Return(nil).Once() client, err = NewClient(mockProtocol) Expect(client).To(BeAssignableToTypeOf(new(Client))) Expect(err).NotTo(HaveOccurred()) }) Describe("Client", func() { BeforeEach(func() { mockProtocol = new(mocks.Protocol) mockProtocol.On(`SetClient`, mock.Anything).Return() mockProtocol.SubscriptionTarget.On(`NewSubscription`).Return(common.NewSubscription(mockProtocol), nil) mockProtocol.On(`Discover`).Return(nil).Once() client, _ = NewClient(mockProtocol) client.SetTimeout(timeout)
locationUnknownID = `unknownLocationID` locationLabel = `mockLocation` locationUnknownLabel = `unknownLocation` groupID = `mockGroupID` groupUnknownID = `unknownGroupID` groupLabel = `mockGroup` groupUnknownLabel = `unknownGroup` ) It("should send discovery to the protocol on NewClient", func() { var err error mockProtocol = new(mocks.Protocol) mockProtocol.On(`SetTimeout`, mock.AnythingOfType("*time.Duration")).Return().Once() mockProtocol.On(`SetRetryInterval`, mock.AnythingOfType("*time.Duration")).Return().Once() mockProtocol.On(`SetClient`, mock.Anything).Return().Once() mockProtocol.SubscriptionTarget.On(`NewSubscription`).Return(common.NewSubscription(mockProtocol), nil).Once() mockProtocol.On(`Discover`).Return(nil).Once() client, err = NewClient(mockProtocol) Expect(client).To(BeAssignableToTypeOf(new(Client))) Expect(err).NotTo(HaveOccurred()) }) Describe("Client", func() { BeforeEach(func() { mockProtocol = new(mocks.Protocol) protocolSubscription = common.NewSubscription(mockProtocol) mockProtocol.SubscriptionTarget.On(`NewSubscription`).Return(protocolSubscription, nil).Once() mockProtocol.On(`SetClient`, mock.Anything).Return().Once() mockProtocol.On(`Discover`).Return(nil).Once() mockProtocol.On(`SetTimeout`, mock.AnythingOfType("*time.Duration")).Return().Once()