### Question:
HeartBeatHandler { public HeartbeatProcessor getHeartbeatProcessor() { return heartbeatProcessor; } @Inject  HeartBeatHandler(Clusters fsm, ActionManager am,
                          Injector injector); void start(); void setHeartbeatProcessor(HeartbeatProcessor heartbeatProcessor); HeartbeatProcessor getHeartbeatProcessor(); HeartBeatResponse handleHeartBeat(HeartBeat heartbeat); void handleComponentReportStatus(List<ComponentStatus> componentStatuses, String hostname); void handleCommandReportStatus(List<CommandReport> reports, String hostname); void handleHostReportStatus(HostStatusReport hostStatusReport, String hostname); void handleComponentVersionReports(ComponentVersionReports componentVersionReports, String hostname); String getOsType(String os, String osRelease); HeartBeatResponse createRegisterCommand(); RegistrationResponse handleRegistration(Register register); ComponentsResponse handleComponents(String clusterName); void stop();  }### Answer:
@Test @Ignore public void testLiveStatusUpdateAfterStopFailed() throws Exception { Cluster cluster = heartbeatTestHelper.getDummyCluster(); Service hdfs = addService(cluster, HDFS); hdfs.addServiceComponent(DATANODE); hdfs.getServiceComponent(DATANODE). addServiceComponentHost(DummyHostname1); hdfs.addServiceComponent(NAMENODE); hdfs.getServiceComponent(NAMENODE). addServiceComponentHost(DummyHostname1); ServiceComponentHost serviceComponentHost1 = clusters. getCluster(DummyCluster).getService(HDFS). getServiceComponent(DATANODE). getServiceComponentHost(DummyHostname1); ServiceComponentHost serviceComponentHost2 = clusters. getCluster(DummyCluster).getService(HDFS). getServiceComponent(NAMENODE). getServiceComponentHost(DummyHostname1); serviceComponentHost1.setState(State.STARTED); serviceComponentHost2.setState(State.STARTED); HeartBeat hb = new HeartBeat(); hb.setTimestamp(System.currentTimeMillis()); hb.setResponseId(0); hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb.setReports(new ArrayList<>()); ArrayList<ComponentStatus> componentStatuses = new ArrayList<>(); ComponentStatus componentStatus1 = new ComponentStatus(); componentStatus1.setServiceName(HDFS); componentStatus1.setMessage(DummyHostStatus); componentStatus1.setStatus(State.STARTED.name()); componentStatus1.setComponentName(DATANODE); componentStatuses.add(componentStatus1); ComponentStatus componentStatus2 = new ComponentStatus(); componentStatus2.setServiceName(HDFS); componentStatus2.setMessage(DummyHostStatus); componentStatus2.setStatus(State.INSTALLED.name()); componentStatus2.setComponentName(NAMENODE); componentStatuses.add(componentStatus2); hb.setComponentStatus(componentStatuses); final HostRoleCommand command = hostRoleCommandFactory.create(DummyHostname1, Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); }}); replay(am); HeartBeatHandler handler = heartbeatTestHelper.getHeartBeatHandler(am); HeartbeatProcessor heartbeatProcessor = handler.getHeartbeatProcessor(); heartbeatProcessor.processHeartbeat(hb); State componentState1 = serviceComponentHost1.getState(); State componentState2 = serviceComponentHost2.getState(); assertEquals(State.STARTED, componentState1); assertEquals(State.INSTALLED, componentState2); }