Describe("#KeepAlive", func() { It("should send a request when the ticker ticks", func() { ticker := make(chan time.Time) session.KeepAliveTicker.C = ticker stopChan := session.KeepAlive() Consistently(mockSession.SendRequestCallCount).Should(Equal(0)) ticker <- time.Time{} Eventually(mockSession.SendRequestCallCount).Should(Equal(1)) ticker <- time.Time{} Eventually(mockSession.SendRequestCallCount).Should(Equal(2)) stopChan <- struct{}{} go func() { ticker <- time.Time{} }() Consistently(mockSession.SendRequestCallCount).Should(Equal(2)) name, reply, payload := mockSession.SendRequestArgsForCall(0) Expect(name).To(Equal("*****@*****.**")) Expect(reply).To(BeTrue()) Expect(payload).To(BeNil()) }) }) Describe("#Resize", func() { It("should send a window-change request", func() { Expect(session.Resize(100, 200)).To(Succeed()) Expect(mockSession.SendRequestCallCount()).To(Equal(1)) name, reply, payload := mockSession.SendRequestArgsForCall(0) Expect(name).To(Equal("window-change")) Expect(reply).To(BeFalse()) Expect(payload).To(Equal([]byte{0, 0, 0, 100, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0})) })