예제 #1
0
			entry := findSession(session.ID(), entries)
			Expect(entry).NotTo(BeNil())
			Expect(entry.Name).To(Equal("a-session"))
			Expect(entry.ID).To(Equal(session.ID()))
			Expect(entry.Behavior).To(Equal(api.SessionBehaviorDelete))
			Expect(entry.TTL).To(Equal("20s"))
			Expect(entry.LockDelay).To(BeZero())
		})

		It("renews the session periodically", func() {
			Eventually(sessionMgr.RenewPeriodicCallCount).ShouldNot(Equal(0))
		})

		Context("when NodeName() fails", func() {
			BeforeEach(func() {
				sessionMgr.NodeNameReturns("", errors.New("nodename failed"))
			})

			It("returns an error", func() {
				Expect(operationErr().Error()).To(Equal("nodename failed"))
			})
		})

		Context("when retrieving the node sessions fail", func() {
			BeforeEach(func() {
				sessionMgr.NodeReturns(nil, nil, errors.New("session list failed"))
			})

			It("returns an error", func() {
				Expect(operationErr().Error()).To(Equal("session list failed"))
			})