Пример #1
0
    @Override
    protected org.springframework.extensions.webscripts.connector.Response retrieveFormDefinition(
        String itemKind, String itemId, List<String> visibleFields, FormConfigElement formConfig) {
      org.springframework.extensions.webscripts.connector.Response response = null;
      try {
        assertEquals("Parameter 'itemKind' isn't 'node' value", "node", itemKind);
        assertFalse("itemId is empty", itemId != null && itemId.isEmpty());
        assertTrue("Visible fields are empty", visibleFields.size() > 0);
        assertEquals("Form config 'name' field isn't 'form' value", "form", formConfig.getName());

        ByteArrayInputStream bais =
            generateFormDefPostBody(itemKind, itemId, visibleFields, formConfig);
        assertTrue("Can't read bytes from ByteArrayInputStream ", bais.available() > 0);

        String json = getStringFromInputStream(bais);

        log.info("Request 'formdefinitions' json is: " + json);

        PostRequest request = new PostRequest("/api/formdefinitions", json, "application/json");

        org.springframework.extensions.webscripts.TestWebScriptServer.Response responseTest =
            server.submitRequest(
                request.getMethod(),
                request.getFullUri(),
                request.getHeaders(),
                request.getBody(),
                request.getEncoding(),
                request.getType());

        if (responseTest.getStatus() == 200) {
          JSONObject jsonParsedObject =
              new JSONObject(new JSONTokener(responseTest.getContentAsString()));
          assertNotNull("JSON from responseTest is null", jsonParsedObject);

          Object dataObj = jsonParsedObject.get("data");
          assertEquals(JSONObject.class, dataObj.getClass());
          JSONObject rootDataObject = (JSONObject) dataObj;

          String item = (String) rootDataObject.get("item");
          String submissionUrl = (String) rootDataObject.get("submissionUrl");
          String type = (String) rootDataObject.get("type");
          JSONObject definitionObject = (JSONObject) rootDataObject.get("definition");
          JSONObject formDataObject = (JSONObject) rootDataObject.get("formData");

          assertNotNull("Item is null ", item);
          assertNotNull("Submission url is null ", submissionUrl);
          assertNotNull("Type is null ", type);
          assertNotNull("Definition is null ", definitionObject);
          assertNotNull("Form data is null ", formDataObject);

          log.info("Response form 'formdefinitions' json 'data' is: " + dataObj);

          ResponseStatus status = new ResponseStatus();
          status.setCode(responseTest.getStatus());
          assertFalse("Response content is empty", responseTest.getContentAsString().isEmpty());
          response =
              new org.springframework.extensions.webscripts.connector.Response(
                  responseTest.getContentAsString(), status);
          assertNotNull("Response data is null.", response.getText());
        } else {
          assertEquals(
              "Response /api/formdefinitions is not 200 status", 200, responseTest.getStatus());
        }

      } catch (Exception e) {
        log.error("Response form 'formdefinitions' exception : " + e.getMessage());
      }

      return response;
    }