This repository was archived by the owner on Mar 29, 2022. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -14,6 +14,12 @@ public function setFallback(ParameterInterface $fallback);
1414 */
1515 public function toArray ();
1616
17+ /**
18+ * @param array $keyOrDefaults
19+ * @return array
20+ */
21+ public function getMany (array $ keyOrDefaults = []);
22+
1723 /**
1824 * @param string $key
1925 * @param mixed $default
Original file line number Diff line number Diff line change @@ -45,6 +45,24 @@ public function toArray()
4545 return $ arrayToReturn ;
4646 }
4747
48+ /**
49+ * {@inheritdoc}
50+ */
51+ public function getMany (array $ keyOrDefaults = [])
52+ {
53+ $ dataToReturn = [];
54+ foreach ($ keyOrDefaults as $ key => $ value ) {
55+ if (is_integer ($ key )) {
56+ if ($ this ->has ($ value )) {
57+ $ dataToReturn [$ value ] = $ this ->get ($ value );
58+ }
59+ } else {
60+ $ dataToReturn [$ key ] = $ this ->get ($ key , $ value );
61+ }
62+ }
63+ return $ dataToReturn ;
64+ }
65+
4866 /**
4967 * {@inheritdoc}
5068 */
Original file line number Diff line number Diff line change @@ -91,4 +91,48 @@ public function testHasWithFallback()
9191 $ this ->assertTrue ($ params ->has ('fallback ' ));
9292 $ this ->assertFalse ($ params ->has ('undefined ' ));
9393 }
94- }
94+
95+
96+ public function testGetMany ()
97+ {
98+ $ params = $ this ->param1 ;
99+
100+ $ this ->assertSame (
101+ [
102+ 'string ' => 'string! ' ,
103+ 'number ' => '10 '
104+ ],
105+ $ params ->getMany (['string ' , 'number ' ])
106+ );
107+
108+ $ this ->assertSame (
109+ [
110+ 'string ' => 'string! ' ,
111+ ],
112+ $ params ->getMany (['string ' ])
113+ );
114+
115+ $ this ->assertSame (
116+ [
117+ 'string ' => 'string! ' ,
118+ ],
119+ $ params ->getMany (['string ' , 'unknown ' ])
120+ );
121+
122+ $ this ->assertSame (
123+ [
124+ 'string ' => 'string! ' ,
125+ 'unknown ' => null ,
126+ ],
127+ $ params ->getMany (['string ' , 'unknown ' => null ])
128+ );
129+
130+ $ this ->assertSame (
131+ [
132+ 'string ' => 'string! ' ,
133+ 'unknown ' => false ,
134+ ],
135+ $ params ->getMany (['string ' => false , 'unknown ' => false ])
136+ );
137+ }
138+ }
Original file line number Diff line number Diff line change 44use Mockery ;
55use PHPUnit_Framework_TestCase ;
66use Wandu \Http \Contracts \ParameterInterfaceTestTrait ;
7- use Wandu \Http \Support \CastProviderTrait ;
87
98class ParameterTest extends PHPUnit_Framework_TestCase
109{
@@ -36,6 +35,5 @@ public function setUp()
3635 'string1 ' => 'string 1 fallback! ' ,
3736 'fallback ' => 'fallback! ' ,
3837 ]));
39-
4038 }
4139}
You can’t perform that action at this time.
0 commit comments