public function testConnectionChoosesOnlyOneWorkingConnection() { $mock1 = new FullMockConnection(); $mock1->setReturnValue("isAlive", false); $mock1->expectOnce("start"); $mock1->expectNever("read"); $mock1->expectNever("write"); $mock2 = new FullMockConnection(); $mock2->setReturnValue("isAlive", true); $mock2->expectOnce("start"); $mock2->expectOnce("read"); $mock2->expectCallCount("write", 3); $mock2->expectAt(0, "write", array("foo", "*")); $mock2->expectAt(1, "write", array("bar", "*")); $mock2->expectAt(2, "write", array("zip", "*")); $mock3 = new FullMockConnection(); $mock3->setReturnValue("isAlive", true); $mock3->expectNever("start"); $mock3->expectNever("read"); $mock3->expectNever("write"); $multi = new Swift_Connection_Multi(); $multi->addConnection($mock1, "mock1"); $multi->addConnection($mock2, "mock2"); $multi->addConnection($mock3, "mock3"); $multi->start(); $multi->read(); $multi->write("foo"); $multi->write("bar"); $multi->write("zip"); }