Commit af7dcc24 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

- Utilisation de floatval() pour extraire les valeurs numériques de durée...

 - Utilisation de floatval() pour extraire les valeurs numériques de durée dans les templates des feuilles de temps
 - Ajout de tests unitaires pour tester les fonctions de conversion
parent 54ff427a
Loading
Loading
Loading
Loading
Loading
+2 −2
Changes for data/templates/functions.inc.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ require_once __DIR__ . '/variables.inc.php';
 * @return string
 */
function duration ($duration): string {
    $duration = (float)$duration;
    $duration = floatval($duration);
    $heures = floor($duration);
    $minutes = round(($duration - $heures) * 60);
    if ($minutes < 10) {
@@ -21,7 +21,7 @@ function duration ($duration): string {
 * @return string
 */
function durationRounded ($duration): string {
    $duration = (float)$duration;
    $duration = floatval($duration);
    $roundStep = 5;
    $heures = floor($duration);
    $minutes = round(($duration - $heures) * 60 / $roundStep) * $roundStep;
+60 −0
Changes for tests/Oscar/template/TimesheetDurationTest.php: 60 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php
/**
 * Created by PhpStorm.
 * User: jacksay
 * Date: 18/04/2018
 * Time: 13:39
 */


use Oscar\Exception\OscarException;
use PHPUnit\Framework\TestCase;
use Zend\Db\Sql\Ddl\Column\Datetime;

require_once __DIR__ . "/../../../data/templates/functions.inc.php";

class TimesheetDurationTest extends TestCase
{


    public function testDuration()
    {
        $this->assertEquals(
            "8:00",
            duration(8)
        );

        $this->assertEquals(
            "4:30",
            duration(4.5)
        );

        $this->assertEquals(
            "4:15",
            duration(4.25)
        );

        $this->assertEquals(
            "7:24",
            duration(7.4)
        );
    }

    public function testDurationBadValue()
    {
//        $result = duration("");
//        die("ICI : $result");
        $this->assertEquals(
            "0:00",
            duration("")
        );
        $this->assertEquals(
            "8:00",
            duration("8")
        );
        $this->assertEquals(
            "0:00",
            duration("non-numeric")
        );
    }
}
 No newline at end of file
+3 −0
Changes for tests/phpunit.xml: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -18,5 +18,8 @@
    <testsuite name="Service">
      <directory>Oscar/Service</directory>
    </testsuite>
    <testsuite name="TemplateFunctions">
      <directory>Oscar/template</directory>
    </testsuite>
  </testsuites>
</phpunit>