public function expects($invocationRestriction)
 {
     $current_expectation = new Expectation($this);
     $current_expectation->setInvocationRestriction($invocationRestriction);
     $this->expectations[] = $current_expectation;
     return $current_expectation;
 }
 /**
  * @test
  */
 public function can_assert_arrays_of_data()
 {
     $expectation = array(array('name' => 'string', 'address' => array('civic#' => 'integer', 'street' => 'string'), 'is_male' => 'boolean', 'birthdate' => '~[0-9]{4}/[0-9]{2}/[0-9]{2}~'), '1+');
     $data = array(array('name' => 'jo blo', 'address' => array('civic#' => 123, 'street' => 'main'), 'is_male' => true, 'birthdate' => '1999/12/21'), array('name' => 'jo blo', 'address' => array('civic#' => 123, 'street' => 'main'), 'is_male' => true, 'birthdate' => '1999/12/21'), array('name' => 'jo blo', 'address' => array('civic#' => 123, 'street' => 'main'), 'is_male' => true, 'birthdate' => '1999/12/21'));
     $exp = new Expectation($expectation);
     $this->assertTrue($exp->assert($data));
 }
 public function verify(Expectation $expectation)
 {
     foreach ($this->methodCalls as $methodCall) {
         if ($methodCall->getMethod() !== $expectation->getName()) {
             continue;
         }
         if (!$expectation->matchArgs($methodCall->getArgs())) {
             continue;
         }
         $expectation->verifyCall($methodCall->getArgs());
     }
     $expectation->verify();
 }
 /**
  * Records the call as expectation and returns the mehtod options object.
  *
  * @param   string method the method name
  * @param   var[] args an array of arguments
  * @return  var
  */
 public function handleInvocation($method, $args)
 {
     $expectation = new Expectation($method);
     $expectation->setArguments($args);
     if ($this->expectationMap->containsKey($method)) {
         $methodExpectations = $this->expectationMap->get($method);
     } else {
         $methodExpectations = new ExpectationList();
         $this->expectationMap->put($method, $methodExpectations);
     }
     $methodExpectations->add($expectation);
     return new MethodOptions($expectation, $method);
 }
 public function throws_sets_the_exception_property_of_the_expectation()
 {
     $expectation = new Expectation('foo');
     $sut = new MethodOptions($expectation, 'foo');
     $expected = new XPException('foo');
     $sut->throws($expected);
     $this->assertEquals($expected, $expectation->getException());
 }
 public function test()
 {
     $loader = new ResourceLoader();
     $definitions = new Definition($loader->load($this->source));
     foreach ($definitions->getExpectations() as $definition) {
         if (null !== $definition['type']) {
             $actual = $loader->getType($definition['uri']);
             if ($actual !== $definition['type']) {
                 throw new FailedExpectationException("Type mismatch for {$definition['uri']}. Got [{$actual}] but expected [{$definition['type']}]");
             }
         }
         $expectation = new Expectation($definition['expected']);
         if (!$expectation->assert($loader->load($definition['uri']))) {
             throw new FailedExpectationException(implode("\n", $expectation->getMessages()));
         }
     }
     return true;
 }
 public static function setProperty($propertyName)
 {
     $expectation = new Expectation(Core::getLanguage());
     return $expectation->setProperty($propertyName);
 }
 public function __clone()
 {
     parent::__clone();
     $this->_actualCount = 0;
 }
Exemple #9
0
 public function stubs($method)
 {
     if (empty($this->expectations[$method])) {
         $expectation = new Expectation($this, $method);
         $expectation->atLeast(0);
         $this->expectations[$method] = $expectation;
     } else {
         $expectation = $this->expectations[$method];
     }
     return $expectation;
 }
 public function getNext_SameExpectationTwice_whenRepeatIs2()
 {
     $expect = new Expectation('method');
     $expect->setRepeat(2);
     $this->sut->add($expect);
     $this->assertEquals($expect, $this->sut->getNext(array()));
     $this->assertEquals($expect, $this->sut->getNext(array()));
     $this->assertNull($this->sut->getNext(array()));
 }
 public function handleInvocation_should_throw_exception_when_expectation_defines_one()
 {
     $expected = new XPException('foo');
     $myExpectation = new Expectation('foo');
     $myExpectation->setException($expected);
     $expectationsList = new ExpectationList();
     $expectationsList->add($myExpectation);
     $this->expectationMap->put('foo', $expectationsList);
     try {
         $this->sut->handleInvocation('foo', NULL);
         $this->fail('Exception not thrown.', NULL, $expect);
     } catch (XPException $e) {
         $this->assertEquals($expected, $e);
     }
 }
 public function __construct($groupName, $method = NULL, $with = NULL, $will = NULL)
 {
     parent::__construct(NULL, $method, $with, $will);
     $this->groupName = $groupName;
 }