AppDetailsController { @Path("restart/{id}") @POST @Produces(MediaType.APPLICATION_JSON) public Response restartApp(@PathParam("id") String id) { AppCatalogSolrClient sc = new AppCatalogSolrClient(); AppEntry app = sc.findAppEntry(id); Service yarnApp = app.getYarnfile(); yarnApp.setState(ServiceState.STARTED); try { YarnServiceClient yc = new YarnServiceClient(); yc.restartApp(yarnApp); } catch (JsonProcessingException e) { return Response.status(Status.BAD_REQUEST).build(); } return Response.ok().build(); } AppDetailsController(); @Path("config/{id}") @GET @Produces(MediaType.APPLICATION_JSON) AppEntry getDetails(@PathParam("id") String id); @Path("status/{id}") @GET @Produces(MediaType.APPLICATION_JSON) AppEntry getStatus(@PathParam("id") String id); @Path("stop/{id}") @POST @Produces(MediaType.APPLICATION_JSON) Response stopApp(@PathParam("id") String id); @Path("restart/{id}") @POST @Produces(MediaType.APPLICATION_JSON) Response restartApp(@PathParam("id") String id); @Path("upgrade/{id}") @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) Response upgradeApp(@PathParam("id") String id, Service app);  }
@Test public void testRestartApp() throws Exception { String id = "application 1"; AppDetailsController ac = Mockito.mock(AppDetailsController.class); Service yarnfile = new Service(); Component comp = new Component(); Container c = new Container(); c.setId("container-1"); List<Container> containers = new ArrayList<Container>(); containers.add(c); comp.setContainers(containers); yarnfile.addComponent(comp); Response expected = Response.ok().build(); when(ac.restartApp(id)).thenReturn(Response.ok().build()); final Response actual = ac.restartApp(id); assertEquals(expected.getStatus(), actual.getStatus()); }