From 43f25b968399e3879bbd1705398bef0ef438304e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Marciniak?= Date: Wed, 3 May 2023 02:23:53 +0200 Subject: [PATCH 1/4] fix: fixed xml interpretations with newlines and caret tags --- src/XmlToArray.php | 2 ++ tests/XmlToArrayTest.php | 48 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/XmlToArray.php b/src/XmlToArray.php index 193f7de..a71ba64 100755 --- a/src/XmlToArray.php +++ b/src/XmlToArray.php @@ -23,6 +23,8 @@ public function __construct(string $xml) public static function convert(string $xml): array { + $xml = trim(preg_replace('/\s\s+/', '', $xml)); + $converter = new static($xml); return $converter->toArray(); diff --git a/tests/XmlToArrayTest.php b/tests/XmlToArrayTest.php index 9656cf4..9bf5449 100755 --- a/tests/XmlToArrayTest.php +++ b/tests/XmlToArrayTest.php @@ -18,6 +18,7 @@ class XmlToArrayTest extends TestCase public function test(array $array) { $xml = ArrayToXml::convert($array, 'items'); + $this->assertSame(['items' => $array], XmlToArray::convert($xml)); } @@ -75,8 +76,10 @@ public function data() public function sameNameTest(array $array) { $xml = ArrayToXml::convert($array, 'items'); + $convertedArr = XmlToArray::convert($xml); - $this->assertSame(['items' => $array], XmlToArray::convert($xml)); + + $this->assertSame(['items' => $array], $convertedArr); } public function sameNameData() @@ -114,8 +117,10 @@ public function sameNameData() public function sameMultiDimensionalTest(array $array) { $xml = ArrayToXml::convert($array, 'items'); + $convertedArr = XmlToArray::convert($xml); - $this->assertSame(['items' => $array], XmlToArray::convert($xml)); + + $this->assertSame(['items' => $array], $convertedArr); } public function sameMultiDimensionalData() @@ -139,4 +144,43 @@ public function sameMultiDimensionalData() ], ]; } + + /** + * @dataProvider sameMultiDimensionalData + * @test + */ + public function convert_WhenXmlHasNewLinesAndCarrigageReturns_ShouldCorrectConvertToArray(array $array) + { + $xml = " + \r\n + \r\n + \r\n + \r\n + Luke Skywalker \r\n + Lightsaber \r\n + \r\n + \r\n + Captain America \r\n + Shield \r\n + \r\n + \r\n + \r\n + \r\n + Sauron \r\n + Evil Eye \r\n + \r\n + \r\n + Darth Vader \r\n + Lightsaber \r\n + \r\n + \r\n + + "; + + $arrayExpected['root'] = $array; + + $convertedArr = XmlToArray::convert($xml); + + $this->assertSame($arrayExpected, $convertedArr); + } } From a13f7820495208d6a4767304ed76393fdb1c910f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Marciniak?= Date: Wed, 3 May 2023 02:55:08 +0200 Subject: [PATCH 2/4] clear: Style CI fixes --- tests/XmlToArrayTest.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/XmlToArrayTest.php b/tests/XmlToArrayTest.php index 9bf5449..fe61c65 100755 --- a/tests/XmlToArrayTest.php +++ b/tests/XmlToArrayTest.php @@ -18,7 +18,7 @@ class XmlToArrayTest extends TestCase public function test(array $array) { $xml = ArrayToXml::convert($array, 'items'); - + $this->assertSame(['items' => $array], XmlToArray::convert($xml)); } @@ -71,6 +71,7 @@ public function data() * @dataProvider sameNameData * * @param array $array + * * @test */ public function sameNameTest(array $array) @@ -112,6 +113,7 @@ public function sameNameData() * @dataProvider sameMultiDimensionalData * * @param array $array + * * @test */ public function sameMultiDimensionalTest(array $array) @@ -147,6 +149,7 @@ public function sameMultiDimensionalData() /** * @dataProvider sameMultiDimensionalData + * * @test */ public function convert_WhenXmlHasNewLinesAndCarrigageReturns_ShouldCorrectConvertToArray(array $array) From 0e3bbf402ea1045c905455274d201ad89f21fa67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Marciniak?= Date: Wed, 3 May 2023 02:58:57 +0200 Subject: [PATCH 3/4] clear: Style CI fixes --- tests/XmlToArrayTest.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/XmlToArrayTest.php b/tests/XmlToArrayTest.php index fe61c65..e14908d 100755 --- a/tests/XmlToArrayTest.php +++ b/tests/XmlToArrayTest.php @@ -71,7 +71,6 @@ public function data() * @dataProvider sameNameData * * @param array $array - * * @test */ public function sameNameTest(array $array) @@ -113,7 +112,6 @@ public function sameNameData() * @dataProvider sameMultiDimensionalData * * @param array $array - * * @test */ public function sameMultiDimensionalTest(array $array) @@ -149,7 +147,6 @@ public function sameMultiDimensionalData() /** * @dataProvider sameMultiDimensionalData - * * @test */ public function convert_WhenXmlHasNewLinesAndCarrigageReturns_ShouldCorrectConvertToArray(array $array) From 54f4fe8785cfa8293beabbc30a9052f0e6ace8c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Marciniak?= Date: Wed, 3 May 2023 03:00:23 +0200 Subject: [PATCH 4/4] clear: Style CI fixes --- tests/XmlToArrayTest.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/XmlToArrayTest.php b/tests/XmlToArrayTest.php index e14908d..52109a4 100755 --- a/tests/XmlToArrayTest.php +++ b/tests/XmlToArrayTest.php @@ -71,6 +71,7 @@ public function data() * @dataProvider sameNameData * * @param array $array + * * @test */ public function sameNameTest(array $array) @@ -112,6 +113,7 @@ public function sameNameData() * @dataProvider sameMultiDimensionalData * * @param array $array + * * @test */ public function sameMultiDimensionalTest(array $array) @@ -147,7 +149,8 @@ public function sameMultiDimensionalData() /** * @dataProvider sameMultiDimensionalData - * @test + * + * @test */ public function convert_WhenXmlHasNewLinesAndCarrigageReturns_ShouldCorrectConvertToArray(array $array) {