@Test
  public void testMsgNotifHeartbeat_mustSendStoredMessages() throws Exception {

    this.managerWrapper.configureMessagingForTest();
    this.manager.reconfigure();
    TestClient msgClient = (TestClient) this.managerWrapper.getInternalMessagingClient();

    ManagedApplication ma =
        this.manager.applicationMngr().findManagedApplicationByName(this.app.getName());
    Assert.assertNotNull(ma);
    Assert.assertEquals(InstanceStatus.NOT_DEPLOYED, this.app.getMySqlVm().getStatus());
    Assert.assertNull(ma.getScopedInstanceToAwaitingMessages().get(this.app.getMySqlVm()));
    Assert.assertEquals(0, msgClient.allSentMessages.size());

    // Store messages
    this.manager
        .messagingMngr()
        .sendMessageSafely(ma, this.app.getMySqlVm(), new MsgCmdChangeBinding("tpl", "app-1"));
    this.manager
        .messagingMngr()
        .sendMessageSafely(ma, this.app.getMySqlVm(), new MsgCmdChangeBinding("tpl", "app-2"));
    this.manager
        .messagingMngr()
        .sendMessageSafely(ma, this.app.getMySqlVm(), new MsgCmdChangeBinding("tpl", "app-3"));
    Assert.assertEquals(
        3, ma.getScopedInstanceToAwaitingMessages().get(this.app.getMySqlVm()).size());
    Assert.assertEquals(0, msgClient.allSentMessages.size());

    // The ACK should send them
    MsgNotifHeartbeat msg =
        new MsgNotifHeartbeat(this.app.getName(), this.app.getMySqlVm(), "192.168.1.45");
    this.processor.processMessage(msg);

    Assert.assertEquals(InstanceStatus.DEPLOYED_STARTED, this.app.getMySqlVm().getStatus());
    Assert.assertNull(ma.getScopedInstanceToAwaitingMessages().get(this.app.getMySqlVm()));
    Assert.assertEquals(3, msgClient.allSentMessages.size());
  }