jsonArray = new JsonArray(
'{"ticket": {"title": "Bug should be fixed", "user": {"name": "Davert"}, "labels": null}}'
);
}
public function testXmlConversion()
{
$this->assertContains(
'Bug should be fixedDavert',
$this->jsonArray->toXml()->saveXML()
);
}
public function testXmlArrayConversion2()
{
$jsonArray = new JsonArray(
'[{"user":"Blacknoir","age":27,"tags":["wed-dev","php"]},'
. '{"user":"John Doe","age":27,"tags":["web-dev","java"]}]'
);
$this->assertContains('wed-dev', $jsonArray->toXml()->saveXML());
$this->assertEquals(2, $jsonArray->filterByXPath('//user')->length);
}
public function testXPathLocation()
{
$this->assertGreaterThan(0, $this->jsonArray->filterByXPath('//ticket/title')->length);
$this->assertGreaterThan(0, $this->jsonArray->filterByXPath('//ticket/user/name')->length);
$this->assertGreaterThan(0, $this->jsonArray->filterByXPath('//user/name')->length);
}
public function testJsonPathLocation()
{
$this->assertNotEmpty($this->jsonArray->filterByJsonPath('$..user'));
$this->assertNotEmpty($this->jsonArray->filterByJsonPath('$.ticket.user.name'));
$this->assertNotEmpty($this->jsonArray->filterByJsonPath('$..user.name'));
$this->assertEquals(['Davert'], $this->jsonArray->filterByJsonPath('$.ticket.user.name'));
$this->assertEmpty($this->jsonArray->filterByJsonPath('$..invalid'));
}
/**
* @issue https://github.com/Codeception/Codeception/issues/2535
*/
public function testThrowsInvalidArgumentExceptionIfJsonIsInvalid()
{
$this->setExpectedException('InvalidArgumentException');
new JsonArray('{"test":');
}
/**
* @issue https://github.com/Codeception/Codeception/issues/4944
*/
public function testConvertsBareJson()
{
$jsonArray = new JsonArray('"I am a {string}."');
$this->assertEquals(['I am a {string}.'], $jsonArray->toArray());
}
/**
* @Issue https://github.com/Codeception/Codeception/issues/2899
*/
public function testInvalidXmlTag()
{
$jsonArray = new JsonArray('{"a":{"foo/bar":1,"":2},"b":{"foo/bar":1,"":2},"baz":2}');
$expectedXml = '12'
. '122';
$this->assertContains($expectedXml, $jsonArray->toXml()->saveXML());
}
public function testConvertsArrayHavingSingleElement()
{
$jsonArray = new JsonArray('{"success": 1}');
$expectedXml = ''
. "\n1\n";
$this->assertEquals($expectedXml, $jsonArray->toXml()->saveXML());
}
public function testConvertsArrayHavingTwoElements()
{
$jsonArray = new JsonArray('{"success": 1, "info": "test"}');
$expectedXml = ''
. "\n1test\n";
$this->assertEquals($expectedXml, $jsonArray->toXml()->saveXML());
}
public function testConvertsArrayHavingSingleSubArray()
{
$jsonArray = new JsonArray('{"array": {"success": 1}}');
$expectedXml = ''
. "\n1\n";
$this->assertEquals($expectedXml, $jsonArray->toXml()->saveXML());
}
}