diff --git a/sources/PropertyType/ValueType/Leaf/ValueTypeBoolean.php b/sources/PropertyType/ValueType/Leaf/ValueTypeBoolean.php index b363cbb23..8c606882c 100644 --- a/sources/PropertyType/ValueType/Leaf/ValueTypeBoolean.php +++ b/sources/PropertyType/ValueType/Leaf/ValueTypeBoolean.php @@ -7,7 +7,9 @@ namespace Combodo\iTop\PropertyType\ValueType\Leaf; +use Combodo\iTop\DesignElement; use Combodo\iTop\Forms\Block\Base\CheckboxFormBlock; +use utils; /** * @since 3.3.0 @@ -18,4 +20,16 @@ class ValueTypeBoolean extends AbstractLeafValueType { return CheckboxFormBlock::class; } + + public function DeserializeFromDOMNode(DesignElement $oDOMNode): mixed + { + $value = parent::DeserializeFromDOMNode($oDOMNode); + + return utils::IsTrue($value); + } + + public function SerializeToDOMNode(?string $sPropertyName, mixed $value, DesignElement $oDOMNode): void + { + parent::SerializeToDOMNode($sPropertyName, $value ? 'true' : 'false', $oDOMNode); + } } diff --git a/sources/PropertyType/ValueType/Leaf/ValueTypeInteger.php b/sources/PropertyType/ValueType/Leaf/ValueTypeInteger.php index ef60550c6..cedbc412d 100644 --- a/sources/PropertyType/ValueType/Leaf/ValueTypeInteger.php +++ b/sources/PropertyType/ValueType/Leaf/ValueTypeInteger.php @@ -7,6 +7,7 @@ namespace Combodo\iTop\PropertyType\ValueType\Leaf; +use Combodo\iTop\DesignElement; use Combodo\iTop\Forms\Block\Base\IntegerFormBlock; /** @@ -18,4 +19,16 @@ class ValueTypeInteger extends AbstractLeafValueType { return IntegerFormBlock::class; } + + public function DeserializeFromDOMNode(DesignElement $oDOMNode): mixed + { + $value = parent::DeserializeFromDOMNode($oDOMNode); + + return intval($value); + } + + public function SerializeToDOMNode(?string $sPropertyName, mixed $value, DesignElement $oDOMNode): void + { + parent::SerializeToDOMNode($sPropertyName, "$value", $oDOMNode); + } } diff --git a/tests/php-unit-tests/unitary-tests/sources/PropertyType/Serializer/XMLSerializerTest.php b/tests/php-unit-tests/unitary-tests/sources/PropertyType/Serializer/XMLSerializerTest.php index c047eccbd..783e6be0e 100644 --- a/tests/php-unit-tests/unitary-tests/sources/PropertyType/Serializer/XMLSerializerTest.php +++ b/tests/php-unit-tests/unitary-tests/sources/PropertyType/Serializer/XMLSerializerTest.php @@ -283,6 +283,8 @@ XML, 'class_property' => 'class_b', ], ], + 'boolean_property' => true, + 'integer_property' => 3, ], 'sPropertyTypeXML' => << @@ -316,6 +318,12 @@ XML, + + + + + + @@ -337,6 +345,8 @@ XML, class_b + true + 3 XML, ],