Overview

Namespaces

  • Alchemy
    • core
      • query
      • schema
    • dialect
    • engine
    • orm
    • tests
    • util
      • promise
  • PHP

Classes

  • ANSICompilerTest
  • ANSIDeleteTest
  • ANSIInsertTest
  • ANSISelectTest
  • ANSIUpdateTest
  • BaseTest
  • ColumnTypeTest
  • CompilerTest
  • DataTypeLexerTest
  • ElementTest
  • ExpressionTest
  • ForeignTest
  • InsertTest
  • Language
  • MapperTest
  • MockElement
  • MockPromisable
  • ORMQueryTest
  • PromiseTest
  • QueryTest
  • RelationshipTest
  • ScalarTest
  • SessionIntegrationTest
  • SignalTest
  • UploadedFile
  • WaitableTest
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: 
 3: namespace Alchemy\tests;
 4: use Alchemy\util\promise\Signal;
 5: 
 6: 
 7: class SignalTest extends BaseTest {
 8:     public function testSourceForwarding() {
 9:         // every Signal check() will call $this->fnCallback()
10:         $this->expectsCallback($this->exactly(4))
11:             ->will($this->onConsecutiveCalls(null, null, 4, 5));
12:         $signal = new Signal($this->fnCallback);
13: 
14:         $this->assertFalse($signal->check());
15:         $this->assertSame(null, $signal());
16:         $this->assertTrue($signal->check());
17:         $this->assertSame(5,    $signal());
18: 
19: 
20:         // passing a Signal to a Signal will redirect its source
21:         // therefore, this will resolve to NULL, NULL, 5 but never 7
22:         $this->expectsCallback($this->exactly(2))
23:             ->will($this->onConsecutiveCalls(null, 5));
24:         $signal = new Signal($this->fnCallback);
25: 
26:         $this->expectsCallback($this->exactly(2))
27:             ->will($this->onConsecutiveCalls(null, $signal, 7));
28:         $signal = new Signal($this->fnCallback);
29: 
30:         $this->assertFalse($signal->check());
31:         $this->assertSame(null, $signal());
32:         $this->assertSame(5,    $signal());
33:     }
34: }
API documentation generated by ApiGen 2.8.0