@Test
    public void testDeleteService() throws Exception {
        String clusterName = "c1";
        String serviceName = "HDFS";
        ConnectionParams params = new ConnectionParams();

        params.setServerName("localhost");
        params.setServerApiPort(serverPort);
        params.setServerAgentPort(serverAgentPort);
        params.setUserName("admin");
        params.setPassword("admin");

        ClusterUtils clusterUtils = injector.getInstance(ClusterUtils.class);
        clusterUtils.createSampleCluster(params);

        /**
         * Verify the status of the service
         */
        JsonElement jsonResponse = RestApiUtils.executeRequest(new GetServiceWebRequest(params, clusterName, serviceName));
        assertTrue(!jsonResponse.isJsonNull());
        JsonObject jsonServiceInfoObj = jsonResponse.getAsJsonObject().get("ServiceInfo").getAsJsonObject();
        String cluster_name = jsonServiceInfoObj.get("cluster_name").getAsString();
        assertEquals(cluster_name, clusterName);

        String service_name = jsonServiceInfoObj.get("service_name").getAsString();
        assertEquals(service_name, serviceName);

        /**
         * Check the following:
         * ClusterServiceDAO
         * ServiceDesiredStateDAO
         * ServiceComponentDesiredStateDAO
         * HostComponentStateDAO
         * HostComponentDesiredStateDAO
         */

        /**
         * Stop the service
         */

        jsonResponse = RestApiUtils.executeRequest(new StopServiceWebRequest(params, clusterName, serviceName));

        /**
         * clusterservice table
         */
        ClusterServiceDAO clusterServiceDAO = injector.getInstance(ClusterServiceDAO.class);
        List<ClusterServiceEntity> clusterServiceEntities = clusterServiceDAO.findAll();
        assertEquals(clusterServiceEntities.size(), 1); // Only one service in the sample cluster (HDFS)
        assertEquals(clusterServiceEntities.get(0).getServiceName(), serviceName); // Verify the only service name

        ClusterServiceEntity clusterServiceEntity = clusterServiceEntities.get(0);
        long clusterId = clusterServiceEntity.getClusterId();

        /**
         * servicedesiredstate table
         */
        ServiceDesiredStateDAO serviceDesiredStateDAO = injector.getInstance(ServiceDesiredStateDAO.class);
        List<ServiceDesiredStateEntity> serviceDesiredStateEntities = serviceDesiredStateDAO.findAll();
        assertEquals(serviceDesiredStateEntities.size(), 1);
        ServiceDesiredStateEntity serviceDesiredStateEntity = serviceDesiredStateEntities.get(0);
        assertEquals(serviceDesiredStateEntity.getServiceName(), serviceName);
        assertEquals(serviceDesiredStateEntity.getDesiredState(), State.INSTALLED);

        /**
         * servicecomponentdesiredstate table
         */
        ServiceComponentDesiredStateDAO serviceComponentDesiredStateDAO = injector.getInstance(ServiceComponentDesiredStateDAO.class);
        List<ServiceComponentDesiredStateEntity>  serviceComponentDesiredStateEntities =  serviceComponentDesiredStateDAO.findAll();
        assertEquals(serviceComponentDesiredStateEntities.size(), 3); // NAMENODE, SECONDARY_NAMENODE, DATANODE.
        for (ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntity : serviceComponentDesiredStateEntities) {
            assertEquals(serviceComponentDesiredStateEntity.getDesiredState(), State.INSTALLED);
        }

        /**
         * hostcomponentstate table
         */
        HostComponentStateDAO hostComponentStateDAO = injector.getInstance(HostComponentStateDAO.class);
        List<HostComponentStateEntity> hostComponentStateEntities = hostComponentStateDAO.findAll();
        assertEquals(hostComponentStateEntities.size(), 3);

        /**
         * hostcomponentdesiredstate table
         */
        HostComponentDesiredStateDAO hostComponentDesiredStateDAO = injector.getInstance(HostComponentDesiredStateDAO.class);
        List<HostComponentDesiredStateEntity> hostComponentDesiredStateEntities = hostComponentDesiredStateDAO.findAll();
        assertEquals(hostComponentDesiredStateEntities.size(), 3);

        /**
         * Delete the service
         */
        jsonResponse = RestApiUtils.executeRequest(new DeleteServiceWebRequest(params, clusterName, serviceName));

        WebResponse webResponse = new GetServiceWebRequest(params, clusterName, serviceName).getResponse();
        assertEquals(webResponse.getStatusCode(), HttpStatus.SC_NOT_FOUND);

        /**
         * ClusterServiceDAO - the service entry should have been removed.
         */
        clusterServiceEntity = clusterServiceDAO.findByClusterAndServiceNames(clusterName, serviceName);
        assertTrue(clusterServiceEntity == null);

        /**
         * ServiceDesiredStateDAO - the service entry should have been removed.
         */
        ServiceDesiredStateEntityPK serviceDesiredStateEntityPK = injector.getInstance(ServiceDesiredStateEntityPK.class);
        serviceDesiredStateEntityPK.setClusterId(clusterId);
        serviceDesiredStateEntityPK.setServiceName(serviceName);
        serviceDesiredStateEntity =  serviceDesiredStateDAO.findByPK(serviceDesiredStateEntityPK);
        assertTrue(serviceDesiredStateEntity == null);

        /**
         * ServiceComponentDesiredStateDAO
         */
        ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntity = serviceComponentDesiredStateDAO.findById(0L);
        assertTrue(serviceComponentDesiredStateEntity == null);

        /**
         * HostComponentStateDAO
         */
        hostComponentStateEntities = hostComponentStateDAO.findByService(serviceName);
        assertEquals(hostComponentStateEntities.size(), 0);


        /**
         * HostComponentDesiredStateDAO
         */
        hostComponentDesiredStateEntities = hostComponentDesiredStateDAO.findAll();
        assertEquals(hostComponentDesiredStateEntities.size(), 0);

        jsonResponse = RestApiUtils.executeRequest(new DeleteClusterWebRequest(params, clusterName));

        LOG.info(jsonResponse);
    }
Set up a test cluster with a service, a host and a few components.
Attempt to delete the service. Verify the state of the DB.

@throws Exception
ambari-funtest/src/test/java/org/apache/ambari/funtest/server/tests/DeleteServiceTest.java