View source
<?php
namespace Drupal\Tests\tmgmt_smartling\Kernel;
use Drupal\KernelTests\KernelTestBase;
use Drupal\tmgmt_smartling\Smartling\TranslationProgressCalculator;
class TranslationProgressCalculatorTest extends KernelTestBase {
public function testCalculate($auto_authorize, $test_data, $logger_called_times, $result) {
$logger_mock = $this
->getMockBuilder('\\Drupal\\Core\\Logger\\LoggerChannel')
->setMethods([
"warning",
])
->disableOriginalConstructor()
->getMock();
$logger_mock
->expects($this
->exactly($logger_called_times))
->method("warning")
->with(t("Translation progress in dashboard 100% but for the connector progress = @percentage%.", [
"@percentage" => $result,
]));
$calculator = new TranslationProgressCalculator($logger_mock);
$this
->assertEquals($calculator
->calculate($test_data, $auto_authorize), $result);
}
public function testCalculateInvalidData() {
$logger_mock = $this
->getMockBuilder('\\Drupal\\Core\\Logger\\LoggerChannel')
->setMethods(NULL)
->disableOriginalConstructor()
->getMock();
$calculator = new TranslationProgressCalculator($logger_mock);
$calculator
->calculate([
"totalStringCount" => 0,
]);
}
public function testValidate($test_data, $result) {
$logger_mock = $this
->getMockBuilder('\\Drupal\\Core\\Logger\\LoggerChannel')
->setMethods(NULL)
->disableOriginalConstructor()
->getMock();
$calculator = new TranslationProgressCalculator($logger_mock);
$this
->assertEquals($calculator
->isValid($test_data), $result);
}
public function providerTestCalculate() {
$cases[] = [
"auto_authorize" => TRUE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 4,
"completedStringCount" => 0,
"excludedStringCount" => 1,
],
"logger_called" => 0,
"result" => 0,
];
$cases[] = [
"auto_authorize" => TRUE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 4,
"completedStringCount" => 5,
"excludedStringCount" => 1,
],
"logger_called" => 0,
"result" => 55,
];
$cases[] = [
"auto_authorize" => TRUE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 0,
"completedStringCount" => 5,
"excludedStringCount" => 1,
],
"logger_called" => 0,
"result" => 100,
];
$cases[] = [
"auto_authorize" => TRUE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 0,
"completedStringCount" => 0,
"excludedStringCount" => 0,
],
"logger_called" => 0,
"result" => 0,
];
$cases[] = [
"auto_authorize" => TRUE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 0,
"completedStringCount" => 0,
"excludedStringCount" => 10,
],
"logger_called" => 0,
"result" => 100,
];
$cases[] = [
"auto_authorize" => FALSE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 4,
"completedStringCount" => 5,
"excludedStringCount" => 1,
],
"logger_called" => 0,
"result" => 55,
];
$cases[] = [
"auto_authorize" => FALSE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 2,
"completedStringCount" => 5,
"excludedStringCount" => 1,
],
"logger_called" => 1,
"result" => 55,
];
$cases[] = [
"auto_authorize" => FALSE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 0,
"completedStringCount" => 5,
"excludedStringCount" => 1,
],
"logger_called" => 1,
"result" => 55,
];
$cases[] = [
"auto_authorize" => FALSE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 0,
"completedStringCount" => 0,
"excludedStringCount" => 0,
],
"logger_called" => 1,
"result" => 0,
];
$cases[] = [
"auto_authorize" => FALSE,
"data" => [
"totalStringCount" => 10,
"authorizedStringCount" => 0,
"completedStringCount" => 0,
"excludedStringCount" => 10,
],
"logger_called" => 0,
"result" => 100,
];
return $cases;
}
public function providerTestValidate() {
$cases[] = [
"data" => [
"totalStringCount" => 0,
"authorizedStringCount" => 0,
"completedStringCount" => 0,
"excludedStringCount" => 0,
],
"result" => TRUE,
];
$cases[] = [
"data" => [
"authorizedStringCount" => 0,
"completedStringCount" => 0,
"excludedStringCount" => 0,
],
"result" => FALSE,
];
$cases[] = [
"data" => [
"totalStringCount" => 0,
"completedStringCount" => 0,
"excludedStringCount" => 0,
],
"result" => FALSE,
];
$cases[] = [
"data" => [
"totalStringCount" => 0,
"authorizedStringCount" => 0,
"excludedStringCount" => 0,
],
"result" => FALSE,
];
$cases[] = [
"data" => [
"totalStringCount" => 0,
"authorizedStringCount" => 0,
"completedStringCount" => 0,
],
"result" => FALSE,
];
return $cases;
}
}