1010
1111namespace Elao \FormSimpleObjectMapper \Tests \Integration ;
1212
13+ use Symfony \Bundle \FrameworkBundle \Client ;
1314use Symfony \Bundle \FrameworkBundle \Test \WebTestCase ;
1415use Symfony \Component \HttpFoundation \Request ;
1516use Symfony \Component \HttpFoundation \Response ;
1617
1718class SymfonyFullStackIntegrationTest extends WebTestCase
1819{
19- public function testAddItemAction ()
20+ /** @var Client */
21+ private $ client ;
22+
23+ protected function setUp ()
24+ {
25+ $ this ->client = static ::createClient ();
26+ }
27+
28+ public function testAddItemToCartAction ()
2029 {
21- $ client = static ::createClient ();
22- $ crawler = $ client ->request (Request::METHOD_GET , '/cart/add-item ' );
23- $ response = $ client ->getResponse ();
30+ $ crawler = $ this ->client ->request (Request::METHOD_GET , '/cart/add-item ' );
31+ $ response = $ this ->client ->getResponse ();
2432
2533 $ this ->assertSame (Response::HTTP_OK , $ response ->getStatusCode ());
2634 $ this ->assertCount (1 , $ crawler ->filter ('form input[name="add_item_to_cart[quantity]"][type="number"] ' ));
@@ -30,8 +38,8 @@ public function testAddItemAction()
3038 $ form ['add_item_to_cart[reference] ' ] = 'A000012 ' ;
3139 $ form ['add_item_to_cart[quantity] ' ] = 3 ;
3240
33- $ client ->submit ($ form );
34- $ response = $ client ->getResponse ();
41+ $ this -> client ->submit ($ form );
42+ $ response = $ this -> client ->getResponse ();
3543
3644 $ this ->assertSame (Response::HTTP_OK , $ response ->getStatusCode ());
3745 $ this ->assertSame (<<<'DUMP'
@@ -43,27 +51,62 @@ public function testAddItemAction()
4351 , $ response ->getContent ());
4452 }
4553
46- public function testAddItemActionFormError ()
54+ public function testAddItemToCartActionFormError ()
55+ {
56+ $ crawler = $ this ->client ->request (Request::METHOD_POST , '/cart/add-item ' , [
57+ 'add_item_to_cart ' => [
58+ 'reference ' => 'A000012 ' ,
59+ 'quantity ' => 'invalid_number ' ,
60+ ],
61+ ]);
62+ $ response = $ this ->client ->getResponse ();
63+
64+ $ this ->assertSame (Response::HTTP_BAD_REQUEST , $ response ->getStatusCode ());
65+ $ this ->assertContains (
66+ 'This value is not valid. ' ,
67+ $ crawler ->filter ('form input[name="add_item_to_cart[quantity]"][type="number"] ' )->parents ()->html ()
68+ );
69+ }
70+
71+ public function testEditMediaAction ()
4772 {
48- $ client = static ::createClient ();
49- $ crawler = $ client ->request (Request::METHOD_GET , '/cart/add-item ' );
50- $ response = $ client ->getResponse ();
73+ $ crawler = $ this ->client ->request (Request::METHOD_GET , '/media/edit ' );
74+ $ response = $ this ->client ->getResponse ();
5175
5276 $ this ->assertSame (Response::HTTP_OK , $ response ->getStatusCode ());
53- $ this ->assertCount (1 , $ crawler ->filter ('form input[name="add_item_to_cart[quantity]"][type="number "] ' ));
54- $ this ->assertCount (1 , $ crawler ->filter ('form input[name="add_item_to_cart[reference]"][type="hidden "] ' ));
77+ $ this ->assertCount (1 , $ crawler ->filter ('form input[name="form[author] "] ' ));
78+ $ this ->assertCount (1 , $ crawler ->filter ('form input[name="form[mediaType] "] ' ));
5579
5680 $ form = $ crawler ->filter ('form ' )->form ();
57- $ form ['add_item_to_cart[reference ] ' ] = 'A000012 ' ;
58- $ form ['add_item_to_cart[quantity ] ' ] = 'invalid_number ' ;
81+ $ form ['form[author ] ' ] = 'Sarah Connor ' ;
82+ $ form ['form[mediaType ] ' ] = 'movie ' ;
5983
60- $ crawler = $ client ->submit ($ form );
61- $ response = $ client ->getResponse ();
84+ $ this -> client ->submit ($ form );
85+ $ response = $ this -> client ->getResponse ();
6286
6387 $ this ->assertSame (Response::HTTP_OK , $ response ->getStatusCode ());
88+ $ this ->assertSame (<<<'DUMP'
89+ Elao\FormSimpleObjectMapper\Tests\Fixtures\Media\Movie {
90+ -author: "Sarah Connor"
91+ }
92+ DUMP
93+ , $ response ->getContent ());
94+ }
95+
96+ public function testEditMediaActionFormError ()
97+ {
98+ $ crawler = $ this ->client ->request (Request::METHOD_POST , '/media/edit ' , [
99+ 'form ' => [
100+ 'author ' => 'Sarah Connor ' ,
101+ 'mediaType ' => 'undefined ' ,
102+ ],
103+ ]);
104+ $ response = $ this ->client ->getResponse ();
105+
106+ $ this ->assertSame (Response::HTTP_BAD_REQUEST , $ response ->getStatusCode ());
64107 $ this ->assertContains (
65108 'This value is not valid. ' ,
66- $ crawler ->filter ('form input[name="add_item_to_cart[quantity]"][type="number"] ' )-> parents ( )->html ()
109+ $ crawler ->filter ('form > div > ul > li ' )->html ()
67110 );
68111 }
69112}
0 commit comments