diff --git a/.phpunit.result.cache b/.phpunit.result.cache index f220749fb..90c076199 100644 --- a/.phpunit.result.cache +++ b/.phpunit.result.cache @@ -1 +1 @@ -C:37:"PHPUnit\Runner\DefaultTestResultCache":21204:{a:2:{s:7:"defects";a:37:{s:79:"Tests\Unit\Http\Controllers\Admin\StatisticsControllerTest::testIndexController";i:4;s:73:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testIndexController";i:4;s:74:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusController";i:4;s:96:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWhenServerNotInstalled";i:4;s:95:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWhenServerIsSuspended";i:4;s:103:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWithServerConnectionException";i:4;s:94:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWithRequestException";i:4;s:87:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testIndexWithout2FactorEnabled";i:4;s:84:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testIndexWith2FactorEnabled";i:4;s:83:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStore with data set #0";i:4;s:83:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStore with data set #1";i:4;s:108:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStoreWithInvalidTokenException with data set #0";i:4;s:108:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStoreWithInvalidTokenException with data set #1";i:4;s:82:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testNoUserDefined";i:6;s:81:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testNonAdminUser";i:6;s:74:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testWithInvalidIP";i:6;s:73:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testInvalidIdentifier";i:6;s:81:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testInvalidTokenForIdentifier";i:6;s:105:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldContinueIfRouteIsExempted";i:4;s:103:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNoTokenIsProvided";i:4;s:99:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNoNodeIsFound";i:4;s:93:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testSuccessfulMiddlewareProcess";i:4;s:89:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testExceptionIsThrownIfUserDoesNotExist";i:6;s:89:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testExceptionIsThrownIfUserIsNotAnAdmin";i:6;s:62:"Tests\Unit\Http\Middleware\AuthenticateTest::testLoggedOutUser";i:6;s:76:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testValidDaemonConnection";i:4;s:81:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testIgnoredRouteShouldContinue";i:4;s:85:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testExceptionThrownIfMissingHeader";i:3;s:100:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testExceptionIsThrownIfServerIsSuspended";i:6;s:103:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testExceptionIsThrownIfServerIsNotInstalled";i:6;s:98:"Tests\Unit\Http\Middleware\Server\AuthenticateAsSubuserTest::testExceptionIsThrownIfNoTokenIsFound";i:6;s:107:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testExceptionIsThrownIfNoDatabaseRecordFound";i:6;s:119:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testExceptionIsThrownIfDatabaseServerDoesNotMatchCurrent";i:6;s:115:"Tests\Unit\Http\Middleware\Server\ScheduleBelongsToServerTest::testExceptionIsThrownIfScheduleDoesNotBelongToServer";i:6;s:123:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfSubuserServerDoesNotMatchRequestServer";i:6;s:101:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfNoSubuserIsFound";i:6;s:100:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNodeIsNotFound";i:5;}s:5:"times";a:167:{s:81:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testSmtpDriverSelection";d:0.692;s:98:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testSmtpDriverSelectionWithOptionsPassed";d:0.038;s:84:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testPHPMailDriverSelection";d:0.046;s:84:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testMailgunDriverSelection";d:0.05;s:101:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testMailgunDriverSelectionWithOptionsPassed";d:0.037;s:85:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testMandrillDriverSelection";d:0.052;s:102:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testMandrillDriverSelectionWithOptionsPassed";d:0.038;s:85:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testPostmarkDriverSelection";d:0.051;s:102:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testPostmarkDriverSelectionWithOptionsPassed";d:0.037;s:77:"Tests\Unit\Commands\Location\DeleteLocationCommandTest::testLocationIsDeleted";d:0.106;s:93:"Tests\Unit\Commands\Location\DeleteLocationCommandTest::testLocationIsDeletedIfPassedInOption";d:0.042;s:106:"Tests\Unit\Commands\Location\DeleteLocationCommandTest::testInteractiveEnvironmentAllowsReAttemptingSearch";d:0.06;s:115:"Tests\Unit\Commands\Location\DeleteLocationCommandTest::testNonInteractiveEnvironmentThrowsErrorIfNoLocationIsFound";d:0.041;s:94:"Tests\Unit\Commands\Location\MakeLocationCommandTest::testLocationIsCreatedWithNoOptionsPassed";d:0.044;s:95:"Tests\Unit\Commands\Location\MakeLocationCommandTest::testLocationIsCreatedWhenOptionsArePassed";d:0.045;s:109:"Tests\Unit\Commands\Maintenance\CleanServiceBackupFilesCommandTest::testCommandCleansFilesMoreThan5MinutesOld";d:0.044;s:114:"Tests\Unit\Commands\Maintenance\CleanServiceBackupFilesCommandTest::testCommandDoesNotCleanFileLessThan5MinutesOld";d:0.039;s:77:"Tests\Unit\Commands\Schedule\ProcessRunnableCommandTest::testScheduleIsQueued";d:0.062;s:94:"Tests\Unit\Commands\Schedule\ProcessRunnableCommandTest::testScheduleWithNoTasksIsNotProcessed";d:0.042;s:127:"Tests\Unit\Commands\Schedule\ProcessRunnableCommandTest::testScheduleWithTasksObjectThatIsNotInstanceOfCollectionIsNotProcessed";d:0.042;s:69:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testSendAction";d:0.149;s:74:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testSendWithFilters";d:0.05;s:79:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testSendWithEmptyOptions";d:0.043;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #0";d:0.043;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #1";d:0.038;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #2";d:0.038;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #3";d:0.038;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #4";d:0.038;s:72:"Tests\Unit\Commands\User\DeleteUserCommandTest::testCommandWithNoOptions";d:0.065;s:83:"Tests\Unit\Commands\User\DeleteUserCommandTest::testCommandWithInvalidInitialSearch";d:0.047;s:67:"Tests\Unit\Commands\User\DeleteUserCommandTest::testReSearchAbility";d:0.044;s:102:"Tests\Unit\Commands\User\DeleteUserCommandTest::testAnsweringNoToDeletionConfirmationWillNotDeleteUser";d:0.043;s:81:"Tests\Unit\Commands\User\DeleteUserCommandTest::testNoInteractionWithSingleResult";d:0.043;s:84:"Tests\Unit\Commands\User\DeleteUserCommandTest::testNoInteractionWithMultipleResults";d:0.045;s:78:"Tests\Unit\Commands\User\DeleteUserCommandTest::testNoInteractionWithNoResults";d:0.037;s:97:"Tests\Unit\Commands\User\DisableTwoFactorCommandTest::testTwoFactorIsDisabledWhenNoOptionIsPassed";d:0.041;s:95:"Tests\Unit\Commands\User\DisableTwoFactorCommandTest::testTwoFactorIsDisabledWhenOptionIsPassed";d:0.041;s:76:"Tests\Unit\Commands\User\MakeUserCommandTest::testCommandWithNoPassedOptions";d:0.053;s:77:"Tests\Unit\Commands\User\MakeUserCommandTest::testCommandWithNoPasswordOption";d:0.044;s:74:"Tests\Unit\Commands\User\MakeUserCommandTest::testCommandWithOptionsPassed";d:0.043;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #0";d:0.603;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #1";d:0.038;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #2";d:0.038;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #3";d:0.038;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #4";d:0.041;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #5";d:0.037;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #6";d:0.038;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #7";d:0.037;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #8";d:0.037;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #9";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #10";d:0.038;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #11";d:0.038;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #12";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #13";d:0.039;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #14";d:0.038;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #15";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #16";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #17";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #18";d:0.043;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #19";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #20";d:0.037;s:77:"Tests\Unit\Http\Controllers\Admin\DatabaseControllerTest::testIndexController";d:0.174;s:76:"Tests\Unit\Http\Controllers\Admin\DatabaseControllerTest::testViewController";d:0.047;s:57:"Tests\Unit\Http\Controllers\MailControllerTest::testIndex";d:0.052;s:79:"Tests\Unit\Http\Controllers\Admin\StatisticsControllerTest::testIndexController";d:0.145;s:73:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testIndexController";d:0.054;s:74:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusController";d:0.039;s:96:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWhenServerNotInstalled";d:0.04;s:95:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWhenServerIsSuspended";d:0.037;s:103:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWithServerConnectionException";d:0.038;s:94:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWithRequestException";d:0.04;s:87:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testIndexWithout2FactorEnabled";d:0.068;s:84:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testIndexWith2FactorEnabled";d:0.042;s:83:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStore with data set #0";d:0.044;s:83:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStore with data set #1";d:0.041;s:108:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStoreWithInvalidTokenException with data set #0";d:0.049;s:108:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStoreWithInvalidTokenException with data set #1";d:0.043;s:82:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testNoUserDefined";d:0.044;s:81:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testNonAdminUser";d:0.047;s:78:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testAdminUser";d:0.041;s:81:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testWithNoIPRestrictions";d:0.043;s:72:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testWithValidIP";d:0.044;s:84:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testValidIPAgainstCIDRRange";d:0.043;s:74:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testWithInvalidIP";d:0.04;s:89:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testMissingBearerTokenThrowsException";d:0.049;s:73:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testInvalidIdentifier";d:0.042;s:66:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testValidToken";d:0.045;s:77:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testValidTokenWithUserKey";d:0.044;s:74:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testAccessWithoutToken";d:0.042;s:81:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testInvalidTokenForIdentifier";d:0.041;s:105:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldContinueIfRouteIsExempted";d:0.05;s:103:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNoTokenIsProvided";d:0.038;s:99:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNoNodeIsFound";d:0.035;s:93:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testSuccessfulMiddlewareProcess";d:0.04;s:67:"Tests\Unit\Http\Middleware\API\SetSessionDriverTest::testMiddleware";d:0.039;s:76:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testAdminsAreAuthenticated";d:0.049;s:89:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testExceptionIsThrownIfUserDoesNotExist";d:0.043;s:89:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testExceptionIsThrownIfUserIsNotAnAdmin";d:0.041;s:61:"Tests\Unit\Http\Middleware\AuthenticateTest::testLoggedInUser";d:0.04;s:62:"Tests\Unit\Http\Middleware\AuthenticateTest::testLoggedOutUser";d:0.039;s:76:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testValidDaemonConnection";d:0.04;s:81:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testIgnoredRouteShouldContinue";d:0.037;s:85:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testExceptionThrownIfMissingHeader";d:0.038;s:76:"Tests\Unit\Http\Middleware\LanguageMiddlewareTest::testLanguageIsSetForGuest";d:0.044;s:89:"Tests\Unit\Http\Middleware\LanguageMiddlewareTest::testLanguageIsSetWithAuthenticatedUser";d:0.042;s:64:"Tests\Unit\Http\Middleware\MaintenanceMiddlewareTest::testHandle";d:0.047;s:81:"Tests\Unit\Http\Middleware\MaintenanceMiddlewareTest::testHandleInMaintenanceMode";d:0.047;s:89:"Tests\Unit\Http\Middleware\RedirectIfAuthenticatedTest::testAuthenticatedUserIsRedirected";d:0.047;s:95:"Tests\Unit\Http\Middleware\RedirectIfAuthenticatedTest::testNonAuthenticatedUserIsNotRedirected";d:0.037;s:85:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestMissingUser";d:0.042;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #0";d:0.042;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #1";d:0.045;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #2";d:0.043;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #3";d:0.041;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #4";d:0.04;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #5";d:0.041;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #6";d:0.042;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #7";d:0.041;s:95:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorRequirementDisabled";d:0.042;s:103:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorRequirementWithInvalidValue";d:0.041;s:118:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAdminsAsAdminUserWith2FADisabled";d:0.043;s:117:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAdminsAsAdminUserWith2FAEnabled";d:0.04;s:102:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAdminsAsNonAdmin";d:0.05;s:115:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAllUsersAsUserWith2FADisabled";d:0.042;s:114:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAllUsersAsUserWith2FAEnabled";d:0.041;s:100:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testExceptionIsThrownIfServerIsSuspended";d:0.052;s:103:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testExceptionIsThrownIfServerIsNotInstalled";d:0.042;s:109:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testCorrectErrorPagesAreRendered with data set #0";d:0.038;s:109:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testCorrectErrorPagesAreRendered with data set #1";d:0.039;s:109:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testCorrectErrorPagesAreRendered with data set #2";d:0.039;s:82:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testValidServerProcess";d:0.042;s:85:"Tests\Unit\Http\Middleware\Server\AuthenticateAsSubuserTest::testSuccessfulMiddleware";d:0.05;s:98:"Tests\Unit\Http\Middleware\Server\AuthenticateAsSubuserTest::testExceptionIsThrownIfNoTokenIsFound";d:0.043;s:87:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testSuccessfulMiddleware";d:0.045;s:107:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testExceptionIsThrownIfNoDatabaseRecordFound";d:0.043;s:119:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testExceptionIsThrownIfDatabaseServerDoesNotMatchCurrent";d:0.042;s:87:"Tests\Unit\Http\Middleware\Server\ScheduleBelongsToServerTest::testSuccessfulMiddleware";d:0.051;s:115:"Tests\Unit\Http\Middleware\Server\ScheduleBelongsToServerTest::testExceptionIsThrownIfScheduleDoesNotBelongToServer";d:0.042;s:86:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testSuccessfulMiddleware";d:0.044;s:102:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testSuccessfulMiddlewareWhenPatchRequest";d:0.041;s:104:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfUserTriesToEditSelf";d:0.044;s:123:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfSubuserServerDoesNotMatchRequestServer";d:0.041;s:101:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfNoSubuserIsFound";d:0.041;s:82:"Tests\Unit\Http\Middleware\Api\Application\AuthenticateUserTest::testNoUserDefined";d:0.038;s:81:"Tests\Unit\Http\Middleware\Api\Application\AuthenticateUserTest::testNonAdminUser";d:0.041;s:78:"Tests\Unit\Http\Middleware\Api\Application\AuthenticateUserTest::testAdminUser";d:0.042;s:81:"Tests\Unit\Http\Middleware\Api\AuthenticateIPAccessTest::testWithNoIPRestrictions";d:0.044;s:72:"Tests\Unit\Http\Middleware\Api\AuthenticateIPAccessTest::testWithValidIP";d:0.045;s:84:"Tests\Unit\Http\Middleware\Api\AuthenticateIPAccessTest::testValidIPAgainstCIDRRange";d:0.046;s:74:"Tests\Unit\Http\Middleware\Api\AuthenticateIPAccessTest::testWithInvalidIP";d:0.04;s:89:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testMissingBearerTokenThrowsException";d:0.051;s:73:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testInvalidIdentifier";d:0.042;s:66:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testValidToken";d:0.046;s:77:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testValidTokenWithUserKey";d:0.042;s:74:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testAccessWithoutToken";d:0.042;s:81:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testInvalidTokenForIdentifier";d:0.041;s:67:"Tests\Unit\Http\Middleware\Api\SetSessionDriverTest::testMiddleware";d:0.039;s:108:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect";d:0.034;s:101:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenIsNotValid";d:0.113;s:100:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNodeIsNotFound";d:0.038;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #0";d:0.04;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #1";d:0.038;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #2";d:0.038;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #3";d:0.037;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #4";d:0.039;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #5";d:0.042;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #6";d:0.038;}}} \ No newline at end of file +C:37:"PHPUnit\Runner\DefaultTestResultCache":22007:{a:2:{s:7:"defects";a:42:{s:79:"Tests\Unit\Http\Controllers\Admin\StatisticsControllerTest::testIndexController";i:4;s:73:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testIndexController";i:4;s:74:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusController";i:4;s:96:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWhenServerNotInstalled";i:4;s:95:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWhenServerIsSuspended";i:4;s:103:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWithServerConnectionException";i:4;s:94:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWithRequestException";i:4;s:87:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testIndexWithout2FactorEnabled";i:4;s:84:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testIndexWith2FactorEnabled";i:4;s:83:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStore with data set #0";i:4;s:83:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStore with data set #1";i:4;s:108:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStoreWithInvalidTokenException with data set #0";i:4;s:108:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStoreWithInvalidTokenException with data set #1";i:4;s:82:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testNoUserDefined";i:6;s:81:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testNonAdminUser";i:6;s:74:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testWithInvalidIP";i:6;s:73:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testInvalidIdentifier";i:6;s:81:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testInvalidTokenForIdentifier";i:6;s:105:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldContinueIfRouteIsExempted";i:4;s:103:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNoTokenIsProvided";i:4;s:99:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNoNodeIsFound";i:4;s:93:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testSuccessfulMiddlewareProcess";i:4;s:89:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testExceptionIsThrownIfUserDoesNotExist";i:6;s:89:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testExceptionIsThrownIfUserIsNotAnAdmin";i:6;s:62:"Tests\Unit\Http\Middleware\AuthenticateTest::testLoggedOutUser";i:6;s:76:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testValidDaemonConnection";i:4;s:81:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testIgnoredRouteShouldContinue";i:4;s:85:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testExceptionThrownIfMissingHeader";i:3;s:100:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testExceptionIsThrownIfServerIsSuspended";i:6;s:103:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testExceptionIsThrownIfServerIsNotInstalled";i:6;s:98:"Tests\Unit\Http\Middleware\Server\AuthenticateAsSubuserTest::testExceptionIsThrownIfNoTokenIsFound";i:6;s:107:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testExceptionIsThrownIfNoDatabaseRecordFound";i:6;s:119:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testExceptionIsThrownIfDatabaseServerDoesNotMatchCurrent";i:6;s:115:"Tests\Unit\Http\Middleware\Server\ScheduleBelongsToServerTest::testExceptionIsThrownIfScheduleDoesNotBelongToServer";i:6;s:123:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfSubuserServerDoesNotMatchRequestServer";i:6;s:101:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfNoSubuserIsFound";i:6;s:100:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNodeIsNotFound";i:5;s:56:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testPowerAction";i:4;s:58:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testCommandAction";i:4;s:67:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testNextTaskQueuedIfExists";i:4;s:69:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testInvalidActionPassedToJob";i:6;s:83:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testScheduleMarkedAsDisabledDoesNotProcess";i:4;}s:5:"times";a:172:{s:81:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testSmtpDriverSelection";d:0.692;s:98:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testSmtpDriverSelectionWithOptionsPassed";d:0.038;s:84:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testPHPMailDriverSelection";d:0.046;s:84:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testMailgunDriverSelection";d:0.05;s:101:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testMailgunDriverSelectionWithOptionsPassed";d:0.037;s:85:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testMandrillDriverSelection";d:0.052;s:102:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testMandrillDriverSelectionWithOptionsPassed";d:0.038;s:85:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testPostmarkDriverSelection";d:0.051;s:102:"Tests\Unit\Commands\Environment\EmailSettingsCommandTest::testPostmarkDriverSelectionWithOptionsPassed";d:0.037;s:77:"Tests\Unit\Commands\Location\DeleteLocationCommandTest::testLocationIsDeleted";d:0.106;s:93:"Tests\Unit\Commands\Location\DeleteLocationCommandTest::testLocationIsDeletedIfPassedInOption";d:0.042;s:106:"Tests\Unit\Commands\Location\DeleteLocationCommandTest::testInteractiveEnvironmentAllowsReAttemptingSearch";d:0.06;s:115:"Tests\Unit\Commands\Location\DeleteLocationCommandTest::testNonInteractiveEnvironmentThrowsErrorIfNoLocationIsFound";d:0.041;s:94:"Tests\Unit\Commands\Location\MakeLocationCommandTest::testLocationIsCreatedWithNoOptionsPassed";d:0.044;s:95:"Tests\Unit\Commands\Location\MakeLocationCommandTest::testLocationIsCreatedWhenOptionsArePassed";d:0.045;s:109:"Tests\Unit\Commands\Maintenance\CleanServiceBackupFilesCommandTest::testCommandCleansFilesMoreThan5MinutesOld";d:0.044;s:114:"Tests\Unit\Commands\Maintenance\CleanServiceBackupFilesCommandTest::testCommandDoesNotCleanFileLessThan5MinutesOld";d:0.039;s:77:"Tests\Unit\Commands\Schedule\ProcessRunnableCommandTest::testScheduleIsQueued";d:0.062;s:94:"Tests\Unit\Commands\Schedule\ProcessRunnableCommandTest::testScheduleWithNoTasksIsNotProcessed";d:0.042;s:127:"Tests\Unit\Commands\Schedule\ProcessRunnableCommandTest::testScheduleWithTasksObjectThatIsNotInstanceOfCollectionIsNotProcessed";d:0.042;s:69:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testSendAction";d:0.149;s:74:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testSendWithFilters";d:0.05;s:79:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testSendWithEmptyOptions";d:0.043;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #0";d:0.043;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #1";d:0.038;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #2";d:0.038;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #3";d:0.038;s:92:"Tests\Unit\Commands\Server\BulkPowerActionCommandTest::testValidationErrors with data set #4";d:0.038;s:72:"Tests\Unit\Commands\User\DeleteUserCommandTest::testCommandWithNoOptions";d:0.065;s:83:"Tests\Unit\Commands\User\DeleteUserCommandTest::testCommandWithInvalidInitialSearch";d:0.047;s:67:"Tests\Unit\Commands\User\DeleteUserCommandTest::testReSearchAbility";d:0.044;s:102:"Tests\Unit\Commands\User\DeleteUserCommandTest::testAnsweringNoToDeletionConfirmationWillNotDeleteUser";d:0.043;s:81:"Tests\Unit\Commands\User\DeleteUserCommandTest::testNoInteractionWithSingleResult";d:0.043;s:84:"Tests\Unit\Commands\User\DeleteUserCommandTest::testNoInteractionWithMultipleResults";d:0.045;s:78:"Tests\Unit\Commands\User\DeleteUserCommandTest::testNoInteractionWithNoResults";d:0.037;s:97:"Tests\Unit\Commands\User\DisableTwoFactorCommandTest::testTwoFactorIsDisabledWhenNoOptionIsPassed";d:0.041;s:95:"Tests\Unit\Commands\User\DisableTwoFactorCommandTest::testTwoFactorIsDisabledWhenOptionIsPassed";d:0.041;s:76:"Tests\Unit\Commands\User\MakeUserCommandTest::testCommandWithNoPassedOptions";d:0.053;s:77:"Tests\Unit\Commands\User\MakeUserCommandTest::testCommandWithNoPasswordOption";d:0.044;s:74:"Tests\Unit\Commands\User\MakeUserCommandTest::testCommandWithOptionsPassed";d:0.043;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #0";d:0.603;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #1";d:0.038;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #2";d:0.038;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #3";d:0.038;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #4";d:0.041;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #5";d:0.037;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #6";d:0.038;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #7";d:0.037;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #8";d:0.037;s:59:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #9";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #10";d:0.038;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #11";d:0.038;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #12";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #13";d:0.039;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #14";d:0.038;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #15";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #16";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #17";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #18";d:0.043;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #19";d:0.037;s:60:"Tests\Unit\Helpers\IsDigitTest::testHelper with data set #20";d:0.037;s:77:"Tests\Unit\Http\Controllers\Admin\DatabaseControllerTest::testIndexController";d:0.174;s:76:"Tests\Unit\Http\Controllers\Admin\DatabaseControllerTest::testViewController";d:0.047;s:57:"Tests\Unit\Http\Controllers\MailControllerTest::testIndex";d:0.052;s:79:"Tests\Unit\Http\Controllers\Admin\StatisticsControllerTest::testIndexController";d:0.145;s:73:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testIndexController";d:0.054;s:74:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusController";d:0.039;s:96:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWhenServerNotInstalled";d:0.04;s:95:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWhenServerIsSuspended";d:0.037;s:103:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWithServerConnectionException";d:0.038;s:94:"Tests\Unit\Http\Controllers\Base\IndexControllerTest::testStatusControllerWithRequestException";d:0.04;s:87:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testIndexWithout2FactorEnabled";d:0.068;s:84:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testIndexWith2FactorEnabled";d:0.042;s:83:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStore with data set #0";d:0.044;s:83:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStore with data set #1";d:0.041;s:108:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStoreWithInvalidTokenException with data set #0";d:0.049;s:108:"Tests\Unit\Http\Controllers\Base\SecurityControllerTest::testStoreWithInvalidTokenException with data set #1";d:0.043;s:82:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testNoUserDefined";d:0.044;s:81:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testNonAdminUser";d:0.047;s:78:"Tests\Unit\Http\Middleware\API\Application\AuthenticateUserTest::testAdminUser";d:0.041;s:81:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testWithNoIPRestrictions";d:0.043;s:72:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testWithValidIP";d:0.044;s:84:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testValidIPAgainstCIDRRange";d:0.043;s:74:"Tests\Unit\Http\Middleware\API\AuthenticateIPAccessTest::testWithInvalidIP";d:0.04;s:89:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testMissingBearerTokenThrowsException";d:0.049;s:73:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testInvalidIdentifier";d:0.042;s:66:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testValidToken";d:0.045;s:77:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testValidTokenWithUserKey";d:0.044;s:74:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testAccessWithoutToken";d:0.042;s:81:"Tests\Unit\Http\Middleware\API\AuthenticateKeyTest::testInvalidTokenForIdentifier";d:0.041;s:105:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldContinueIfRouteIsExempted";d:0.05;s:103:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNoTokenIsProvided";d:0.038;s:99:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNoNodeIsFound";d:0.035;s:93:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testSuccessfulMiddlewareProcess";d:0.04;s:67:"Tests\Unit\Http\Middleware\API\SetSessionDriverTest::testMiddleware";d:0.039;s:76:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testAdminsAreAuthenticated";d:0.049;s:89:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testExceptionIsThrownIfUserDoesNotExist";d:0.043;s:89:"Tests\Unit\Http\Middleware\AdminAuthenticateTest::testExceptionIsThrownIfUserIsNotAnAdmin";d:0.041;s:61:"Tests\Unit\Http\Middleware\AuthenticateTest::testLoggedInUser";d:0.04;s:62:"Tests\Unit\Http\Middleware\AuthenticateTest::testLoggedOutUser";d:0.039;s:76:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testValidDaemonConnection";d:0.04;s:81:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testIgnoredRouteShouldContinue";d:0.037;s:85:"Tests\Unit\Http\Middleware\DaemonAuthenticateTest::testExceptionThrownIfMissingHeader";d:0.038;s:76:"Tests\Unit\Http\Middleware\LanguageMiddlewareTest::testLanguageIsSetForGuest";d:0.044;s:89:"Tests\Unit\Http\Middleware\LanguageMiddlewareTest::testLanguageIsSetWithAuthenticatedUser";d:0.042;s:64:"Tests\Unit\Http\Middleware\MaintenanceMiddlewareTest::testHandle";d:0.047;s:81:"Tests\Unit\Http\Middleware\MaintenanceMiddlewareTest::testHandleInMaintenanceMode";d:0.047;s:89:"Tests\Unit\Http\Middleware\RedirectIfAuthenticatedTest::testAuthenticatedUserIsRedirected";d:0.047;s:95:"Tests\Unit\Http\Middleware\RedirectIfAuthenticatedTest::testNonAuthenticatedUserIsNotRedirected";d:0.037;s:85:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestMissingUser";d:0.042;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #0";d:0.042;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #1";d:0.045;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #2";d:0.043;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #3";d:0.041;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #4";d:0.04;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #5";d:0.041;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #6";d:0.042;s:105:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testRequestOnIgnoredRoute with data set #7";d:0.041;s:95:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorRequirementDisabled";d:0.042;s:103:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorRequirementWithInvalidValue";d:0.041;s:118:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAdminsAsAdminUserWith2FADisabled";d:0.043;s:117:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAdminsAsAdminUserWith2FAEnabled";d:0.04;s:102:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAdminsAsNonAdmin";d:0.05;s:115:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAllUsersAsUserWith2FADisabled";d:0.042;s:114:"Tests\Unit\Http\Middleware\RequireTwoFactorAuthenticationTest::testTwoFactorEnabledForAllUsersAsUserWith2FAEnabled";d:0.041;s:100:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testExceptionIsThrownIfServerIsSuspended";d:0.052;s:103:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testExceptionIsThrownIfServerIsNotInstalled";d:0.042;s:109:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testCorrectErrorPagesAreRendered with data set #0";d:0.038;s:109:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testCorrectErrorPagesAreRendered with data set #1";d:0.039;s:109:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testCorrectErrorPagesAreRendered with data set #2";d:0.039;s:82:"Tests\Unit\Http\Middleware\Server\AccessingValidServerTest::testValidServerProcess";d:0.042;s:85:"Tests\Unit\Http\Middleware\Server\AuthenticateAsSubuserTest::testSuccessfulMiddleware";d:0.05;s:98:"Tests\Unit\Http\Middleware\Server\AuthenticateAsSubuserTest::testExceptionIsThrownIfNoTokenIsFound";d:0.043;s:87:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testSuccessfulMiddleware";d:0.045;s:107:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testExceptionIsThrownIfNoDatabaseRecordFound";d:0.043;s:119:"Tests\Unit\Http\Middleware\Server\DatabaseBelongsToServerTest::testExceptionIsThrownIfDatabaseServerDoesNotMatchCurrent";d:0.042;s:87:"Tests\Unit\Http\Middleware\Server\ScheduleBelongsToServerTest::testSuccessfulMiddleware";d:0.051;s:115:"Tests\Unit\Http\Middleware\Server\ScheduleBelongsToServerTest::testExceptionIsThrownIfScheduleDoesNotBelongToServer";d:0.042;s:86:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testSuccessfulMiddleware";d:0.044;s:102:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testSuccessfulMiddlewareWhenPatchRequest";d:0.041;s:104:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfUserTriesToEditSelf";d:0.044;s:123:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfSubuserServerDoesNotMatchRequestServer";d:0.041;s:101:"Tests\Unit\Http\Middleware\Server\SubuserBelongsToServerTest::testExceptionIsThrownIfNoSubuserIsFound";d:0.041;s:82:"Tests\Unit\Http\Middleware\Api\Application\AuthenticateUserTest::testNoUserDefined";d:0.038;s:81:"Tests\Unit\Http\Middleware\Api\Application\AuthenticateUserTest::testNonAdminUser";d:0.041;s:78:"Tests\Unit\Http\Middleware\Api\Application\AuthenticateUserTest::testAdminUser";d:0.042;s:81:"Tests\Unit\Http\Middleware\Api\AuthenticateIPAccessTest::testWithNoIPRestrictions";d:0.044;s:72:"Tests\Unit\Http\Middleware\Api\AuthenticateIPAccessTest::testWithValidIP";d:0.045;s:84:"Tests\Unit\Http\Middleware\Api\AuthenticateIPAccessTest::testValidIPAgainstCIDRRange";d:0.046;s:74:"Tests\Unit\Http\Middleware\Api\AuthenticateIPAccessTest::testWithInvalidIP";d:0.04;s:89:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testMissingBearerTokenThrowsException";d:0.051;s:73:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testInvalidIdentifier";d:0.042;s:66:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testValidToken";d:0.046;s:77:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testValidTokenWithUserKey";d:0.042;s:74:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testAccessWithoutToken";d:0.042;s:81:"Tests\Unit\Http\Middleware\Api\AuthenticateKeyTest::testInvalidTokenForIdentifier";d:0.041;s:67:"Tests\Unit\Http\Middleware\Api\SetSessionDriverTest::testMiddleware";d:0.039;s:108:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect";d:0.034;s:101:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenIsNotValid";d:0.113;s:100:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfNodeIsNotFound";d:0.038;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #0";d:0.04;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #1";d:0.038;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #2";d:0.038;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #3";d:0.037;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #4";d:0.039;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #5";d:0.042;s:125:"Tests\Unit\Http\Middleware\Api\Daemon\DaemonAuthenticateTest::testResponseShouldFailIfTokenFormatIsIncorrect with data set #6";d:0.038;s:56:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testPowerAction";d:0.69;s:58:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testCommandAction";d:0.041;s:67:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testNextTaskQueuedIfExists";d:0.04;s:69:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testInvalidActionPassedToJob";d:0.041;s:83:"Tests\Unit\Jobs\Schedule\RunTaskJobTest::testScheduleMarkedAsDisabledDoesNotProcess";d:0.04;}}} \ No newline at end of file diff --git a/tests/Unit/Jobs/Schedule/RunTaskJobTest.php b/tests/Unit/Jobs/Schedule/RunTaskJobTest.php index adfe0b54f..4d7688a82 100644 --- a/tests/Unit/Jobs/Schedule/RunTaskJobTest.php +++ b/tests/Unit/Jobs/Schedule/RunTaskJobTest.php @@ -3,53 +3,51 @@ namespace Tests\Unit\Jobs\Schedule; use Mockery as m; +use Carbon\Carbon; use Tests\TestCase; use Cake\Chronos\Chronos; use Pterodactyl\Models\Task; use Pterodactyl\Models\User; use GuzzleHttp\Psr7\Response; +use InvalidArgumentException; use Pterodactyl\Models\Server; use Pterodactyl\Models\Schedule; use Illuminate\Support\Facades\Bus; use Pterodactyl\Jobs\Schedule\RunTaskJob; -use Illuminate\Contracts\Config\Repository; +use Pterodactyl\Repositories\Eloquent\TaskRepository; +use Pterodactyl\Services\Backups\InitiateBackupService; +use Pterodactyl\Repositories\Eloquent\ScheduleRepository; +use Pterodactyl\Repositories\Wings\DaemonPowerRepository; +use Pterodactyl\Repositories\Wings\DaemonCommandRepository; use Pterodactyl\Contracts\Repository\TaskRepositoryInterface; -use Pterodactyl\Services\DaemonKeys\DaemonKeyProviderService; use Pterodactyl\Contracts\Repository\ScheduleRepositoryInterface; -use Pterodactyl\Contracts\Repository\Daemon\PowerRepositoryInterface; -use Pterodactyl\Contracts\Repository\Daemon\CommandRepositoryInterface; class RunTaskJobTest extends TestCase { /** - * @var \Pterodactyl\Contracts\Repository\Daemon\CommandRepositoryInterface|\Mockery\Mock + * @var \Mockery\MockInterface */ - protected $commandRepository; + private $commandRepository; /** - * @var \Illuminate\Contracts\Config\Repository|\Mockery\Mock + * @var \Mockery\MockInterface */ - protected $config; + private $powerRepository; /** - * @var \Pterodactyl\Services\DaemonKeys\DaemonKeyProviderService|\Mockery\Mock + * @var \Mockery\MockInterface */ - protected $keyProviderService; + private $initiateBackupService; /** - * @var \Pterodactyl\Contracts\Repository\Daemon\PowerRepositoryInterface|\Mockery\Mock + * @var \Mockery\MockInterface */ - protected $powerRepository; + private $taskRepository; /** - * @var \Pterodactyl\Contracts\Repository\ScheduleRepositoryInterface|\Mockery\Mock + * @var \Mockery\MockInterface */ - protected $scheduleRepository; - - /** - * @var \Pterodactyl\Contracts\Repository\TaskRepositoryInterface|\Mockery\Mock - */ - protected $taskRepository; + private $scheduleRepository; /** * Setup tests. @@ -57,17 +55,16 @@ class RunTaskJobTest extends TestCase public function setUp(): void { parent::setUp(); + Bus::fake(); - Chronos::setTestNow(Chronos::now()); + Carbon::setTestNow(Carbon::now()); - $this->commandRepository = m::mock(CommandRepositoryInterface::class); - $this->config = m::mock(Repository::class); - $this->keyProviderService = m::mock(DaemonKeyProviderService::class); - $this->powerRepository = m::mock(PowerRepositoryInterface::class); - $this->scheduleRepository = m::mock(ScheduleRepositoryInterface::class); - $this->taskRepository = m::mock(TaskRepositoryInterface::class); + $this->commandRepository = m::mock(DaemonCommandRepository::class); + $this->powerRepository = m::mock(DaemonPowerRepository::class); + $this->taskRepository = m::mock(TaskRepository::class); + $this->initiateBackupService = m::mock(InitiateBackupService::class); + $this->scheduleRepository = m::mock(ScheduleRepository::class); - $this->app->instance(Repository::class, $this->config); $this->app->instance(TaskRepositoryInterface::class, $this->taskRepository); $this->app->instance(ScheduleRepositoryInterface::class, $this->scheduleRepository); } @@ -77,17 +74,20 @@ class RunTaskJobTest extends TestCase */ public function testPowerAction() { - $schedule = factory(Schedule::class)->make(); + /** @var \Pterodactyl\Models\Schedule $schedule */ + $schedule = factory(Schedule::class)->make(['is_active' => true]); + + /** @var \Pterodactyl\Models\Task $task */ $task = factory(Task::class)->make(['action' => 'power', 'sequence_id' => 1]); + + /* @var \Pterodactyl\Models\Server $server */ $task->setRelation('server', $server = factory(Server::class)->make()); $task->setRelation('schedule', $schedule); $server->setRelation('user', factory(User::class)->make()); - $this->taskRepository->shouldReceive('getTaskForJobProcess')->with($task->id)->once()->andReturn($task); - $this->keyProviderService->shouldReceive('handle')->with($server, $server->user)->once()->andReturn('123456'); - $this->powerRepository->shouldReceive('setServer')->with($task->server)->once()->andReturnSelf() - ->shouldReceive('setToken')->with('123456')->once()->andReturnSelf() - ->shouldReceive('sendSignal')->with($task->payload)->once()->andReturn(new Response); + $this->taskRepository->expects('getTaskForJobProcess')->with($task->id)->andReturn($task); + $this->powerRepository->expects('setServer')->with($task->server)->andReturnSelf() + ->getMock()->expects('send')->with($task->payload)->andReturn(new Response); $this->taskRepository->shouldReceive('update')->with($task->id, ['is_queued' => false])->once()->andReturnNull(); $this->taskRepository->shouldReceive('getNextTask')->with($schedule->id, $task->sequence_id)->once()->andReturnNull(); @@ -113,14 +113,12 @@ class RunTaskJobTest extends TestCase $task->setRelation('schedule', $schedule); $server->setRelation('user', factory(User::class)->make()); - $this->taskRepository->shouldReceive('getTaskForJobProcess')->with($task->id)->once()->andReturn($task); - $this->keyProviderService->shouldReceive('handle')->with($server, $server->user)->once()->andReturn('123456'); - $this->commandRepository->shouldReceive('setServer')->with($task->server)->once()->andReturnSelf() - ->shouldReceive('setToken')->with('123456')->once()->andReturnSelf() - ->shouldReceive('send')->with($task->payload)->once()->andReturn(new Response); + $this->taskRepository->expects('getTaskForJobProcess')->with($task->id)->andReturn($task); + $this->commandRepository->expects('setServer')->with($task->server)->andReturnSelf() + ->getMock()->expects('send')->with($task->payload)->andReturn(new Response); - $this->taskRepository->shouldReceive('update')->with($task->id, ['is_queued' => false])->once()->andReturnNull(); - $this->taskRepository->shouldReceive('getNextTask')->with($schedule->id, $task->sequence_id)->once()->andReturnNull(); + $this->taskRepository->expects('update')->with($task->id, ['is_queued' => false])->andReturnNull(); + $this->taskRepository->expects('getNextTask')->with($schedule->id, $task->sequence_id)->andReturnNull(); $this->scheduleRepository->shouldReceive('withoutFreshModel->update')->with($schedule->id, [ 'is_processing' => false, @@ -143,19 +141,17 @@ class RunTaskJobTest extends TestCase $task->setRelation('schedule', $schedule); $server->setRelation('user', factory(User::class)->make()); - $this->taskRepository->shouldReceive('getTaskForJobProcess')->with($task->id)->once()->andReturn($task); - $this->keyProviderService->shouldReceive('handle')->with($server, $server->user)->once()->andReturn('123456'); - $this->commandRepository->shouldReceive('setServer')->with($task->server)->once()->andReturnSelf() - ->shouldReceive('setToken')->with('123456')->once()->andReturnSelf() - ->shouldReceive('send')->with($task->payload)->once()->andReturn(new Response); + $this->taskRepository->expects('getTaskForJobProcess')->with($task->id)->andReturn($task); + $this->commandRepository->expects('setServer')->with($task->server)->andReturnSelf() + ->getMock()->expects('send')->with($task->payload)->andReturn(new Response); $this->taskRepository->shouldReceive('update')->with($task->id, ['is_queued' => false])->once()->andReturnNull(); $nextTask = factory(Task::class)->make(); - $this->taskRepository->shouldReceive('getNextTask')->with($schedule->id, $task->sequence_id)->once()->andReturn($nextTask); - $this->taskRepository->shouldReceive('update')->with($nextTask->id, [ + $this->taskRepository->expects('getNextTask')->with($schedule->id, $task->sequence_id)->andReturn($nextTask); + $this->taskRepository->expects('update')->with($nextTask->id, [ 'is_queued' => true, - ])->once()->andReturnNull(); + ])->andReturnNull(); $this->getJobInstance($task->id, $schedule->id); @@ -170,19 +166,19 @@ class RunTaskJobTest extends TestCase /** * Test that an exception is thrown if an invalid task action is supplied. - * - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Cannot run a task that points to a non-existent action. */ public function testInvalidActionPassedToJob() { + $this->expectException(InvalidArgumentException::class); + $this->expectExceptionMessage('Cannot run a task that points to a non-existent action.'); + $schedule = factory(Schedule::class)->make(); $task = factory(Task::class)->make(['action' => 'invalid', 'sequence_id' => 1]); $task->setRelation('server', $server = factory(Server::class)->make()); $task->setRelation('schedule', $schedule); $server->setRelation('user', factory(User::class)->make()); - $this->taskRepository->shouldReceive('getTaskForJobProcess')->with($task->id)->once()->andReturn($task); + $this->taskRepository->expects('getTaskForJobProcess')->with($task->id)->andReturn($task); $this->getJobInstance($task->id, 1234); } @@ -218,14 +214,12 @@ class RunTaskJobTest extends TestCase * @param int $schedule * * @throws \Pterodactyl\Exceptions\Model\DataValidationException - * @throws \Pterodactyl\Exceptions\Repository\Daemon\InvalidPowerSignalException - * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ private function getJobInstance($task, $schedule) { return (new RunTaskJob($task, $schedule))->handle( $this->commandRepository, - $this->keyProviderService, + $this->initiateBackupService, $this->powerRepository, $this->taskRepository );