Skip to content

Commit 0370d14

Browse files
committed
testing whether type conversion happens on setting values
1 parent ed87101 commit 0370d14

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

tests/10_Writing/SetPropertyTypesTest.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,25 @@ public function testCreateValueInt()
113113
$this->assertEquals(\PHPCR\PropertyType::LONG, $value->getType());
114114
}
115115

116+
/**
117+
* Test that explicitly setting the type overrides autodetection.
118+
*/
119+
public function testCreateValueIntWithDouble()
120+
{
121+
$value = $this->node->setProperty('propIntNum', 100.3, PropertyType::LONG);
122+
$this->assertInstanceOf('PHPCR\PropertyInterface', $value);
123+
$this->assertSame('100', $value->getString());
124+
$this->assertSame(100, $value->getLong());
125+
$this->assertEquals(\PHPCR\PropertyType::LONG, $value->getType());
126+
127+
$this->saveAndRenewSession();
128+
$value = $this->session->getProperty('/tests_general_base/numberPropertyNode/jcr:content/propIntNum');
129+
$this->assertSame('100', $value->getString());
130+
$this->assertSame(100, $value->getLong());
131+
$this->assertEquals(\PHPCR\PropertyType::LONG, $value->getType());
132+
}
133+
134+
116135
public function testCreateValueDouble()
117136
{
118137
$value = $this->node->setProperty('propDouble', 10.6);
@@ -130,6 +149,26 @@ public function testCreateValueDouble()
130149
$this->assertEquals(\PHPCR\PropertyType::DOUBLE, $value->getType());
131150
}
132151

152+
/**
153+
* Test that explicitly setting the type overrides autodetection.
154+
*/
155+
public function testCreateValueDoubleWithInt()
156+
{
157+
$value = $this->node->setProperty('propDoubleNum', 10, PropertyType::DOUBLE);
158+
$this->assertInstanceOf('PHPCR\PropertyInterface', $value);
159+
$this->assertSame('10', $value->getString());
160+
$this->assertSame(10.0, $value->getDouble());
161+
$this->assertSame(10, $value->getLong());
162+
$this->assertEquals(\PHPCR\PropertyType::DOUBLE, $value->getType());
163+
164+
$this->saveAndRenewSession();
165+
$value = $this->session->getProperty('/tests_general_base/numberPropertyNode/jcr:content/propDoubleNum');
166+
$this->assertSame('10', $value->getString());
167+
$this->assertSame(10.0, $value->getDouble());
168+
$this->assertSame(10, $value->getLong());
169+
$this->assertEquals(\PHPCR\PropertyType::DOUBLE, $value->getType());
170+
}
171+
133172
public function testCreateValueBoolean()
134173
{
135174
$value = $this->node->setProperty('propBoolean', true);

0 commit comments

Comments
 (0)