. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/ginkgo" . "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/gomega" ) var _ = Describe("FakeTicker", func() { const Δ = 10 * time.Millisecond var ( fakeClock *fakeclock.FakeClock initialTime time.Time ) BeforeEach(func() { initialTime = time.Date(2014, 1, 1, 3, 0, 30, 0, time.UTC) fakeClock = fakeclock.NewFakeClock(initialTime) }) It("provides a channel that receives the time at each interval", func() { ticker := fakeClock.NewTicker(10 * time.Second) timeChan := ticker.C() Consistently(timeChan, Δ).ShouldNot(Receive()) fakeClock.Increment(5 * time.Second) Consistently(timeChan, Δ).ShouldNot(Receive()) fakeClock.Increment(4 * time.Second) Consistently(timeChan, Δ).ShouldNot(Receive()) fakeClock.Increment(1 * time.Second) Eventually(timeChan).Should(Receive(Equal(initialTime.Add(10 * time.Second))))
ui UI fakeTimeService *fakeclock.FakeClock uiOut, uiErr *bytes.Buffer ) BeforeEach(func() { uiOut = bytes.NewBufferString("") uiErr = bytes.NewBufferString("") logOutBuffer = bytes.NewBufferString("") logErrBuffer = bytes.NewBufferString("") logger = boshlog.NewWriterLogger(boshlog.LevelDebug, logOutBuffer, logErrBuffer) ui = NewWriterUI(uiOut, uiErr, logger) fakeTimeService = fakeclock.NewFakeClock(time.Now()) stage = NewStage(ui, fakeTimeService, logger) }) Describe("Perform", func() { It("prints a single-line stage", func() { actionsPerformed := []string{} err := stage.Perform("Simple stage 1", func() error { actionsPerformed = append(actionsPerformed, "1") fakeTimeService.Increment(time.Minute) return nil }) Expect(err).To(BeNil())
"github.com/cloudfoundry/bosh-init/internal/github.com/pivotal-golang/clock/fakeclock" ) var _ = Describe("SSH", func() { Describe("SSHRetryStrategy", func() { var ( sshRetryStrategy *SSHRetryStrategy fakeTimeService *fakeclock.FakeClock connectionRefusedTimeout time.Duration authFailureTimeout time.Duration startTime time.Time ) BeforeEach(func() { startTime = time.Now() fakeTimeService = fakeclock.NewFakeClock(startTime) connectionRefusedTimeout = 10 * time.Minute authFailureTimeout = 5 * time.Minute sshRetryStrategy = &SSHRetryStrategy{ ConnectionRefusedTimeout: connectionRefusedTimeout, AuthFailureTimeout: authFailureTimeout, TimeService: fakeTimeService, } }) Describe("IsRetryable", func() { refusedErr := errors.New("connection refused") authErr := errors.New("unable to authenticate") Context("when err is connection refused", func() {