Exemplo n.º 1
0
				})
				assertMessageWasSent(0, false)
			})

			Context("when the instance is not running", func() {
				assertMessageWasNotSent()
			})
		})
	})

	Context("When there are multiple start and stop messages in the queue", func() {
		var invalidStartMessages, validStartMessages, expiredStartMessages []models.PendingStartMessage

		BeforeEach(func() {
			conf, _ = config.DefaultConfig()
			conf.SenderMessageLimit = 20

			sender = New(store, metricsAccountant, conf, messageBus, timeProvider, fakelogger.NewFakeLogger())

			desiredStates := []models.DesiredAppState{}
			for i := 0; i < 40; i += 1 {
				a := appfixture.NewAppFixture()
				desiredStates = append(desiredStates, a.DesiredState(1))
				store.SyncHeartbeats(models.Heartbeat{
					DeaGuid:            a.DeaGuid,
					InstanceHeartbeats: []models.InstanceHeartbeat{a.InstanceAtIndex(1).Heartbeat()},
				})

				//only some of these should be sent:
				validStartMessage := models.NewPendingStartMessage(time.Unix(100, 0), 30, 0, a.AppGuid, a.AppVersion, 0, float64(i)/40.0, models.PendingStartMessageReasonInvalid)
				validStartMessages = append(validStartMessages, validStartMessage)