Соответствие XML с Wiremock - PullRequest
1 голос
/ 21 июня 2019

Я настраиваю фиктивный сервер PHP с Wiremock и хочу сопоставить на основе одного из передаваемых полей XML. У меня в основном будет несколько запросов, приходящих на один и тот же URL, но основным отличием между ними будет номер счета. Мой JSON для wiremock выглядит так

{
  "request": {
    "method": "ANY",
    "urlPattern": ".*/test.php",
    "bodyPatterns" : [{
      "equalToXml": "<InvoiceNumber>6</InvoiceNumber>"
    }]
  },
  "response": {
    "status": 200,
    "bodyFileName": "sample.xml",
    "headers": {
      "Content-Type": "application/xml"
    }
  }
}

Это прекрасно работает, когда я использую Почтальон и передаю XML только с полем <InvoiceNumber></InvoiceNumber>, но в тот момент, когда я добавляю дополнительное поле, происходит сбой.

Я бы хотел иметь возможность передавать любой XML-файл в Wiremock и, если он имеет поле <InvoiceNumber></InvoiceNumber>, он будет читать его.

1 Ответ

1 голос
/ 21 июня 2019

Нашли решение, используя метод регулярных выражений и используя matches вместо equalToXml

{
  "request": {
    "method": "ANY",
    "urlPattern": ".*/test.php",
    "bodyPatterns" : [{
      "matches": ".*<InvoiceNumber>6</InvoiceNumber>.*"
    }]
  },
  "response": {
    "status": 200,
    "bodyFileName": "sample.xml",
    "headers": {
      "Content-Type": "application/xml"
    }
  }
}
...