Ω(startMessages()).Should(HaveLen(1)) expectedMessage := models.NewPendingStartMessage(clock.Now(), conf.GracePeriod(), 0, app.AppGuid, app.AppVersion, 0, 1.0, models.PendingStartMessageReasonMissing) Ω(startMessages()).Should(ContainElement(EqualPendingStartMessage(expectedMessage))) Ω(stopMessages()).Should(BeEmpty()) }) }) }) }) Describe("Stopping duplicate instances (index < numDesired)", func() { var ( duplicateInstance1 appfixture.Instance duplicateInstance2 appfixture.Instance duplicateInstance3 appfixture.Instance ) BeforeEach(func() { store.SyncDesiredState( app.DesiredState(3), ) duplicateInstance1 = app.InstanceAtIndex(2) duplicateInstance1.InstanceGuid = models.Guid() duplicateInstance2 = app.InstanceAtIndex(2) duplicateInstance2.InstanceGuid = models.Guid() duplicateInstance3 = app.InstanceAtIndex(2) duplicateInstance3.InstanceGuid = models.Guid() })
package mcat_test import ( "github.com/cloudfoundry/hm9000/models" "github.com/cloudfoundry/hm9000/testhelpers/appfixture" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Stopping Duplicate Instances", func() { var dea appfixture.DeaFixture var a appfixture.AppFixture Context("when there are multiple instances on the same index", func() { var instance0, instance1, duplicateInstance1 appfixture.Instance var heartbeat models.Heartbeat BeforeEach(func() { dea = appfixture.NewDeaFixture() a = dea.GetApp(0) instance0 = a.InstanceAtIndex(0) instance1 = a.InstanceAtIndex(1) duplicateInstance1 = a.InstanceAtIndex(1) duplicateInstance1.InstanceGuid = models.Guid() heartbeat = dea.HeartbeatWith(instance0.Heartbeat(), instance1.Heartbeat(), duplicateInstance1.Heartbeat()) simulator.SetCurrentHeartbeats(heartbeat) simulator.SetDesiredState(a.DesiredState(2)) simulator.Tick(simulator.TicksToAttainFreshness)