Skip to content
This repository was archived by the owner on Dec 28, 2023. It is now read-only.

Commit 9e3949e

Browse files
committed
Fix null handling of Collection::outerJoin()
1 parent 1b3dd0b commit 9e3949e

File tree

4 files changed

+13
-13
lines changed

4 files changed

+13
-13
lines changed

src/Iterator/OuterJoinIterator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ private function fetchInners()
162162
$this->resultValue = $resultValueSelector($this->outerValue, reset($this->inners));
163163
} else {
164164
$this->inners = [];
165-
$this->resultValue = $resultValueSelector($this->outerValue, null);
165+
$this->resultValue = $this->outerValue;
166166
}
167167
}
168168
}

src/Provider/ArrayProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public function outerJoin($outer, $inner, callable $outerKeySelector, callable $
100100
$results[] = $resultValueSelector($outerValue, $innerValue);
101101
}
102102
} else {
103-
$results[] = $resultValueSelector($outerValue, null);
103+
$results[] = $outerValue;
104104
}
105105
}
106106

src/Provider/GeneratorProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public function outerJoin($outer, $inner, callable $outerKeySelector, callable $
111111
yield $resultValueSelector($outerValue, $innerValue);
112112
}
113113
} else {
114-
yield $resultValueSelector($outerValue, null);
114+
yield $outerValue;
115115
}
116116
}
117117
});

tests/AbstractCollectionTest.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,9 @@ public function testJoin($factory)
286286
$result = $factory($talents)
287287
->join(
288288
$users,
289-
function($talent) { return $talent['id']; },
290-
function($user) { return $user['talent_id']; },
291-
function($talent, $user) {
289+
function(array $talent) { return $talent['id']; },
290+
function(array $user) { return $user['talent_id']; },
291+
function(array $talent, array $user) {
292292
$talent['user'] = $user;
293293
return $talent;
294294
}
@@ -320,16 +320,16 @@ public function testOuterJoin($factory)
320320
['id' => 1, 'name' => 'Sumire Uesaka', 'user' => $users[0]],
321321
['id' => 2, 'name' => 'Mikako Komatsu', 'user' => $users[1]],
322322
['id' => 2, 'name' => 'Mikako Komatsu', 'user' => $users[2]],
323-
['id' => 3, 'name' => 'Rumi Okubo', 'user' => null],
323+
['id' => 3, 'name' => 'Rumi Okubo'],
324324
['id' => 4, 'name' => 'Natsumi Takamori', 'user' => $users[3]],
325325
['id' => 5, 'name' => 'Shiori Mikami', 'user' => $users[4]],
326326
];
327327
$result = $factory($talents)
328328
->outerJoin(
329329
$users,
330-
function($talent) { return $talent['id']; },
331-
function($user) { return $user['talent_id']; },
332-
function($talent, $user) {
330+
function(array $talent) { return $talent['id']; },
331+
function(array $user) { return $user['talent_id']; },
332+
function(array $talent, array $user) {
333333
$talent['user'] = $user;
334334
return $talent;
335335
}
@@ -388,9 +388,9 @@ public function testGroupJoin($factory)
388388
$result = $factory($users)
389389
->groupJoin(
390390
$tweets,
391-
function($user) { return $user['id']; },
392-
function($user) { return $user['user_id']; },
393-
function($user, $tweets) {
391+
function(array $user) { return $user['id']; },
392+
function(array $user) { return $user['user_id']; },
393+
function(array $user, array $tweets) {
394394
$user['tweets'] = $tweets;
395395
return $user;
396396
}

0 commit comments

Comments
 (0)