Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
TestTask example
'id' =>
$taskId
,
'name' => 'test',
'scheduledTaskClass' => TestTask::
class
,
'runInterval' =>
$interval
,
'defaultRunInterval' =>
$interval
,
'status' =>
$status
,
'nextExecutionTime' =>
$originalNextExecution
,
]
,
]
, Context::
createDefaultContext
(
)
)
;
$task
=
new
TestTask
(
)
;
$task
->
setTaskId
(
$taskId
)
;
$handler
=
new
DummyScheduledTaskHandler
(
$this
->scheduledTaskRepo,
$taskId
)
;
$handler
(
$task
)
;
static
::
assertTrue
(
$handler
->
wasCalled
(
)
)
;
/** @var ScheduledTaskEntity $task */
$task
=
$this
->scheduledTaskRepo->
search
(
new
Criteria
(
[
$taskId
]
)
, Context::
createDefaultContext
(
)
)
->
get
(
$taskId
)
;
$newOriginalNextExecution
=
clone
$originalNextExecution
;
private
EntityRepository
$scheduledTaskRepo
;
private
TaskRegistry
$registry
;
protected
function
setUp
(
)
: void
{
$this
->scheduledTaskRepo =
$this
->
getContainer
(
)
->
get
(
'scheduled_task.repository'
)
;
$this
->registry =
new
TaskRegistry
(
[
new
TestTask
(
)
,
]
,
$this
->scheduledTaskRepo,
new
ParameterBag
(
)
)
;
}
public
function
testOnNonRegisteredTask
(
)
: void
{
$connection
=
$this
->
getContainer
(
)
->
get
(
Connection::
class
)
;
$connection
->
executeStatement
(
'DELETE FROM scheduled_task'
)
;
'nextExecutionTime'
=>
(
new
\
DateTime
(
)
)
->
modify
(
'-1 second'
)
,
]
,
]
, Context::
createDefaultContext
(
)
)
;
$this
->messageBus->
expects
(
static
::
once
(
)
)
->
method
(
'dispatch'
)
->
with
(
static
::
callback
(
function
DTestTask
$task
)
use
(
$taskId
)
{
static
::
assertEquals
(
$taskId
,
$task
->
getTaskId
(
)
)
;
return
true;
}
)
)
->
willReturn
(
new
Envelope
(
new
TestTask
(
)
)
)
;
$this
->scheduler->
queueScheduledTasks
(
)
;
/** @var ScheduledTaskEntity $task */
$task
=
$this
->scheduledTaskRepo->
search
(
new
Criteria
(
[
$taskId
]
)
, Context::
createDefaultContext
(
)
)
->
get
(
$taskId
)
;
static
::
assertEquals
(
ScheduledTaskDefinition::STATUS_QUEUED,
$task
->
getStatus
(
)
)
;
}
public
function
testScheduleTasksDoesntScheduleFutureTask
(
)
: void
{
$this
->connection->
executeStatement
(
'DELETE FROM scheduled_task'
)
;