add: more tests
This commit is contained in:
parent
fcd76cf130
commit
3d08b14f11
6 changed files with 154 additions and 36 deletions
|
@ -1,15 +1,105 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Http\Controllers;
|
||||
namespace Tests\Controllers;
|
||||
|
||||
use App\Http\Controllers\IssueValidationController;
|
||||
use Exception;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class IssueValidationControllerTest extends TestCase
|
||||
{
|
||||
|
||||
public function testHandle_single_issue()
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->issue_validation_controller = new IssueValidationController();
|
||||
}
|
||||
public function testValidDateConversion()
|
||||
{
|
||||
$this->assertEquals('2024-08-14 00:00:00', $this->issue_validation_controller->date_to_datetime('2024/08/14'));
|
||||
$this->assertEquals('2024-12-31 00:00:00', $this->issue_validation_controller->date_to_datetime('2024/12/31'));
|
||||
}
|
||||
|
||||
public function testInvalidDateFormat()
|
||||
{
|
||||
$this->expectException(Exception::class);
|
||||
$this->issue_validation_controller->date_to_datetime('invalid-date');
|
||||
}
|
||||
|
||||
public function testIssueIsBilled()
|
||||
{
|
||||
$labels = [['name' => 'RequestBy: User1']];
|
||||
$issue_time = [['time' => 3600]]; // 1 hour
|
||||
$this->assertTrue($this->issue_validation_controller->check_issue_is_billed($labels, $issue_time));
|
||||
}
|
||||
|
||||
public function testIssueIsNotBilledDueToNoTime()
|
||||
{
|
||||
$labels = [['name' => 'RequestBy: User1']];
|
||||
$issue_time = [['time' => 0]];
|
||||
$this->assertFalse($this->issue_validation_controller->check_issue_is_billed($labels, $issue_time));
|
||||
}
|
||||
|
||||
public function testIssueIsNotBilledDueToNoLabel()
|
||||
{
|
||||
$labels = [['name' => 'Bug']];
|
||||
$issue_time = [['time' => 3600]];
|
||||
$this->assertFalse($this->issue_validation_controller->check_issue_is_billed($labels, $issue_time));
|
||||
}
|
||||
|
||||
public function testTotalTimeCalculation()
|
||||
{
|
||||
$issue_time = [['time' => 10], ['time' => 20], ['time' => 30]];
|
||||
$this->assertEquals(60, $this->issue_validation_controller->get_issue_total_time($issue_time));
|
||||
}
|
||||
|
||||
public function testEmptyTimeArray()
|
||||
{
|
||||
$issue_time = [];
|
||||
$this->assertEquals(0, $this->issue_validation_controller->get_issue_total_time($issue_time));
|
||||
}
|
||||
|
||||
public function testSingleTimeEntry()
|
||||
{
|
||||
$issue_time = [['time' => 15]];
|
||||
$this->assertEquals(15, $this->issue_validation_controller->get_issue_total_time($issue_time));
|
||||
}
|
||||
|
||||
public function testIssueWithinDateRangeAndBilled()
|
||||
{
|
||||
$issue = ['closed_at' => '2024-08-15T10:00:00Z', 'labels' => [['name' => 'RequestBy: User1']]];
|
||||
$issue_time = [['time' => 3600]]; // 1 hour
|
||||
$this->assertTrue($this->issue_validation_controller->handle_single_issue('2024-08-14', '2024-08-16', $issue, $issue_time));
|
||||
}
|
||||
|
||||
public function testIssueOutsideDateRange()
|
||||
{
|
||||
$issue = ['closed_at' => '2024-08-13T10:00:00Z', 'labels' => [['name' => 'RequestBy: User1']]];
|
||||
$issue_time = [['time' => 3600]];
|
||||
$this->assertFalse($this->issue_validation_controller->handle_single_issue('2024-08-14', '2024-08-16', $issue, $issue_time));
|
||||
}
|
||||
|
||||
public function testIssueNotBilled()
|
||||
{
|
||||
$issue = ['closed_at' => '2024-08-15T10:00:00Z', 'labels' => [['name' => 'Bug']]];
|
||||
$issue_time = [['time' => 0]];
|
||||
$this->assertFalse($this->issue_validation_controller->handle_single_issue('2024-08-14', '2024-08-16', $issue, $issue_time));
|
||||
}
|
||||
|
||||
public function testLabelExists()
|
||||
{
|
||||
$labels = [['name' => 'RequestBy: User1'], ['name' => 'Bug']];
|
||||
$this->assertTrue($this->issue_validation_controller->search_requested_by($labels));
|
||||
}
|
||||
|
||||
public function testLabelDoesNotExist()
|
||||
{
|
||||
$labels = [['name' => 'Bug'], ['name' => 'Feature']];
|
||||
$this->assertFalse($this->issue_validation_controller->search_requested_by($labels));
|
||||
}
|
||||
|
||||
public function testEmptyLabels()
|
||||
{
|
||||
$labels = [];
|
||||
$this->assertFalse($this->issue_validation_controller->search_requested_by($labels));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue