File: events_test.go

package info (click to toggle)
coyim 0.3.7-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 4,064 kB
  • ctags: 4,528
  • sloc: xml: 5,120; sh: 328; python: 286; makefile: 235; ruby: 51
file content (36 lines) | stat: -rw-r--r-- 749 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package session

import (
	"time"

	"github.com/twstrike/coyim/session/events"

	. "gopkg.in/check.v1"
)

type SessionEventSuite struct{}

var _ = Suite(&SessionEventSuite{})

func (s *SessionEventSuite) Test_publish_notifiesWithEvents(c *C) {
	observer := make(chan interface{}, 1)

	session := &session{}
	session.Subscribe(observer)
	session.publish(events.Disconnected)

	select {
	case e := <-observer:
		c.Assert(e, DeepEquals, events.Event{
			Type:    events.Disconnected,
			Session: session,
		})
	case <-time.After(1 * time.Millisecond):
		c.Error("Did not receive expected notification")
	}
}

func (s *SessionEventSuite) Test_publish_doesNotBlockIfThereIsNoSubscriber(c *C) {
	session := &session{}
	session.publish(events.Connected)
}