5 use Contracts\Mock\Storage\Memory;
6 use Drupal\Core\Database\Connection;
7 use Drupal\Core\Database\Query\Delete;
8 use Drupal\Core\Database\Query\Select;
9 use Drupal\Core\Database\Query\Update;
10 use Drupal\Core\Database\Schema;
11 use Drupal\Core\Database\Statement;
13 use MockChain\Sequence;
15 use FileFetcher\FileFetcher;
16 use PHPUnit\Framework\TestCase;
27 $chain = (
new Chain($this))
28 ->add(Connection::class,
"blah",
"blah")
29 ->add(Connection::class,
"schema", Schema::class)
30 ->add(Schema::class,
"tableExists", FALSE);
32 $jobStore =
new JobStore(FileFetcher::class, $chain->getMock());
33 $this->assertTrue(is_object($jobStore));
40 $job_data = json_encode($this->getFileFetcher());
43 $job->job_data = $job_data;
46 (object) [
'Field' =>
"ref_uuid"],
47 (
object) [
'Field' =>
"job_data"],
50 $chain = (
new Chain($this))
51 ->add(Connection::class,
"schema", Schema::class)
52 ->add(Schema::class,
"tableExists", TRUE)
53 ->add(Connection::class,
'select', Select::class,
'select_1')
54 ->add(Select::class,
'fields', Select::class)
55 ->add(Select::class,
'condition', Select::class)
56 ->add(Select::class,
'execute', Statement::class)
57 ->add(Statement::class,
'fetch', $job)
58 ->add(Connection::class,
'query', Statement::class)
59 ->add(Statement::class,
'fetchAll', $fieldInfo);
61 $jobStore =
new JobStore(FileFetcher::class, $chain->getMock());
62 $this->assertEquals($job_data, $jobStore->retrieve(
"1", FileFetcher::class));
69 $job_data = json_encode($this->getFileFetcher());
72 $job->job_data = $job_data;
75 (object) [
'Field' =>
"ref_uuid"],
76 (
object) [
'Field' =>
"job_data"],
79 $sequence = (
new Sequence())
83 $chain = (
new Chain($this))
84 ->add(Connection::class,
"schema", Schema::class)
85 ->add(Schema::class,
"tableExists", TRUE)
86 ->add(Connection::class,
'select', Select::class,
'select_1')
87 ->add(Select::class,
'fields', Select::class)
88 ->add(Select::class,
'execute', Statement::class)
89 ->add(Connection::class,
'query', Statement::class)
90 ->add(Statement::class,
'fetchAll', $sequence);
92 $jobStore =
new JobStore(FileFetcher::class, $chain->getMock());
93 $this->assertTrue(is_array($jobStore->retrieveAll()));
100 $jobObject = $this->getFileFetcher();
102 $job_data = json_encode($jobObject);
105 $job->ref_uuid =
"1";
106 $job->job_data = $job_data;
109 (object) [
'Field' =>
"ref_uuid"],
110 (
object) [
'Field' =>
"job_data"],
113 $connection = (
new Chain($this))
114 ->add(Connection::class,
"schema", Schema::class)
115 ->add(Schema::class,
"tableExists", TRUE)
116 ->add(Connection::class,
'select', Select::class,
'select_1')
117 ->add(Select::class,
'fields', Select::class)
118 ->add(Select::class,
'condition', Select::class)
119 ->add(Select::class,
'execute', Statement::class)
120 ->add(Statement::class,
'fetch', $job)
121 ->add(Connection::class,
'update', Update::class)
122 ->add(Update::class,
"fields", Update::class)
123 ->add(Update::class,
"condition", Update::class)
124 ->add(Update::class,
"execute", NULL)
125 ->add(Connection::class,
'query', Statement::class)
126 ->add(Statement::class,
'fetchAll', $fieldInfo)
129 $jobStore =
new JobStore(FileFetcher::class, $connection);
131 $this->assertEquals(
"1", $jobStore->store(json_encode($jobObject),
"1"));
139 (object) [
'Field' =>
"ref_uuid"],
140 (
object) [
'Field' =>
"job_data"],
143 $connection = (
new Chain($this))
144 ->add(Connection::class,
"schema", Schema::class)
145 ->add(Schema::class,
"tableExists", TRUE)
146 ->add(Connection::class,
"delete", Delete::class)
147 ->add(Delete::class,
"condition", Delete::class)
148 ->add(Delete::class,
"execute", NULL)
149 ->add(Connection::class,
'query', Statement::class)
150 ->add(Statement::class,
'fetchAll', $fieldInfo)
153 $jobStore =
new JobStore(FileFetcher::class, $connection);
155 $this->assertEquals(
"", $jobStore->remove(
"1", FileFetcher::class));
161 private function getFileFetcher() {
162 return FileFetcher::get(
"1",
new Memory(), [
"filePath" =>
"file://" . __DIR__ .
"/../../../data/countries.csv"]);