~chipaca/ubuntu-push/session-state-lock

« back to all changes in this revision

Viewing changes to client/client_test.go

  • Committer: John R. Lenton
  • Date: 2015-02-13 12:23:58 UTC
  • Revision ID: jlenton@gmail.com-20150213122358-nuxzmnfy3an3uhvd
use fake sessions in client tests more

Show diffs side-by-side

added added

removed removed

Lines of Context:
535
535
/*****************************************************************
536
536
    derivePollerSetup tests
537
537
******************************************************************/
538
 
type dummySession struct{}
 
538
type derivePollerSession struct{}
539
539
 
540
 
func (*dummySession) Close()                            {}
541
 
func (*dummySession) AutoRedial(doneCh chan uint32)     {}
542
 
func (*dummySession) ClearCookie()                      {}
543
 
func (*dummySession) Dial() error                       { return nil }
544
 
func (*dummySession) State() session.ClientSessionState { return session.Unknown }
 
540
func (s *derivePollerSession) Close()                            {}
 
541
func (s *derivePollerSession) AutoRedial(ch chan uint32)         {}
 
542
func (s *derivePollerSession) ClearCookie()                      {}
 
543
func (s *derivePollerSession) State() session.ClientSessionState { return session.Unknown }
545
544
 
546
545
func (cs *clientSuite) TestDerivePollerSetup(c *C) {
547
546
        cs.writeTestConfig(map[string]interface{}{})
548
547
        cli := NewPushClient(cs.configPath, cs.leveldbPath)
549
 
        cli.session = new(dummySession)
 
548
        cli.session = new(derivePollerSession)
550
549
        err := cli.configure()
551
550
        c.Assert(err, IsNil)
552
551
        expected := &poller.PollerSetup{
759
758
    handleConnState tests
760
759
******************************************************************/
761
760
 
 
761
type handleConnStateSession struct {
 
762
        connected bool
 
763
}
 
764
 
 
765
func (s *handleConnStateSession) AutoRedial(ch chan uint32)         { s.connected = true }
 
766
func (s *handleConnStateSession) Close()                            { s.connected = false }
 
767
func (s *handleConnStateSession) ClearCookie()                      {}
 
768
func (s *handleConnStateSession) State() session.ClientSessionState { return session.Unknown }
 
769
 
762
770
func (cs *clientSuite) TestHandleConnStateD2C(c *C) {
763
771
        cli := NewPushClient(cs.configPath, cs.leveldbPath)
764
772
        cli.log = cs.log
765
 
        cli.systemImageInfo = siInfoRes
766
 
        c.Assert(cli.initSessionAndPoller(), IsNil)
 
773
        sess := &handleConnStateSession{connected: false}
 
774
        cli.session = sess
767
775
 
768
776
        c.Assert(cli.hasConnectivity, Equals, false)
769
 
        defer cli.session.Close()
770
777
        cli.handleConnState(true)
771
778
        c.Check(cli.hasConnectivity, Equals, true)
772
 
        c.Assert(cli.session, NotNil)
 
779
        c.Check(sess.connected, Equals, true)
773
780
}
774
781
 
775
782
func (cs *clientSuite) TestHandleConnStateSame(c *C) {
789
796
func (cs *clientSuite) TestHandleConnStateC2D(c *C) {
790
797
        cli := NewPushClient(cs.configPath, cs.leveldbPath)
791
798
        cli.log = cs.log
792
 
        cli.session, _ = session.NewSession(cli.config.Addr, cli.deriveSessionConfig(nil), cli.deviceId, seenstate.NewSeenState, cs.log)
793
 
        cli.session.Dial()
 
799
        sess := &handleConnStateSession{connected: true}
 
800
        cli.session = sess
794
801
        cli.hasConnectivity = true
795
802
 
796
 
        // cli.session.State() will be "Error" here, for now at least
797
 
        c.Check(cli.session.State(), Not(Equals), session.Disconnected)
798
803
        cli.handleConnState(false)
799
 
        c.Check(cli.session.State(), Equals, session.Disconnected)
 
804
        c.Check(sess.connected, Equals, false)
800
805
}
801
806
 
802
807
func (cs *clientSuite) TestHandleConnStateC2DPending(c *C) {