content: package alien4cloud.it.components;
  
  import static org.junit.Assert.*;
  
  import java.util.Map;
  
  import org.alien4cloud.tosca.model.types.NodeType;
  import org.elasticsearch.client.Client;
  import org.junit.Assert;
  
  import com.fasterxml.jackson.databind.ObjectMapper;
  
  import alien4cloud.dao.ElasticSearchMapper;
  import alien4cloud.it.Context;
  import alien4cloud.rest.model.RestResponse;
  import alien4cloud.rest.utils.JsonUtil;
  import alien4cloud.utils.MapUtil;
  import cucumber.api.java.en.Then;
  import cucumber.api.java.en.When;
  
  public class GetComponentDefinitionsSteps {
  
      private final ObjectMapper jsonMapper = ElasticSearchMapper.getInstance();
      private final Client esClient = Context.getEsClientInstance();
  
      @When("^I get the component with uuid \"([^\"]*)\"$")
      public void I_get_the_component_with_uuid(String componentId) throws Throwable {
          Context.getInstance().registerRestResponse(Context.getRestClientInstance().get("/rest/v1/components/" + componentId));
      }
  
      @Then("^I should retrieve a component detail with list of it's properties and interfaces.$")
      public void I_should_retrieve_a_component_detail_with_list_of_it_s_properties_and_interfaces() throws Throwable {
          NodeType idnt = JsonUtil.read(Context.getInstance().takeRestResponse(), NodeType.class).getData();
          assertNotNull(idnt);
          assertNotNull(idnt.getProperties());
          assertTrue(!idnt.getProperties().isEmpty());
          assertTrue(!idnt.getProperties().values().isEmpty());
          assertNotNull(idnt.getInterfaces());
      }
  
      @When("^I try to get a component with id \"([^\"]*)\"$")
      public void I_try_to_get_a_component_with_id(String componentId) throws Throwable {
          String restResponse = Context.getRestClientInstance().get("/rest/v1/components/" + componentId);
          Context.getInstance().registerRestResponse(restResponse);
      }
  
      @Then("^I should have a component with id \"([^\"]*)\"$")
      public void I_should_have_a_component_with_id(String componentId) throws Throwable {
          RestResponse<Map> restResponse = JsonUtil.read(Context.getInstance().getRestResponse(), Map.class);
          assertNotNull(restResponse.getData());
          String id = (String) MapUtil.get(restResponse.getData(), "id");
          assertEquals(componentId, id);
      }
  
      @Then("^I should not have any component$")
      public void i_should_not_have_any_component() throws Throwable {
          RestResponse<Map> restResponse = JsonUtil.read(Context.getInstance().getRestResponse(), Map.class);
          Assert.assertNull(restResponse.getData());
      }
      
  }