Esempio n. 1
0
 /**
  * Tests redefining mocks in a different namespace.
  *
  * @test
  * @dataprovider provideTestNamespace
  */
 public function testRedefiningNamespaces()
 {
     $this->builder->setNamespace(__NAMESPACE__);
     $this->mock = $this->builder->build();
     $this->mock->enable();
     $this->assertEquals(1234, time());
 }
Esempio n. 2
0
 /**
  * Tests build().
  *
  * @test
  */
 public function testBuild()
 {
     $builder = new MockBuilder();
     $builder->setNamespace(__NAMESPACE__)->setName("time")->setFunction(function () {
         return 1234;
     });
     $mock = $builder->build();
     $mock->enable();
     $this->assertEquals(1234, time());
     $mock->disable();
     $builder->setFunctionProvider(new FixedValueFunction(123));
     $mock = $builder->build();
     $mock->enable();
     $this->assertEquals(123, time());
     $mock->disable();
 }
Esempio n. 3
0
 /**
  * Tests the example from the documentation.
  *
  * @test
  */
 public function testExample2()
 {
     $builder = new MockBuilder();
     $builder->setNamespace(__NAMESPACE__)->setName("time")->setFunctionProvider(new FixedValueFunction(12345));
     $mock = $builder->build();
     $mock->enable();
     assert(time() == 12345);
     $this->assertEquals(12345, time());
 }
 /**
  * Tests case insensitive mocks.
  *
  * @param string $mockName  The mock function name.
  *
  * @test
  * @dataProvider provideTestCaseSensitivity
  */
 public function testCaseSensitivity($mockName)
 {
     $builder = new MockBuilder();
     $builder->setNamespace(__NAMESPACE__)->setName($mockName)->setFunctionProvider(new FixedValueFunction(1234));
     $this->mock = $builder->build();
     $this->mock->enable();
     $this->assertEquals(1234, time(), "time() is not mocked");
     $this->assertEquals(1234, Time(), "Time() is not mocked");
     $this->assertEquals(1234, TIME(), "TIME() is not mocked");
 }
 /**
  * Tests getCallable()
  *
  * @test
  */
 public function testGetCallable()
 {
     $function = new FixedMicrotimeFunction();
     $function->setMicrotimeAsFloat(1.00000001);
     $builder = new MockBuilder();
     $builder->setNamespace(__NAMESPACE__)->setName("microtime")->setFunctionProvider($function);
     $mock = $builder->build();
     $mock->enable();
     $this->assertEquals("0.00000001 1", microtime());
     $this->assertEquals(1.00000001, microtime(true));
     $mock->disable();
 }
Esempio n. 6
0
 /**
  * @requires PHP 5.4
  *
  * @expectedException           \Phalcon\Exception
  * @expectedExceptionMessage    iconv module not loaded
  */
 public function testExtensionNotLoaded()
 {
     $mock = $this->getMockBuilder('\\malkusch\\phpmock\\phpunit\\MockDelegate')->getMock();
     $functionMockBuilder = new MockBuilder();
     $functionMockBuilder->setNamespace(__NAMESPACE__)->setName("extension_loaded")->setFunctionProvider(new MockDelegateFunction($mock));
     $functionMock = $functionMockBuilder->build();
     $functionMock->enable();
     $result = $this->getTestResultObject();
     $result->addListener(new MockDisabler($functionMock));
     $iconv = new MockObjectProxy($mock);
     $iconv->expects($this->once())->willReturn(false);
     Slug::generate('test 233');
     $iconv->disable();
 }
Esempio n. 7
0
 /**
  * Returns the enabled function mock.
  *
  * This mock will be disabled automatically after the test run.
  *
  * @param string $namespace The function namespace.
  * @param string $name      The function name.
  *
  * @return \PHPUnit_Framework_MockObject_MockObject The PHPUnit mock.
  */
 public function getFunctionMock($namespace, $name)
 {
     $delegateBuilder = new MockDelegateFunctionBuilder();
     $delegateBuilder->build($name);
     $mock = $this->getMockBuilder($delegateBuilder->getFullyQualifiedClassName())->getMockForAbstractClass();
     $mock->__phpunit_getInvocationMocker()->addMatcher(new DefaultArgumentRemover());
     $functionMockBuilder = new MockBuilder();
     $functionMockBuilder->setNamespace($namespace)->setName($name)->setFunctionProvider($mock);
     $functionMock = $functionMockBuilder->build();
     $functionMock->enable();
     $this->registerForTearDown($functionMock);
     $proxy = new MockObjectProxy($mock);
     return $proxy;
 }
 /**
  * Builds a sleep(), usleep(), date(), time() and microtime() mock environment.
  *
  * @return MockEnvironment
  */
 public function build()
 {
     $environment = new MockEnvironment();
     $builder = new MockBuilder();
     $builder->setNamespace($this->namespace);
     // microtime() mock
     $microtime = new FixedMicrotimeFunction($this->timestamp);
     $builder->setName("microtime")->setFunctionProvider($microtime);
     $environment->addMock($builder->build());
     // time() mock
     $builder->setName("time")->setFunction([$microtime, "getTime"]);
     $environment->addMock($builder->build());
     // date() mock
     $date = new FixedDateFunction($this->timestamp);
     $builder->setName("date")->setFunctionProvider($date);
     $environment->addMock($builder->build());
     $incrementables = [$microtime, $date];
     // sleep() mock
     $builder->setName("sleep")->setFunctionProvider(new SleepFunction($incrementables));
     $environment->addMock($builder->build());
     // usleep() mock
     $builder->setName("usleep")->setFunctionProvider(new UsleepFunction($incrementables));
     $environment->addMock($builder->build());
     return $environment;
 }
 /**
  * Tests defining the mock after calling the qualified function name.
  *
  * @test
  */
 public function testDefiningAfterCallingQualified()
 {
     $function = __NAMESPACE__ . '\\str_word_count';
     $this->assertFalse(function_exists($function));
     \str_word_count("foo");
     $builder = new MockBuilder();
     $builder->setNamespace(__NAMESPACE__)->setName("str_word_count")->setFunctionProvider(new FixedValueFunction("bar"));
     $this->mock = $builder->build();
     $this->mock->enable();
     $this->assertTrue(function_exists($function));
     $this->assertEquals("bar", str_word_count("foo"));
 }