/iaLib/ia_examples/ia/Work/WorkDay/WorkHourCalculator_example.php
<?php
$ia_example = [
'title' => 'ia\Work\WorkDay\WorkHourCalculator', // fully qualified className
'summary' => '', // class summary
'full_example' => '', // full usage example, relative path from ia_examples, blank '' not shown.
'example_file' => 'code/ia/Work/WorkDay/WorkHourCalculator_example_code.php', // method by method example, blank '' not shown.
];
include( __DIR__ . '/../../../template/ia_example_class.php');
/iaLib/ia_examples/code/ia/Work/WorkDay/WorkHourCalculator_example_code.php
use ia\Work\WorkDay\WorkHourCalculator;
use ia\DocumentIt\DocumentIt;
echo '<h3>Disclaimer: Auto generated file.
Please help us setting parameters to useful values and extending the examples.
</h3>';
try {
echo <<< CONSTRUCTOR_PROTOTYPE
<pre>
/*
\$workHourCalculator = new WorkHourCalculator(<span class="type"></span> \$dayCalculator);
*/
\$workHourCalculator = new WorkHourCalculator(null /* == */);
</pre>
CONSTRUCTOR_PROTOTYPE;
$workHourCalculator = new WorkHourCalculator(null /* == */);
echo '<ul class="usage">';
///////// \$workHourCalculator->add(null /* == */, null /* == */); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_add'><b>\$workHourCalculator->add(<span class="type"></span> \$dateTime, <span class="type"></span> \$numHours) <span>: </span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "add")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->add(null /* == */, null /* == */);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->add(null /* == */, null /* == */)
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->sub(null /* == */, null /* == */); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_sub'><b>\$workHourCalculator->sub(<span class="type"></span> \$dateTime, <span class="type"></span> \$numHours) <span>: </span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "sub")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->sub(null /* == */, null /* == */);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->sub(null /* == */, null /* == */)
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->workDaysArray(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_workDaysArray'><b>\$workHourCalculator->workDaysArray(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDateFrom, <span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDateTo <span class="default">= null</span>) <span>: array</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "workDaysArray")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->workDaysArray(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->workDaysArray(3)
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->addWorkHours(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_addWorkHours'><b>\$workHourCalculator->addWorkHours(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDate, <span class="type">integer|string</span> \$numHours) <span>: DateTimeImmutable</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "addWorkHours")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->addWorkHours(3, 3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->addWorkHours(3, 3)
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->subWorkHours(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_subWorkHours'><b>\$workHourCalculator->subWorkHours(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDate, <span class="type">integer|string</span> \$numHours) <span>: DateTimeImmutable</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "subWorkHours")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->subWorkHours(3, 3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->subWorkHours(3, 3)
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->numberOfWorkHours(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_numberOfWorkHours'><b>\$workHourCalculator->numberOfWorkHours(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDateFrom, <span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDateTo) <span>: int</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "numberOfWorkHours")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->numberOfWorkHours(3, 3); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $workHourCalculator->numberOfWorkHours(3, 3);
echo '</ol>';
///////// \$workHourCalculator->hourToWorkableHour(new DateTimeImmutable()); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_hourToWorkableHour'><b>\$workHourCalculator->hourToWorkableHour(<span class="type">DateTimeImmutable</span> \$dateTime) <span>: </span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "hourToWorkableHour")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->hourToWorkableHour(new DateTimeImmutable());
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->hourToWorkableHour(new DateTimeImmutable())
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->hoursLeftInDay(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_hoursLeftInDay'><b>\$workHourCalculator->hoursLeftInDay(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDate) <span>: int</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "hoursLeftInDay")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->hoursLeftInDay(3); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $workHourCalculator->hoursLeftInDay(3);
echo '</ol>';
///////// \$workHourCalculator->addWorkDay(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_addWorkDay'><b>\$workHourCalculator->addWorkDay(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDate, <span class="type">integer|string</span> \$numDays <span class="default">= 1</span>) <span>: DateTimeImmutable</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "addWorkDay")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->addWorkDay(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->addWorkDay(3)
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->subWorkDay(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_subWorkDay'><b>\$workHourCalculator->subWorkDay(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDate, <span class="type">integer|string</span> \$numDays <span class="default">= 1</span>) <span>: DateTimeImmutable</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "subWorkDay")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->subWorkDay(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->subWorkDay(3)
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->numberOfWorkDays(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_numberOfWorkDays'><b>\$workHourCalculator->numberOfWorkDays(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDateFrom, <span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDateTo) <span>: int</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "numberOfWorkDays")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->numberOfWorkDays(3, 3); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $workHourCalculator->numberOfWorkDays(3, 3);
echo '</ol>';
///////// \$workHourCalculator->is_nonWorkDay(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_is_nonWorkDay'><b>\$workHourCalculator->is_nonWorkDay(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDate) <span>: boolean</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "is_nonWorkDay")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->is_nonWorkDay(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workHourCalculator->is_nonWorkDay(3)
);
echo "</pre>";
echo '</ol>';
///////// \$workHourCalculator->toJson(); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_toJson'><b>\$workHourCalculator->toJson() <span>: string|bool</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkHourCalculator", "toJson")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workHourCalculator->toJson(); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $workHourCalculator->toJson();
echo '</ol>';
/* PerfilExample adds new methods here */
echo '</ul>';
} catch(Exception $exception) { echo "<pre class='errorBlock'>$exception</pre>"; }
phpunit test file template
<?php
use ia\Work\WorkDay\WorkHourCalculator;
use PHPUnit\Framework\TestCase;
class WorkHourCalculatorTest extends TestCase {
/**
* @dataProvider add_Provider
*
*/
public function test_add($dateTime, $numHours , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->add($dateTime, $numHours) );
}
function add_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider sub_Provider
*
*/
public function test_sub($dateTime, $numHours , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->sub($dateTime, $numHours) );
}
function sub_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider workDaysArray_Provider
*
*/
public function test_workDaysArray($anyDateFrom, $anyDateTo , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->workDaysArray($anyDateFrom, $anyDateTo) );
}
function workDaysArray_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider addWorkHours_Provider
*
*/
public function test_addWorkHours($anyDate, $numHours , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->addWorkHours($anyDate, $numHours) );
}
function addWorkHours_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider subWorkHours_Provider
*
*/
public function test_subWorkHours($anyDate, $numHours , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->subWorkHours($anyDate, $numHours) );
}
function subWorkHours_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider numberOfWorkHours_Provider
*
*/
public function test_numberOfWorkHours($anyDateFrom, $anyDateTo , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->numberOfWorkHours($anyDateFrom, $anyDateTo) );
}
function numberOfWorkHours_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider hourToWorkableHour_Provider
*
*/
public function test_hourToWorkableHour($dateTime , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->hourToWorkableHour($dateTime) );
}
function hourToWorkableHour_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider hoursLeftInDay_Provider
*
*/
public function test_hoursLeftInDay($anyDate , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->hoursLeftInDay($anyDate) );
}
function hoursLeftInDay_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider addWorkDay_Provider
*
*/
public function test_addWorkDay($anyDate, $numDays , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->addWorkDay($anyDate, $numDays) );
}
function addWorkDay_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider subWorkDay_Provider
*
*/
public function test_subWorkDay($anyDate, $numDays , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->subWorkDay($anyDate, $numDays) );
}
function subWorkDay_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider numberOfWorkDays_Provider
*
*/
public function test_numberOfWorkDays($anyDateFrom, $anyDateTo , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->numberOfWorkDays($anyDateFrom, $anyDateTo) );
}
function numberOfWorkDays_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider is_nonWorkDay_Provider
*
*/
public function test_is_nonWorkDay($anyDate , $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->is_nonWorkDay($anyDate) );
}
function is_nonWorkDay_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider toJson_Provider
*
*/
public function test_toJson( $expected) {
$workHourCalculator = new WorkHourCalculator($dayCalculator);
$this->assertEquals($expected, $workHourCalculator->toJson() );
}
function toJson_Provider() {
return [
'test 1' => [ '' ],
];
}
}
ia Doc