public function testConcatDeepArray()
 {
     $middleware = new \FewAgency\Reformulator\Middleware\ConcatenateInput();
     $request = new \Illuminate\Http\Request();
     $request->merge(['a' => ['A', 'b' => ['B']]]);
     $result_request = $middleware->handle($request, function ($request) {
         return $request;
     }, 'a');
     $this->assertEquals('A,B', $result_request->a);
 }
 public function testExplodeSlash()
 {
     $middleware = new \FewAgency\Reformulator\Middleware\ExplodeInput();
     $request = new \Illuminate\Http\Request();
     $request->merge(['a' => "1/2/3"]);
     $result_request = $middleware->handle($request, function ($request) {
         return $request;
     }, 'result', 'a', '/');
     $this->assertEquals(['1', '2', '3'], $result_request->result);
 }
 public function testDotUnset()
 {
     $request = new \Illuminate\Http\Request();
     $request->merge(['a' => ['b' => 'c']]);
     $this->assertEquals('c', $request->input('a.b'));
     $o = new ModifiesRequestInputTester();
     $o->testUnsetRequestInput($request, 'a.b');
     $this->assertNull($request->input('a.b'));
     $this->assertInternalType('array', $request->input('a'));
 }
 public function testCleanAllFields()
 {
     $middleware = new \FewAgency\Reformulator\Middleware\RemoveEmptyInput();
     $request = new \Illuminate\Http\Request();
     $request->merge(['a' => ['b' => '', 'c' => 0], 'd' => 1, 'e' => '']);
     $result_request = $middleware->handle($request, function ($request) {
         return $request;
     });
     $this->assertNull($result_request->input('a.b'));
     $this->assertNull($result_request->input('e'));
     $this->assertEquals(0, $result_request->input('a.c'));
     $this->assertEquals(1, $result_request->d);
 }
 public function testCleanArray()
 {
     $middleware = new \FewAgency\Reformulator\Middleware\CleanArrayInput();
     $request = new \Illuminate\Http\Request();
     $request->merge(['a' => ['A', '', 'B', '', 'C'], 'b' => '', 'c' => 'C']);
     $result_request = $middleware->handle($request, function ($request) {
         return $request;
     }, 'a', 'b', 'c');
     $this->assertNotContains('', $result_request->a);
     $this->assertContains('A', $result_request->a);
     $this->assertContains('B', $result_request->a);
     $this->assertContains('C', $result_request->a);
     $this->assertEquals([], $result_request->b);
     $this->assertEquals(['C'], $result_request->c);
 }