@Test
  public void test010_DeploySimpleApplicationTest() throws Exception {
    logger.info("Deploy an SpringBoot application");
    String binary = "spring-boot.jar";

    try {
      logger.info("Create " + binary + " application.");
      String jsonString =
          "{\"applicationName\":\"" + applicationName + "\", \"serverName\":\"" + release + "\"}";
      ResultActions resultats =
          mockMvc.perform(
              post("/application")
                  .session(session)
                  .contentType(MediaType.APPLICATION_JSON)
                  .content(jsonString));
      resultats.andExpect(status().isOk());

      // OPEN THE PORT
      jsonString =
          "{\"applicationName\":\""
              + applicationName
              + "\",\"portToOpen\":\"8080\",\"portNature\":\"web\"}";
      resultats =
          this.mockMvc.perform(
              post("/application/ports")
                  .session(session)
                  .contentType(MediaType.APPLICATION_JSON)
                  .content(jsonString));
      resultats.andExpect(status().isOk()).andDo(print());
    } catch (Exception e) {
      logger.error(e.getMessage());
    }

    ResultActions resultats =
        mockMvc
            .perform(
                MockMvcRequestBuilders.fileUpload("/application/" + applicationName + "/deploy")
                    .file(
                        downloadAndPrepareFileToDeploy(
                            binary,
                            "https://github.com/Treeptik/CloudUnit/releases/download/1.0/"
                                + binary))
                    .session(session)
                    .contentType(MediaType.MULTIPART_FORM_DATA))
            .andDo(print());
    resultats.andExpect(status().is2xxSuccessful());

    String urlToCall =
        "http://" + applicationName.toLowerCase() + "-johndoe-forward-8080.cloudunit.dev";
    logger.debug(urlToCall);
    int i = 0;
    String content = null;
    while (i++ < TestUtils.NB_ITERATION_MAX) {
      content = getUrlContentPage(urlToCall);
      logger.debug(content);
      Thread.sleep(1000);
      if (content == null || !content.contains("502")) {
        break;
      }
    }
    logger.debug(content);
    if (content != null) {
      Assert.assertTrue(content.contains("Greetings from Spring Boot!"));
    }
  }
  @Test
  public void test020_DeployMysqlApplicationTest() throws Exception {
    logger.info("Deploy an Mysql SpringBoot application");
    String binary = "spring-boot-mysql.jar";

    // Create an application
    logger.info("Create " + binary + " application.");
    String jsonString =
        "{\"applicationName\":\"" + applicationName + "\", \"serverName\":\"" + release + "\"}";
    ResultActions resultats =
        mockMvc.perform(
            post("/application")
                .session(session)
                .contentType(MediaType.APPLICATION_JSON)
                .content(jsonString));
    resultats.andExpect(status().isOk());

    // Open the port 8080
    jsonString =
        "{\"applicationName\":\""
            + applicationName
            + "\",\"portToOpen\":\"8080\",\"portNature\":\"web\"}";
    resultats =
        this.mockMvc.perform(
            post("/application/ports")
                .session(session)
                .contentType(MediaType.APPLICATION_JSON)
                .content(jsonString));
    resultats.andExpect(status().isOk()).andDo(print());

    // Add a module MYSQL
    jsonString = "{\"applicationName\":\"" + applicationName + "\", \"imageName\":\"mysql-5-5\"}";
    resultats =
        mockMvc.perform(
            post("/module")
                .session(session)
                .contentType(MediaType.APPLICATION_JSON)
                .content(jsonString));
    resultats.andExpect(status().isOk());

    // Deploy the fat Jar
    resultats =
        mockMvc
            .perform(
                MockMvcRequestBuilders.fileUpload("/application/" + applicationName + "/deploy")
                    .file(
                        downloadAndPrepareFileToDeploy(
                            binary,
                            "https://github.com/Treeptik/CloudUnit/releases/download/1.0/"
                                + binary))
                    .session(session)
                    .contentType(MediaType.MULTIPART_FORM_DATA))
            .andDo(print());
    resultats.andExpect(status().is2xxSuccessful());
    String urlToCall =
        "http://" + applicationName.toLowerCase() + "-johndoe-forward-8080.cloudunit.dev";
    logger.debug(urlToCall);
    int i = 0;
    String content = null;
    // Wait for the deployment
    while (i++ < TestUtils.NB_ITERATION_MAX) {
      content = getUrlContentPage(urlToCall);
      logger.debug(content);
      Thread.sleep(1000);
      if (content == null || !content.contains("502")) {
        break;
      }
    }
    logger.debug(content);
    if (content != null) {
      Assert.assertTrue(content.contains("CloudUnit PaaS"));
    }

    String url2AddAnUser =
        "******"
            + applicationName.toLowerCase()
            + "-johndoe-forward-8080.cloudunit.dev/[email protected]&name=johndoe";

    // Add a module MYSQL
    resultats =
        mockMvc.perform(
            get(url2AddAnUser).session(session).contentType(MediaType.APPLICATION_JSON));
    resultats.andExpect(status().isOk());
    content = getUrlContentPage(url2AddAnUser);
    Assert.assertTrue(content.contains("User succesfully created!"));
  }