/iaLib/ia_examples/ia/Work/WorkDay/WorkDayCalculator_example.php
<?php
$ia_example = [
'title' => 'ia\Work\WorkDay\WorkDayCalculator', // 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/WorkDayCalculator_example_code.php', // method by method example, blank '' not shown.
];
include( __DIR__ . '/../../../template/ia_example_class.php');
/iaLib/ia_examples/code/ia/Work/WorkDay/WorkDayCalculator_example_code.php
use ia\Work\WorkDay\WorkDayCalculator;
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>
/*
\$workDayCalculator = new WorkDayCalculator(<span class="type"></span> \$dayCalculator);
*/
\$workDayCalculator = new WorkDayCalculator(null /* == */);
</pre>
CONSTRUCTOR_PROTOTYPE;
$workDayCalculator = new WorkDayCalculator(null /* == */);
echo '<ul class="usage">';
///////// \$workDayCalculator->hourToWorkableHour(new DateTimeImmutable()); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_hourToWorkableHour'><b>\$workDayCalculator->hourToWorkableHour(<span class="type">DateTimeImmutable</span> \$dateTime) <span>: </span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkDayCalculator", "hourToWorkableHour")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->hourToWorkableHour(new DateTimeImmutable());
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workDayCalculator->hourToWorkableHour(new DateTimeImmutable())
);
echo "</pre>";
echo '</ol>';
///////// \$workDayCalculator->add(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_add'><b>\$workDayCalculator->add(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDate, <span class="type">integer|string</span> \$numDays) <span>: DateTimeImmutable</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkDayCalculator", "add")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->add(3, 3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workDayCalculator->add(3, 3)
);
echo "</pre>";
echo '</ol>';
///////// \$workDayCalculator->sub(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_sub'><b>\$workDayCalculator->sub(<span class="type">string|integer|DateTime|DateTimeImmutable</span> \$anyDate, <span class="type">integer|string</span> \$numDays) <span>: DateTimeImmutable</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkDayCalculator", "sub")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->sub(3, 3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workDayCalculator->sub(3, 3)
);
echo "</pre>";
echo '</ol>';
///////// \$workDayCalculator->addWorkDay(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_addWorkDay'><b>\$workDayCalculator->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\WorkDayCalculator", "addWorkDay")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->addWorkDay(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workDayCalculator->addWorkDay(3)
);
echo "</pre>";
echo '</ol>';
///////// \$workDayCalculator->subWorkDay(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_subWorkDay'><b>\$workDayCalculator->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\WorkDayCalculator", "subWorkDay")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->subWorkDay(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workDayCalculator->subWorkDay(3)
);
echo "</pre>";
echo '</ol>';
///////// \$workDayCalculator->numberOfWorkDays(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_numberOfWorkDays'><b>\$workDayCalculator->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\WorkDayCalculator", "numberOfWorkDays")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->numberOfWorkDays(3, 3); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $workDayCalculator->numberOfWorkDays(3, 3);
echo '</ol>';
///////// \$workDayCalculator->workDaysArray(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_workDaysArray'><b>\$workDayCalculator->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\WorkDayCalculator", "workDaysArray")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->workDaysArray(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workDayCalculator->workDaysArray(3)
);
echo "</pre>";
echo '</ol>';
///////// \$workDayCalculator->is_nonWorkDay(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_is_nonWorkDay'><b>\$workDayCalculator->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\WorkDayCalculator", "is_nonWorkDay")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->is_nonWorkDay(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$workDayCalculator->is_nonWorkDay(3)
);
echo "</pre>";
echo '</ol>';
///////// \$workDayCalculator->toJson(); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_toJson'><b>\$workDayCalculator->toJson() <span>: string|bool</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Work\WorkDay\WorkDayCalculator", "toJson")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$workDayCalculator->toJson(); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $workDayCalculator->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\WorkDayCalculator;
use PHPUnit\Framework\TestCase;
class WorkDayCalculatorTest extends TestCase {
/**
* @dataProvider hourToWorkableHour_Provider
*
*/
public function test_hourToWorkableHour($dateTime , $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->hourToWorkableHour($dateTime) );
}
function hourToWorkableHour_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider add_Provider
*
*/
public function test_add($anyDate, $numDays , $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->add($anyDate, $numDays) );
}
function add_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider sub_Provider
*
*/
public function test_sub($anyDate, $numDays , $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->sub($anyDate, $numDays) );
}
function sub_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider addWorkDay_Provider
*
*/
public function test_addWorkDay($anyDate, $numDays , $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->addWorkDay($anyDate, $numDays) );
}
function addWorkDay_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider subWorkDay_Provider
*
*/
public function test_subWorkDay($anyDate, $numDays , $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->subWorkDay($anyDate, $numDays) );
}
function subWorkDay_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider numberOfWorkDays_Provider
*
*/
public function test_numberOfWorkDays($anyDateFrom, $anyDateTo , $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->numberOfWorkDays($anyDateFrom, $anyDateTo) );
}
function numberOfWorkDays_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider workDaysArray_Provider
*
*/
public function test_workDaysArray($anyDateFrom, $anyDateTo , $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->workDaysArray($anyDateFrom, $anyDateTo) );
}
function workDaysArray_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider is_nonWorkDay_Provider
*
*/
public function test_is_nonWorkDay($anyDate , $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->is_nonWorkDay($anyDate) );
}
function is_nonWorkDay_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider toJson_Provider
*
*/
public function test_toJson( $expected) {
$workDayCalculator = new WorkDayCalculator($dayCalculator);
$this->assertEquals($expected, $workDayCalculator->toJson() );
}
function toJson_Provider() {
return [
'test 1' => [ '' ],
];
}
}
ia Doc