/** * @test */ public function clear_disposes_all_contained_disposables_but_not_the_composite_disposable() { $disposed1 = false; $disposed2 = false; $d1 = new CallbackDisposable(function () use(&$disposed1) { $disposed1 = true; }); $d2 = new CallbackDisposable(function () use(&$disposed2) { $disposed2 = true; }); $disposable = new CompositeDisposable(array($d1, $d2)); $disposable->clear(); $this->assertTrue($disposed1); $this->assertTrue($disposed2); $disposed3 = false; $d3 = new CallbackDisposable(function () use(&$disposed3) { $disposed3 = true; }); $disposable->add($d3); $this->assertFalse($disposed3); }