}) 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() }) Context("When there are missing instances on other indices", func() { It("should not schedule any stops but should start the missing indices", func() { //[-,-,2|2|2|2] store.SyncHeartbeats(dea.HeartbeatWith( app.InstanceAtIndex(2).Heartbeat(), duplicateInstance1.Heartbeat(), duplicateInstance2.Heartbeat(), duplicateInstance3.Heartbeat(), ))
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) }) It("should not immediately stop anything", func() { Ω(startStopListener.Stops).Should(BeEmpty()) }) Context("after four grace periods", func() { Context("if both instances are still running", func() {