2016-04-26 9 views
1

Я хочу знать, как проверить метаданные с помощью XML-маршрута с помощью RESTassured. Я пытаюсь проверить службу OData и читать каждую деталь в метаданных. Я могу прочитать ответ Джона. Но я не могу разобраться в четком способе чтения метаданных. Также я хочу знать, что идентифицируется как узлы в метаданных.Как проверить метаданные с использованием пути XML в RESTasured

+0

Это помогло бы разместить пример XML, который вы пытаетесь разобрать. – MikeJRamsey56

ответ

1

Ниже приведены шаги, обеспечивающие сохранение огурца для анализа простого документа XML OData.

package steps; 

import java.util.List; 

import com.jayway.restassured.path.xml.XmlPath; 
import com.jayway.restassured.path.xml.element.Node; 

import cucumber.api.java.en.Given; 
import cucumber.api.java.en.When; 

import static com.jayway.restassured.path.xml.XmlPath.*; 

import static org.hamcrest.Matchers.*; 
import static org.junit.Assert.assertThat; 

public class ODataSteps { 
    String sampleXml = ""; 

    @Given("^I have a simple service document$") 
    public void i_have_a_simple_service_document() { 
     sampleXml = "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" + 
      "<service xml:base=\"http://services.odata.org/OData/OData.svc/\"" + 
      "   xmlns:atom=\"http://www.w3.org/2005/Atom\"" + 
      "   xmlns:app=\"http://www.w3.org/2007/app\"" + 
      "   xmlns=\"http://www.w3.org/2007/app\">" + 
      " <workspace>" + 
      " <atom:title>Default</atom:title>" + 
      " <collection href=\"Products\">" + 
      "  <atom:title>Products</atom:title>" + 
      " </collection>" + 
      " <collection href=\"Categories\">" + 
      "  <atom:title>Categories</atom:title>" + 
      " </collection>" + 
      " <collection href=\"Suppliers\">" + 
      "  <atom:title>Suppliers</atom:title>" + 
      " </collection>" + 
      " </workspace>" + 
      "</service>"; 
    } 

    @When("^I search for available collections I find \"(\\d+)\"$") 
    public void i_search_for_available_collections_i_find(int expectedNumCategories) { 
     XmlPath xmlPath = new XmlPath(sampleXml); 
     final List<Node> collections = xmlPath.getList("service.workspace.collection", Node.class); 
     assertThat(collections.size(), equalTo(expectedNumCategories)); 

     final List<String> collectionsStr = given(sampleXml).getList("service.workspace.collection.findAll {it.title.text()}", String.class); 
     assertThat(collectionsStr, hasItems("Products", "Categories", "Suppliers")); 
    } 

} 

Функция файл огурца JVM, которая вызывает описанные выше, выглядит следующим образом:

@odata 
Feature: Demonstrate ability to test OData Service Documents 
    The Open Data Protocol (OData) enables the creation of HTTP-based data 
    services, which allow resources identified using Uniform Resource 
    Identifiers (URIs) and defined in an abstract data model, to be published 
    and edited by Web clients using simple HTTP messages. 

@api 
Scenario: Parse a canned OData Service document 
    Given I have a simple service document 
    When I search for available collections I find "3" 
+0

Заранее вам за помощь – user3724599