|
|
@@ -91,7 +91,6 @@ class TypeTest extends TestCase
|
|
|
return [
|
|
|
['string'],
|
|
|
['text'],
|
|
|
- ['boolean']
|
|
|
];
|
|
|
}
|
|
|
|
|
|
@@ -194,195 +193,6 @@ class TypeTest extends TestCase
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Tests string from database are converted correctly to PHP
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testStringToPHP()
|
|
|
- {
|
|
|
- $type = Type::build('string');
|
|
|
- $string = 'foo';
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
- $this->assertEquals('foo', $type->toPHP($string, $driver));
|
|
|
- $this->assertEquals('3', $type->toPHP(3, $driver));
|
|
|
- $this->assertEquals('3.14159', $type->toPHP(3.14159, $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Tests that passing a non-scalar value will thow an exception
|
|
|
- *
|
|
|
- * @expectedException InvalidArgumentException
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testStringToDatabaseNoScalar()
|
|
|
- {
|
|
|
- $type = Type::build('string');
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
- $type->toDatabase(['123'], $driver);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Tests integers from PHP are converted correctly to statement value
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testStringToStatement()
|
|
|
- {
|
|
|
- $type = Type::build('string');
|
|
|
- $string = '3';
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
- $this->assertEquals(PDO::PARAM_STR, $type->toStatement($string, $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Tests integers from database are converted correctly to PHP
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testTextToPHP()
|
|
|
- {
|
|
|
- $type = Type::build('string');
|
|
|
- $string = 'foo';
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
- $this->assertEquals('foo', $type->toPHP($string, $driver));
|
|
|
- $this->assertEquals('3', $type->toPHP(3, $driver));
|
|
|
- $this->assertEquals('3.14159', $type->toPHP(3.14159, $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Tests integers from PHP are converted correctly to statement value
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testTextToStatement()
|
|
|
- {
|
|
|
- $type = Type::build('string');
|
|
|
- $string = '3';
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
- $this->assertEquals(PDO::PARAM_STR, $type->toStatement($string, $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test converting booleans to database types.
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testBooleanToDatabase()
|
|
|
- {
|
|
|
- $type = Type::build('boolean');
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
-
|
|
|
- $this->assertNull($type->toDatabase(null, $driver));
|
|
|
- $this->assertTrue($type->toDatabase(true, $driver));
|
|
|
- $this->assertFalse($type->toDatabase(false, $driver));
|
|
|
- $this->assertTrue($type->toDatabase(1, $driver));
|
|
|
- $this->assertFalse($type->toDatabase(0, $driver));
|
|
|
- $this->assertTrue($type->toDatabase('1', $driver));
|
|
|
- $this->assertFalse($type->toDatabase('0', $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test converting an array to boolean results in an exception
|
|
|
- *
|
|
|
- * @expectedException InvalidArgumentException
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testBooleanToDatabaseError()
|
|
|
- {
|
|
|
- $type = Type::build('boolean');
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
- $this->assertTrue($type->toDatabase([1, 2], $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test convertring booleans to PDO types.
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testBooleanToStatement()
|
|
|
- {
|
|
|
- $type = Type::build('boolean');
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
-
|
|
|
- $this->assertEquals(PDO::PARAM_BOOL, $type->toStatement(true, $driver));
|
|
|
- $this->assertEquals(PDO::PARAM_BOOL, $type->toStatement(false, $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test convertring string booleans to PHP values.
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testBooleanToPHP()
|
|
|
- {
|
|
|
- $type = Type::build('boolean');
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
-
|
|
|
- $this->assertTrue($type->toPHP(true, $driver));
|
|
|
- $this->assertTrue($type->toPHP(1, $driver));
|
|
|
- $this->assertTrue($type->toPHP('1', $driver));
|
|
|
- $this->assertTrue($type->toPHP('TRUE', $driver));
|
|
|
- $this->assertTrue($type->toPHP('true', $driver));
|
|
|
-
|
|
|
- $this->assertFalse($type->toPHP(false, $driver));
|
|
|
- $this->assertFalse($type->toPHP(0, $driver));
|
|
|
- $this->assertFalse($type->toPHP('0', $driver));
|
|
|
- $this->assertFalse($type->toPHP('FALSE', $driver));
|
|
|
- $this->assertFalse($type->toPHP('false', $driver));
|
|
|
- $this->assertTrue($type->toPHP(['2', '3'], $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test marshalling booleans
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testBooleanMarshal()
|
|
|
- {
|
|
|
- $type = Type::build('boolean');
|
|
|
- $this->assertTrue($type->marshal(true));
|
|
|
- $this->assertTrue($type->marshal(1));
|
|
|
- $this->assertTrue($type->marshal('1'));
|
|
|
- $this->assertTrue($type->marshal('true'));
|
|
|
-
|
|
|
- $this->assertFalse($type->marshal('false'));
|
|
|
- $this->assertFalse($type->marshal('0'));
|
|
|
- $this->assertFalse($type->marshal(0));
|
|
|
- $this->assertFalse($type->marshal(''));
|
|
|
- $this->assertTrue($type->marshal('not empty'));
|
|
|
- $this->assertTrue($type->marshal(['2', '3']));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * Tests uuid from database are converted correctly to PHP
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testUuidToPHP()
|
|
|
- {
|
|
|
- $type = Type::build('uuid');
|
|
|
- $string = 'abc123-de456-fg789';
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
- $this->assertEquals($string, $type->toPHP($string, $driver));
|
|
|
- $this->assertEquals('3', $type->toPHP(3, $driver));
|
|
|
- $this->assertEquals('3.14159', $type->toPHP(3.14159, $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Tests integers from PHP are converted correctly to statement value
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testUuidToStatement()
|
|
|
- {
|
|
|
- $type = Type::build('uuid');
|
|
|
- $string = 'abc123-def456-ghi789';
|
|
|
- $driver = $this->getMock('\Cake\Database\Driver');
|
|
|
- $this->assertEquals(PDO::PARAM_STR, $type->toStatement($string, $driver));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
* Tests decimal from database are converted correctly to PHP
|
|
|
*
|
|
|
* @return void
|