mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-11-16 14:48:11 +00:00
Fix tests.
This commit is contained in:
@@ -55,4 +55,36 @@ abstract class Node
|
|||||||
return $this->prohibited;
|
return $this->prohibited;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function equals(Node $compare): bool
|
||||||
|
{
|
||||||
|
if ($compare->isProhibited(false) !== $this->isProhibited(false)) {
|
||||||
|
Log::debug('Return false because prohibited status is different');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ($compare instanceof NodeGroup) {
|
||||||
|
if (count($compare->getNodes()) !== count($this->getNodes())) {
|
||||||
|
Log::debug(sprintf('Return false because node count is different. Original is %d, compare is %d', count($this->getNodes()), count($compare->getNodes())));
|
||||||
|
// var_dump($this);
|
||||||
|
// var_dump($compare);
|
||||||
|
// exit;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @var int $index
|
||||||
|
* @var Node $node
|
||||||
|
*/
|
||||||
|
foreach ($this->getNodes() as $index => $node) {
|
||||||
|
if (false === $node->equals($compare->getNodes()[$index])) {
|
||||||
|
Log::debug('Return false because nodes are different!');
|
||||||
|
var_dump($this);
|
||||||
|
var_dump($compare);
|
||||||
|
exit;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ class QueryParser implements QueryParserInterface
|
|||||||
|
|
||||||
while ($this->position < strlen($this->query)) {
|
while ($this->position < strlen($this->query)) {
|
||||||
$char = $this->query[$this->position];
|
$char = $this->query[$this->position];
|
||||||
|
//Log::debug(sprintf('Char #%d: %s', $this->position, $char));
|
||||||
|
|
||||||
// If we're in a quoted string, we treat all characters except another quote as ordinary characters
|
// If we're in a quoted string, we treat all characters except another quote as ordinary characters
|
||||||
if ($inQuotes) {
|
if ($inQuotes) {
|
||||||
@@ -150,15 +151,19 @@ class QueryParser implements QueryParserInterface
|
|||||||
|
|
||||||
|
|
||||||
case ':':
|
case ':':
|
||||||
if ('' !== $tokenUnderConstruction) {
|
$skipNext = false;
|
||||||
|
if ('' === $tokenUnderConstruction) { // @phpstan-ignore-line
|
||||||
|
// In any other location, it's just a normal character
|
||||||
|
$tokenUnderConstruction .= $char;
|
||||||
|
$skipNext = true;
|
||||||
|
}
|
||||||
|
if ('' !== $tokenUnderConstruction && !$skipNext) {
|
||||||
|
Log::debug(sprintf('Turns out that "%s" is a field name. Reset the token.', $tokenUnderConstruction));
|
||||||
// If we meet a colon with a left-hand side string, we know we're in a field and are about to set up the value
|
// If we meet a colon with a left-hand side string, we know we're in a field and are about to set up the value
|
||||||
$fieldName = $tokenUnderConstruction;
|
$fieldName = $tokenUnderConstruction;
|
||||||
$tokenUnderConstruction = '';
|
$tokenUnderConstruction = '';
|
||||||
}
|
}
|
||||||
if ('' === $tokenUnderConstruction) { // @phpstan-ignore-line
|
|
||||||
// In any other location, it's just a normal character
|
|
||||||
$tokenUnderConstruction .= $char;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ abstract class AbstractQueryParserInterfaceParseQueryTest extends TestCase
|
|||||||
{
|
{
|
||||||
$actual = $this->createParser()->parse($query);
|
$actual = $this->createParser()->parse($query);
|
||||||
|
|
||||||
self::assertSame($expected, $actual);
|
self::assertObjectEquals($expected, $actual);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user