function testComplicatedReturnSequence()
 {
     $mock = new MockDummy();
     $object = new Dummy();
     $mock->returnsAt(1, "aMethod", "aaa", array("a"));
     $mock->returnsAt(1, "aMethod", "bbb");
     $mock->returnsAt(2, "aMethod", $object, array('*', 2));
     $mock->returnsAt(2, "aMethod", "value", array('*', 3));
     $mock->returns("aMethod", 3, array(3));
     $this->assertNull($mock->aMethod());
     $this->assertEqual($mock->aMethod("a"), "aaa");
     $this->assertSame($mock->aMethod(1, 2), $object);
     $this->assertEqual($mock->aMethod(3), 3);
     $this->assertNull($mock->aMethod());
 }
 public function testComplicatedReturnSequence()
 {
     $mock = new MockDummy();
     $object = new Dummy();
     $mock->returnsAt(1, 'aMethod', 'aaa', array('a'));
     $mock->returnsAt(1, 'aMethod', 'bbb');
     $mock->returnsAt(2, 'aMethod', $object, array('*', 2));
     $mock->returnsAt(2, 'aMethod', 'value', array('*', 3));
     $mock->returns('aMethod', 3, array(3));
     $this->assertNull($mock->aMethod());
     $this->assertEqual($mock->aMethod('a'), 'aaa');
     $this->assertSame($mock->aMethod(1, 2), $object);
     $this->assertEqual($mock->aMethod(3), 3);
     $this->assertNull($mock->aMethod());
 }