Thomas Weinert avatar Thomas Weinert committed a55fa57

Tested; Carica\Io\Deferred\Promise::pipe()

Comments (0)

Files changed (2)

src/Io/Deferred/Promise.php

       Callable $failFilter = NULL,
       Callable $progressFilter = NULL
     ) {
-      return $defer->pipe($doneFilter, $failFilter, $progressFilter);
+      return $this->_defer->pipe($doneFilter, $failFilter, $progressFilter);
     }
 
     public function progress(Callable $callback) {

tests/Io/Deferred/PromiseTest.php

       $this->assertSame($promise, $promise->fail($function));
     }
 
+    /**
+     * @covers Carica\Io\Deferred\Promise::pipe
+     */
+    public function testPipeWithNullArguments() {
+      $promise = $this
+        ->getMockBuilder('Carica\Io\Deferred\Promise')
+        ->disableOriginalConstructor()
+        ->getMock();
+      $defer = $this->getMock('Carica\Io\Deferred');
+      $defer
+        ->expects($this->once())
+        ->method('pipe')
+        ->with(NULL, NULL, NULL)
+        ->will($this->returnValue($promise));
+
+      $promise = new Promise($defer);
+      $filterPromise = $promise->pipe();
+      $this->assertInstanceOf('Carica\Io\Deferred\Promise', $filterPromise);
+      $this->assertNotSame($filterPromise, $promise);
+    }
+
+    /**
+     * @covers Carica\Io\Deferred\Promise::pipe
+     */
+    public function testPipeWithFunctionArguments() {
+      $promise = $this
+        ->getMockBuilder('Carica\Io\Deferred\Promise')
+        ->disableOriginalConstructor()
+        ->getMock();
+      $function = function() {};
+      $defer = $this->getMock('Carica\Io\Deferred');
+      $defer
+        ->expects($this->once())
+        ->method('pipe')
+        ->with($function, $function, $function)
+        ->will($this->returnValue($promise));
+
+      $promise = new Promise($defer);
+      $filterPromise = $promise->pipe($function, $function, $function);
+      $this->assertInstanceOf('Carica\Io\Deferred\Promise', $filterPromise);
+      $this->assertNotSame($filterPromise, $promise);
+    }
   }
 }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.