Skip to content

Commit 27633fa

Browse files
Add 'labeled' method to 'Node' class
1 parent 8808a32 commit 27633fa

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/Patterns/Node.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
namespace WikibaseSolutions\CypherDSL\Patterns;
1111

12+
use WikibaseSolutions\CypherDSL\Expressions\Label;
1213
use WikibaseSolutions\CypherDSL\Expressions\Literals\Map;
1314
use WikibaseSolutions\CypherDSL\Traits\ErrorTrait;
1415
use WikibaseSolutions\CypherDSL\Traits\EscapeTrait;
@@ -81,6 +82,16 @@ public function getLabels(): array
8182
return $this->labels;
8283
}
8384

85+
/**
86+
* Returns a label with the variable in this node.
87+
*
88+
* @param string ...$labels The labels to attach to the variable in this node
89+
*/
90+
public function labeled(string ...$labels): Label
91+
{
92+
return new Label($this->getVariable(), ...$labels);
93+
}
94+
8495
/**
8596
* @inheritDoc
8697
*/

tests/unit/Patterns/NodeTest.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
use PHPUnit\Framework\TestCase;
1313
use TypeError;
14+
use WikibaseSolutions\CypherDSL\Expressions\Label;
1415
use WikibaseSolutions\CypherDSL\Expressions\Literals\Float_;
1516
use WikibaseSolutions\CypherDSL\Expressions\Literals\Integer;
1617
use WikibaseSolutions\CypherDSL\Expressions\Literals\List_;
@@ -234,6 +235,22 @@ public function testRelationshipUni(): void
234235
$this->assertSame("(:City)-[:LIVES_IN]-(:City {city: 'Amsterdam'})", $relationship->toQuery());
235236
}
236237

238+
public function testLabeledSingleLabel(): void
239+
{
240+
$node = new Node();
241+
$labeled = $node->labeled('German');
242+
243+
$this->assertEquals(new Label($node->getVariable(), 'German'), $labeled);
244+
}
245+
246+
public function testLabeledMultipleLabels(): void
247+
{
248+
$node = new Node();
249+
$labeled = $node->labeled('German', 'Swedish');
250+
251+
$this->assertEquals(new Label($node->getVariable(), 'German', 'Swedish'), $labeled);
252+
}
253+
237254
public function provideOnlyLabelData(): array
238255
{
239256
return [

0 commit comments

Comments
 (0)