/**
  * @test
  * @covers SlimApp\HasRequiredParamsTrait::hasRequiredParams
  * @param array $requiredParams The required parameters
  * @param array $data The data to be checked
  * @param boolean $returnValue The value returned by hasRequiredParams()
  * @dataProvider provider_hasRequiredParams_returns_true_if_data_contains_required_parameters
  * @see https://sandro-keil.de/blog/2015/08/31/phpunit-with-peek-and-poke-no-more-reflection/
  */
 function hasRequiredParams_returns_true_if_data_contains_required_parameters(array $requiredParams, array $data, $returnValue)
 {
     // Get mock for our trait
     $trait = $this->getMockForTrait('\\SlimApp\\HasRequiredParamsTrait');
     // Proxy the protected properties and methods
     $hasRequiredParamsTrait = new \SebastianBergmann\PeekAndPoke\Proxy($trait);
     // Now we can set the protected params...
     $hasRequiredParamsTrait->setRequiredParams($requiredParams);
     // ... and run the protected method
     $result = $hasRequiredParamsTrait->hasRequiredParams($data);
     $this->assertEquals($returnValue, $result);
 }
Exemplo n.º 2
0
 /**
  * @test
  * @covers SlimApp\Validator::unique
  * @param boolean|string $expectedResult The result returned by the function
  * @param boolean $ruleValue The value for the rule, stores in the rules property
  * @param mixed $value The value to validate
  * @param mixed $resultFindRow The result returned by findRow
  * @dataProvider provider_unique_returns_true_if_value_is_unique_error_message_otherwise
  */
 public function unique_returns_true_if_value_is_unique_error_message_otherwise($expectedResult, $ruleValue, $value, $resultFindRow)
 {
     $table = $this->getMockBuilder('SlimApp\\Db\\DbTable')->setMethods(['getTableName'])->getMock();
     $dbTable = new \SebastianBergmann\PeekAndPoke\Proxy($table);
     $model = $this->getMockBuilder('SlimApp\\Model')->setMockClassName('User')->getMock();
     $mapper = $this->getMockBuilder('SlimApp\\Db\\Mapper')->setMethods(['getDbTable', 'getModel', 'findRow'])->getMock();
     $mockMapper = $this->getMockBuilder('SlimApp\\Validator')->setConstructorArgs([$mapper])->getMockForAbstractClass();
     $mapper->method('getDbTable')->will($this->returnValue($dbTable));
     $dbTable->method('getTableName')->will($this->returnValue('Users'));
     $mapper->method('getModel')->will($this->returnValue($model));
     $mapper->method('findRow')->will($this->returnValue($resultFindRow));
     $validator = new \SebastianBergmann\PeekAndPoke\Proxy($mockMapper);
     $rules = ['fieldName' => ['unique' => $ruleValue]];
     $validator->rules = $rules;
     $result = $validator->unique($ruleValue, 'fieldName', $value);
     $this->assertEquals($expectedResult, $result);
 }
Exemplo n.º 3
0
 /**
  * @test
  * @param string $tableName
  * @param array $columnNames
  * @param array $values
  * @param string $where
  * @uses SlimApp\Db\DbTable::insert
  * @uses SlimApp\Db\DbTable::findRow
  * @dataProvider provider_delete_deletes_data_and_returns_true_on_success
  */
 public function delete_deletes_data_and_returns_true_on_success($tableName, $columnNames, $values, $where)
 {
     $config = (require __DIR__ . '/database-config-for-dbunit.php');
     $table = $this->getMockBuilder('SlimApp\\Db\\DbTable')->setConstructorArgs([$config])->getMockForAbstractClass();
     $dbTable = new \SebastianBergmann\PeekAndPoke\Proxy($table);
     // Set tablename manually (set in subclasses, not in abstract class...)
     $dbTable->tableName = $tableName;
     // Insert row and then delete it
     $dbTable->insert($columnNames, $values);
     $resultDelete = $dbTable->delete($where);
     // Check if row deleted
     $result = $dbTable->findRow($where);
     //die(var_dump($result));
     $this->assertTrue($resultDelete);
     $this->assertFalse($result);
 }