package mcat_test import ( "github.com/cloudfoundry/hm9000/testhelpers/appfixture" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Expiring Heartbeats Test", func() { var dea1, dea2 appfixture.DeaFixture var app1, app2, app3 appfixture.AppFixture BeforeEach(func() { dea1 = appfixture.NewDeaFixture() dea2 = appfixture.NewDeaFixture() app1 = dea1.GetApp(0) app2 = dea1.GetApp(1) app3 = dea2.GetApp(2) simulator.SetCurrentHeartbeats( dea1.HeartbeatWith(app1.InstanceAtIndex(0).Heartbeat(), app2.InstanceAtIndex(0).Heartbeat()), dea2.HeartbeatWith(app3.InstanceAtIndex(0).Heartbeat()), ) simulator.SetDesiredState(app1.DesiredState(1), app2.DesiredState(1), app3.DesiredState(1)) simulator.Tick(simulator.TicksToAttainFreshness) }) Context("when a dea reports than an instance is no longer present", func() { BeforeEach(func() { simulator.SetCurrentHeartbeats(
app2 appfixture.AppFixture app3 appfixture.AppFixture app4 appfixture.AppFixture crashCount []models.CrashCount ) conf, _ = config.DefaultConfig() BeforeEach(func() { storeAdapter = etcdstoreadapter.NewETCDStoreAdapter(etcdRunner.NodeURLS(), workerpool.NewWorkerPool(conf.StoreMaxConcurrentRequests)) err := storeAdapter.Connect() Ω(err).ShouldNot(HaveOccurred()) store = NewStore(conf, storeAdapter, fakelogger.NewFakeLogger()) dea = appfixture.NewDeaFixture() app1 = dea.GetApp(0) app2 = dea.GetApp(1) app3 = dea.GetApp(2) app4 = dea.GetApp(3) actualState := []models.InstanceHeartbeat{ app1.InstanceAtIndex(0).Heartbeat(), app1.InstanceAtIndex(1).Heartbeat(), app1.InstanceAtIndex(2).Heartbeat(), app2.InstanceAtIndex(0).Heartbeat(), } desiredState := []models.DesiredAppState{ app1.DesiredState(1), app3.DesiredState(1),
dea appfixture.DeaFixture otherDea appfixture.DeaFixture ) BeforeEach(func() { var err error conf, err = config.DefaultConfig() Ω(err).ShouldNot(HaveOccurred()) storeAdapter = etcdstoreadapter.NewETCDStoreAdapter(etcdRunner.NodeURLS(), workpool.NewWorkPool(conf.StoreMaxConcurrentRequests)) err = storeAdapter.Connect() Ω(err).ShouldNot(HaveOccurred()) conf.StoreHeartbeatCacheRefreshIntervalInMilliseconds = 100 store = NewStore(conf, storeAdapter, fakelogger.NewFakeLogger()) dea = appfixture.NewDeaFixture() otherDea = appfixture.NewDeaFixture() }) AfterEach(func() { storeAdapter.Disconnect() }) Describe("Saving actual state", func() { BeforeEach(func() { store.SyncHeartbeats(dea.HeartbeatWith( dea.GetApp(0).InstanceAtIndex(1).Heartbeat(), dea.GetApp(1).InstanceAtIndex(3).Heartbeat(), )) })