@@ -23,10 +23,14 @@ public function testProtocolVersion()
2323 }
2424
2525 $ initialMessage = $ this ->getMessage ();
26+ $ original = clone $ initialMessage ;
27+
2628 $ message = $ initialMessage ->withProtocolVersion ('1.0 ' );
29+
2730 $ this ->assertNotSameObject ($ initialMessage , $ message );
31+ $ this ->assertEquals ($ initialMessage , $ original , 'Message object MUST not be mutated ' );
2832
29- $ this ->assertEquals ('1.0 ' , $ message ->getProtocolVersion ());
33+ $ this ->assertSame ('1.0 ' , $ message ->getProtocolVersion ());
3034 }
3135
3236 public function testGetHeaders ()
@@ -35,12 +39,21 @@ public function testGetHeaders()
3539 $ this ->markTestSkipped ($ this ->skippedTests [__FUNCTION__ ]);
3640 }
3741
38- $ message = $ this ->getMessage ()->withAddedHeader ('content-type ' , 'text/html ' );
39- $ message = $ message ->withAddedHeader ('content-type ' , 'text/plain ' );
42+ $ initialMessage = $ this ->getMessage ();
43+ $ original = clone $ initialMessage ;
44+
45+ $ message = $ initialMessage
46+ ->withAddedHeader ('content-type ' , 'text/html ' )
47+ ->withAddedHeader ('content-type ' , 'text/plain ' );
48+
49+ $ this ->assertEquals ($ initialMessage , $ original , 'Message object MUST not be mutated ' );
50+
4051 $ headers = $ message ->getHeaders ();
4152
4253 $ this ->assertTrue (isset ($ headers ['content-type ' ]));
4354 $ this ->assertCount (2 , $ headers ['content-type ' ]);
55+ $ this ->assertContains ('text/html ' , $ headers ['content-type ' ]);
56+ $ this ->assertContains ('text/plain ' , $ headers ['content-type ' ]);
4457 }
4558
4659 public function testHasHeader ()
@@ -69,7 +82,7 @@ public function testGetHeader()
6982 $ this ->assertCount (2 , $ message ->getHeader ('CONTENT-TYPE ' ));
7083 $ emptyHeader = $ message ->getHeader ('Bar ' );
7184 $ this ->assertCount (0 , $ emptyHeader );
72- $ this ->assertTrue ( is_array ( $ emptyHeader) );
85+ $ this ->assertInternalType ( ' array ' , $ emptyHeader );
7386 }
7487
7588 public function testGetHeaderLine ()
@@ -84,7 +97,7 @@ public function testGetHeaderLine()
8497 $ this ->assertRegExp ('|text/html, ?text/plain| ' , $ message ->getHeaderLine ('Content-Type ' ));
8598 $ this ->assertRegExp ('|text/html, ?text/plain| ' , $ message ->getHeaderLine ('CONTENT-TYPE ' ));
8699
87- $ this ->assertEquals ('' , $ message ->getHeaderLine ('Bar ' ));
100+ $ this ->assertSame ('' , $ message ->getHeaderLine ('Bar ' ));
88101 }
89102
90103 public function testWithHeader ()
@@ -94,8 +107,11 @@ public function testWithHeader()
94107 }
95108
96109 $ initialMessage = $ this ->getMessage ();
110+ $ original = clone $ initialMessage ;
111+
97112 $ message = $ initialMessage ->withHeader ('content-type ' , 'text/html ' );
98113 $ this ->assertNotSameObject ($ initialMessage , $ message );
114+ $ this ->assertEquals ($ initialMessage , $ original , 'Message object MUST not be mutated ' );
99115 $ this ->assertEquals ('text/html ' , $ message ->getHeaderLine ('content-type ' ));
100116
101117 $ message = $ initialMessage ->withHeader ('content-type ' , 'text/plain ' );
@@ -109,7 +125,7 @@ public function testWithHeader()
109125
110126 $ message = $ initialMessage ->withHeader ('Bar ' , '' );
111127 $ this ->assertTrue ($ message ->hasHeader ('Bar ' ));
112- $ this ->assertEquals (['' ], $ message ->getHeader ('Bar ' ));
128+ $ this ->assertSame (['' ], $ message ->getHeader ('Bar ' ));
113129 }
114130
115131 /**
@@ -227,9 +243,11 @@ public function testBody()
227243 }
228244
229245 $ initialMessage = $ this ->getMessage ();
246+ $ original = clone $ initialMessage ;
230247 $ stream = $ this ->buildStream ('foo ' );
231248 $ message = $ initialMessage ->withBody ($ stream );
232249 $ this ->assertNotSameObject ($ initialMessage , $ message );
250+ $ this ->assertEquals ($ initialMessage , $ original , 'Message object MUST not be mutated ' );
233251
234252 $ this ->assertEquals ($ stream , $ message ->getBody ());
235253 }
0 commit comments