public void testVappTemplateMetadata() {
    final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
    URI uri = URI.create(endpoint + templateId);

    MetadataApi api =
        orderedRequestsSendResponses(
                loginRequest,
                sessionResponse,
                new VcloudHttpRequestPrimer()
                    .apiCommand("GET", templateId + "/metadata")
                    .acceptMedia(ANY)
                    .httpRequestBuilder()
                    .build(),
                new VcloudHttpResponsePrimer()
                    .xmlFilePayload("/vapptemplate/metadata.xml", METADATA)
                    .httpResponseBuilder()
                    .build(),
                new VcloudHttpRequestPrimer()
                    .apiCommand("POST", templateId + "/metadata")
                    .xmlFilePayload("/vapptemplate/metadata.xml", METADATA)
                    .acceptMedia(TASK)
                    .httpRequestBuilder()
                    .build(),
                new VcloudHttpResponsePrimer()
                    .xmlFilePayload("/task/task.xml", TASK)
                    .httpResponseBuilder()
                    .build())
            .getMetadataApi(uri);

    assertNotNull(api);
    Metadata metadata = api.get();

    assertEquals(metadata, exampleMetadata());

    Task task = api.putAll(exampleMetadata());
    assertNotNull(task);
  }
  @Test(expectedExceptions = VCloudDirectorException.class)
  public void testErrorEditMetadata() {
    final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
    URI uri = URI.create(endpoint + templateId);

    MetadataApi api =
        orderedRequestsSendResponses(
                loginRequest,
                sessionResponse,
                new VcloudHttpRequestPrimer()
                    .apiCommand("POST", templateId + "/metadata")
                    .xmlFilePayload("/vapptemplate/metadata.xml", METADATA)
                    .acceptMedia(TASK)
                    .httpRequestBuilder()
                    .build(),
                new VcloudHttpResponsePrimer()
                    .xmlFilePayload("/vapptemplate/error400.xml", ERROR)
                    .httpResponseBuilder()
                    .statusCode(400)
                    .build())
            .getMetadataApi(uri);

    api.putAll(exampleMetadata());
  }