Skip to content

Commit e28b501

Browse files
committed
MQE-2493: Update assert implementation in mftf 2.x to work with phpunit 9
1 parent 0bef784 commit e28b501

File tree

7 files changed

+273
-56
lines changed

7 files changed

+273
-56
lines changed

bin/functional

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ echo "==============================="
99
bin/mftf build:project
1010
bin/mftf run:test DeprecatedDevDocsTest -f
1111
bin/mftf run:test DevDocsTest -f
12+
bin/mftf run:test AssertTest -f
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="AssertTest">
12+
<!-- custom asserts -->
13+
<comment stepKey="customAsserts" userInput="custom asserts"/>
14+
<assertArrayIsSorted sortOrder="asc" stepKey="assertSorted">
15+
<array>[1,2,3,4,5]</array>
16+
</assertArrayIsSorted>
17+
18+
<!-- asserts new format -->
19+
<comment stepKey="assertsNewFormat" userInput="asserts new format"/>
20+
<assertArrayHasKey stepKey="assertArrayHasKey" message="pass">
21+
<expectedResult type="string">apple</expectedResult>
22+
<actualResult type="const">['orange' => 2, 'apple' => 1]</actualResult>
23+
</assertArrayHasKey>
24+
<assertArrayNotHasKey stepKey="assertArrayNotHasKey" message="pass">
25+
<expectedResult type="string">kiwi</expectedResult>
26+
<actualResult type="const">['orange' => 2, 'apple' => 1]</actualResult>
27+
</assertArrayNotHasKey>
28+
<assertContains stepKey="assertContainsInArray" message="pass">
29+
<expectedResult type="string">ab</expectedResult>
30+
<actualResult type="const">['item1' => 'a', 'item2' => 'ab']</actualResult>
31+
</assertContains>
32+
<assertContains stepKey="assertContainsInString" message="pass">
33+
<expectedResult type="string">ab</expectedResult>
34+
<actualResult type="string">abcde</actualResult>
35+
</assertContains>
36+
<assertCount stepKey="assertCount" message="pass">
37+
<expectedResult type="int">2</expectedResult>
38+
<actualResult type="const">['a', 'b']</actualResult>
39+
</assertCount>
40+
<assertEmpty stepKey="assertEmpty" message="pass">
41+
<actualResult type="const">[]</actualResult>
42+
</assertEmpty>
43+
<assertEquals stepKey="assertStringEqual" message="pass">
44+
<expectedResult type="string">Copyright</expectedResult>
45+
<actualResult type="string">Copyright</actualResult>
46+
</assertEquals>
47+
<assertEquals stepKey="assertFloatEqual" message="pass">
48+
<expectedResult type="float">1.56</expectedResult>
49+
<actualResult type="float">1.56</actualResult>
50+
</assertEquals>
51+
<assertEquals stepKey="assertFloatWithDeltaEqual" delta="0.1" message="pass">
52+
<expectedResult type="float">1.55</expectedResult>
53+
<actualResult type="float">1.56</actualResult>
54+
</assertEquals>
55+
<assertEquals stepKey="assertIntEqual" message="pass">
56+
<expectedResult type="int">2</expectedResult>
57+
<actualResult type="int">2</actualResult>
58+
</assertEquals>
59+
<assertEquals stepKey="assertBoolEqual" message="pass">
60+
<expectedResult type="bool">true</expectedResult>
61+
<actualResult type="const">true</actualResult>
62+
</assertEquals>
63+
<assertEquals stepKey="assertArrayEqual" message="pass">
64+
<expectedResult type="const">[1, 2]</expectedResult>
65+
<actualResult type="const">[1,2]</actualResult>
66+
</assertEquals>
67+
<assertFalse stepKey="assertFalse" message="pass">
68+
<actualResult type="bool">0</actualResult>
69+
</assertFalse>
70+
<assertFileNotExists stepKey="assertFileNotExists1" message="pass">
71+
<actualResult type="string">/out.txt</actualResult>
72+
</assertFileNotExists>
73+
<assertGreaterOrEquals stepKey="assertGreaterOrEquals" message="pass">
74+
<expectedResult type="int">2</expectedResult>
75+
<actualResult type="int">5</actualResult>
76+
</assertGreaterOrEquals>
77+
<assertGreaterThan stepKey="assertGreaterthan" message="pass">
78+
<expectedResult type="int">2</expectedResult>
79+
<actualResult type="int">5</actualResult>
80+
</assertGreaterThan>
81+
<assertGreaterThanOrEqual stepKey="assertGreaterThanOrEqual" message="pass">
82+
<expectedResult type="int">2</expectedResult>
83+
<actualResult type="int">5</actualResult>
84+
</assertGreaterThanOrEqual>
85+
<assertInternalType stepKey="assertStringType" message="pass">
86+
<expectedResult type="string">string</expectedResult>
87+
<actualResult type="string">xyz</actualResult>
88+
</assertInternalType>
89+
<assertInternalType stepKey="assertIntType" message="pass">
90+
<expectedResult type="string">int</expectedResult>
91+
<actualResult type="int">21</actualResult>
92+
</assertInternalType>
93+
<assertInternalType stepKey="assertFloatType" message="pass">
94+
<expectedResult type="string">float</expectedResult>
95+
<actualResult type="const">1.23</actualResult>
96+
</assertInternalType>
97+
<assertInternalType stepKey="assertBoolType" message="pass">
98+
<expectedResult type="string">bool</expectedResult>
99+
<actualResult type="const">true</actualResult>
100+
</assertInternalType>
101+
<assertInternalType stepKey="assertArrayType" message="pass">
102+
<expectedResult type="string">array</expectedResult>
103+
<actualResult type="const">[1,2]</actualResult>
104+
</assertInternalType>
105+
<assertLessOrEquals stepKey="assertLessOrEquals" message="pass">
106+
<expectedResult type="int">5</expectedResult>
107+
<actualResult type="int">2</actualResult>
108+
</assertLessOrEquals>
109+
<assertLessThan stepKey="assertLessThan" message="pass">
110+
<expectedResult type="int">5</expectedResult>
111+
<actualResult type="int">2</actualResult>
112+
</assertLessThan>
113+
<assertLessThanOrEqual stepKey="assertLessThanOrEquals" message="pass">
114+
<expectedResult type="int">5</expectedResult>
115+
<actualResult type="int">2</actualResult>
116+
</assertLessThanOrEqual>
117+
<assertNotContains stepKey="assertNotContainsInArray" message="pass">
118+
<expectedResult type="string">bc</expectedResult>
119+
<actualResult type="const">['item1' => 'a', 'item2' => 'ab']</actualResult>
120+
</assertNotContains>
121+
<assertNotContains stepKey="assertNotContainsInString" message="pass">
122+
<expectedResult type="string">bc</expectedResult>
123+
<actualResult type="string">text</actualResult>
124+
</assertNotContains>
125+
<assertNotEmpty stepKey="assertNotEmpty" message="pass">
126+
<actualResult type="const">[1, 2]</actualResult>
127+
</assertNotEmpty>
128+
<assertNotEquals stepKey="assertNotEquals" message="pass" delta="">
129+
<expectedResult type="int">2</expectedResult>
130+
<actualResult type="int">5</actualResult>
131+
</assertNotEquals>
132+
<assertNotEquals stepKey="assertNotEqualsWithDelta" message="pass" delta="1">
133+
<expectedResult type="int">2</expectedResult>
134+
<actualResult type="int">5</actualResult>
135+
</assertNotEquals>
136+
<assertNotNull stepKey="assertNotNull" message="pass">
137+
<actualResult type="string">abc</actualResult>
138+
</assertNotNull>
139+
<assertNotRegExp stepKey="assertNotRegExp" message="pass">
140+
<expectedResult type="string">/foo/</expectedResult>
141+
<actualResult type="string">bar</actualResult>
142+
</assertNotRegExp>
143+
<assertNotSame stepKey="assertNotSame" message="pass">
144+
<expectedResult type="string">log</expectedResult>
145+
<actualResult type="string">tag</actualResult>
146+
</assertNotSame>
147+
<assertRegExp stepKey="assertRegExp" message="pass">
148+
<expectedResult type="string">/foo/</expectedResult>
149+
<actualResult type="string">foo</actualResult>
150+
</assertRegExp>
151+
<assertSame stepKey="assertSame" message="pass">
152+
<expectedResult type="string">bar</expectedResult>
153+
<actualResult type="string">bar</actualResult>
154+
</assertSame>
155+
<assertStringStartsNotWith stepKey="assertStringStartsNotWith" message="pass">
156+
<expectedResult type="string">a</expectedResult>
157+
<actualResult type="string">banana</actualResult>
158+
</assertStringStartsNotWith>
159+
<assertStringStartsWith stepKey="assertStringStartsWith" message="pass">
160+
<expectedResult type="string">a</expectedResult>
161+
<actualResult type="string">apple</actualResult>
162+
</assertStringStartsWith>
163+
<assertTrue stepKey="assertTrue" message="pass">
164+
<actualResult type="bool">1</actualResult>
165+
</assertTrue>
166+
167+
<!-- asserts backward compatible -->
168+
<comment stepKey="commentBackwardCompatible" userInput="asserts backward compatible"/>
169+
<assertArrayHasKey stepKey="assertArrayHasKeyBackwardCompatible" expected="apple" expectedType="string" actual="['orange' => 2, 'apple' => 1]" actualType="const" message="pass"/>
170+
<assertArrayNotHasKey stepKey="assertArrayNotHasKeyBackwardCompatible" expected="kiwi" expectedType="string" actual="['orange' => 2, 'apple' => 1]" message="pass"/>
171+
<assertContains stepKey="assertContains1BackwardCompatible" expected="ab" expectedType="string" actual="['item1' => 'a', 'item2' => 'ab']" message="pass"/>
172+
<assertContains stepKey="assertContains2BackwardCompatible" expected="ab" expectedType="string" actual="abcde" actualType="string" message="pass"/>
173+
<assertCount stepKey="assertCountBackwardCompatible" expected="2" expectedType="int" actual="['a', 'b']" message="pass"/>
174+
<assertEmpty stepKey="assertEmptyBackwardCompatible" actual="[]" message="pass"/>
175+
<assertEquals stepKey="assertEquals1BackwardCompatible" expected="Copyright ©" expectedType="string" actual="Copyright ©" actualType="string" message="pass"/>
176+
<assertEquals stepKey="assertEquals2BackwardCompatible" expected="2" expectedType="int" actual="2" actualType="int" message="pass"/>
177+
<assertEquals stepKey="assertEquals3BackwardCompatible" expected="2.01" expectedType="float" actual="2.03" actualType="float" delta="0.1" message="pass"/>
178+
<assertFalse stepKey="assertFalse1BackwardCompatible" actual="0" actualType="bool" message="pass"/>
179+
<assertFileNotExists stepKey="assertFileNotExists1BackwardCompatible" actual="/out.txt" actualType="string" message="pass"/>
180+
<assertGreaterOrEquals stepKey="assertGreaterOrEqualsBackwardCompatible" expected="2" expectedType="int" actual="5" actualType="int" message="pass"/>
181+
<assertGreaterThan stepKey="assertGreaterThanBackwardCompatible" expected="2" expectedType="int" actual="5" actualType="int" message="pass"/>
182+
<assertGreaterThanOrEqual stepKey="assertGreaterThanOrEqualBackwardCompatible" expected="2" expectedType="int" actual="5" actualType="int" message="pass"/>
183+
<assertInternalType stepKey="assertInternalType1BackwardCompatible" expected="string" expectedType="string" actual="xyz" actualType="string" message="pass"/>
184+
<assertInternalType stepKey="assertInternalType2BackwardCompatible" expected="int" expectedType="string" actual="21" actualType="int" message="pass"/>
185+
<assertInternalType stepKey="assertInternalType3BackwardCompatible" expected="float" expectedType="string" actual="1.23" actualType="const" message="pass"/>
186+
<assertInternalType stepKey="assertInternalType4BackwardCompatible" expected="bool" expectedType="string" actual="false" actualType="const" message="pass"/>
187+
<assertInternalType stepKey="assertInternalType5BackwardCompatible" expected="array" expectedType="string" actual="[1,2]" actualType="const" message="pass"/>
188+
<assertLessOrEquals stepKey="assertLessOrEqualBackwardCompatibles" expected="5" expectedType="int" actual="2" actualType="int" message="pass"/>
189+
<assertLessThan stepKey="assertLessThanBackwardCompatible" expected="5" expectedType="int" actual="2" actualType="int" message="pass"/>
190+
<assertLessThanOrEqual stepKey="assertLessThanOrEqualBackwardCompatible" expected="5" expectedType="int" actual="2" actualType="int" message="pass"/>
191+
<assertNotContains stepKey="assertNotContains1BackwardCompatible" expected="bc" expectedType="string" actual="['item1' => 'a', 'item2' => 'ab']" message="pass"/>
192+
<assertNotContains stepKey="assertNotContains2BackwardCompatible" expected="bc" expectedType="string" actual="text" actualType="string" message="pass"/>
193+
<assertNotEmpty stepKey="assertNotEmpty1BackwardCompatible" actual="[1, 2]" message="pass"/>
194+
<assertNotEquals stepKey="assertNotEqualsBackwardCompatible" expected="2" expectedType="int" actual="5" actualType="int" message="pass" delta=""/>
195+
<assertNotNull stepKey="assertNotNull1BackwardCompatible" actual="abc" actualType="string" message="pass"/>
196+
<assertNotRegExp stepKey="assertNotRegExpBackwardCompatible" expected="/foo/" expectedType="string" actual="bar" actualType="string" message="pass"/>
197+
<assertNotSame stepKey="assertNotSameBackwardCompatible" expected="log" expectedType="string" actual="tag" actualType="string" message="pass"/>
198+
<assertRegExp stepKey="assertRegExpBackwardCompatible" expected="/foo/" expectedType="string" actual="foo" actualType="string" message="pass"/>
199+
<assertSame stepKey="assertSameBackwardCompatible" expected="bar" expectedType="string" actual="bar" actualType="string" message="pass"/>
200+
<assertStringStartsNotWith stepKey="assertStringStartsNotWithBackwardCompatible" expected="a" expectedType="string" actual="banana" actualType="string" message="pass"/>
201+
<assertStringStartsWith stepKey="assertStringStartsWithBackwardCompatible" expected="a" expectedType="string" actual="apple" actualType="string" message="pass"/>
202+
<assertTrue stepKey="assertTrueBackwardCompatible" actual="1" actualType="bool" message="pass"/>
203+
</test>
204+
</tests>

dev/tests/verification/Resources/AssertTest.txt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ class AssertTestCest
5252
$I->assertEquals($text, "Copyright © 2013-2017 Magento, Inc. All rights reserved.", "pass"); // stepKey: assertEquals1
5353
$I->assertEquals("Copyright © 2013-2017 Magento, Inc. All rights reserved.", $text, "pass"); // stepKey: assertEquals2
5454
$I->assertEquals(1.5, $text, "pass"); // stepKey: assertFloatTypeIsCorrect
55+
$I->assertEqualsWithDelta(1.55, 1.56, 0.1, "pass"); // stepKey: assertFloatTypeWithDelta
56+
$I->assertEquals(2, $text, "pass"); // stepKey: assertInt
57+
$I->assertEquals(true, $text, "pass"); // stepKey: assertBool
58+
$I->assertEquals([1, 2], $text, "pass"); // stepKey: assertArray
5559
$I->assertFalse(false, "pass"); // stepKey: assertFalse1
5660
$I->assertFileNotExists("/out.txt", "pass"); // stepKey: assertFileNotExists1
5761
$I->assertFileNotExists($text, "pass"); // stepKey: assertFileNotExists2
@@ -61,6 +65,9 @@ class AssertTestCest
6165
$I->assertIsString("xyz", "pass"); // stepKey: assertInternalType1
6266
$I->assertIsInt(21, "pass"); // stepKey: assertInternalType2
6367
$I->assertIsString($text, "pass"); // stepKey: assertInternalType3
68+
$I->assertIsFloat(1.23, "pass"); // stepKey: assertFloat
69+
$I->assertIsBool(true, "pass"); // stepKey: assertBoolType
70+
$I->assertIsArray([1,2], "pass"); // stepKey: assertArrayType
6471
$I->assertLessOrEquals(5, 2, "pass"); // stepKey: assertLessOrEquals
6572
$I->assertLessThan(5, 2, "pass"); // stepKey: assertLessThan
6673
$I->assertLessThanOrEqual(5, 2, "pass"); // stepKey: assertLessThanOrEquals
@@ -70,7 +77,7 @@ class AssertTestCest
7077
$I->assertStringNotContainsString("bc", $var, "pass"); // stepKey: assertStringNotContainsStringVar
7178
$I->assertNotEmpty([1, 2], "pass"); // stepKey: assertNotEmpty1
7279
$I->assertNotEmpty($text, "pass"); // stepKey: assertNotEmpty2
73-
$I->assertNotEqualsWithDelta(2, 5, 0, "pass"); // stepKey: assertNotEquals
80+
$I->assertNotEqualsWithDelta(2, 5, 1, "pass"); // stepKey: assertNotEquals
7481
$I->assertNotNull("abc", "pass"); // stepKey: assertNotNull1
7582
$I->assertNotNull($text, "pass"); // stepKey: assertNotNull2
7683
$I->assertNotRegExp("/foo/", "bar", "pass"); // stepKey: assertNotRegExp
@@ -92,15 +99,19 @@ class AssertTestCest
9299
$I->assertEmpty([], "pass"); // stepKey: assertEmptyBackwardCompatible
93100
$I->assertEquals($text, "Copyright © 2013-2017 Magento, Inc. All rights reserved.", "pass"); // stepKey: assertEquals1BackwardCompatible
94101
$I->assertEquals("Copyright © 2013-2017 Magento, Inc. All rights reserved.", $text, "pass"); // stepKey: assertEquals2BackwardCompatible
102+
$I->assertEqualsWithDelta(2, $text, 0.2, "pass"); // stepKey: assertEquals3BackwardCompatible
95103
$I->assertFalse(false, "pass"); // stepKey: assertFalse1BackwardCompatible
96104
$I->assertFileNotExists("/out.txt", "pass"); // stepKey: assertFileNotExists1BackwardCompatible
97105
$I->assertFileNotExists($text, "pass"); // stepKey: assertFileNotExists2BackwardCompatible
98106
$I->assertGreaterOrEquals(2, 5, "pass"); // stepKey: assertGreaterOrEqualsBackwardCompatible
99107
$I->assertGreaterThan(2, 5, "pass"); // stepKey: assertGreaterThanBackwardCompatible
100108
$I->assertGreaterThanOrEqual(2, 5, "pass"); // stepKey: assertGreaterThanOrEqualBackwardCompatible
101109
$I->assertIsString("xyz", "pass"); // stepKey: assertInternalType1BackwardCompatible
102-
$I->assertIsInt(21, "pass"); // stepKey: assertInternalType2BackwardCompatible
103-
$I->assertIsString($text, "pass"); // stepKey: assertInternalType3BackwardCompatible
110+
$I->assertIsString($text, "pass"); // stepKey: assertInternalType2BackwardCompatible
111+
$I->assertIsInt(21, "pass"); // stepKey: assertInternalType3BackwardCompatible
112+
$I->assertIsFloat(1.23, "pass"); // stepKey: assertInternalType4BackwardCompatible
113+
$I->assertIsBool(false, "pass"); // stepKey: assertInternalType5BackwardCompatible
114+
$I->assertIsArray([1,2], "pass"); // stepKey: assertInternalType6BackwardCompatible
104115
$I->assertLessOrEquals(5, 2, "pass"); // stepKey: assertLessOrEqualBackwardCompatibles
105116
$I->assertLessThan(5, 2, "pass"); // stepKey: assertLessThanBackwardCompatible
106117
$I->assertLessThanOrEqual(5, 2, "pass"); // stepKey: assertLessThanOrEqualBackwardCompatible

0 commit comments

Comments
 (0)