Skip to content

Commit e71df31

Browse files
committed
implement has changes method
1 parent 393d22b commit e71df31

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/Plugins/Spy.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,17 @@ private function getKey(Entity $instance, Space $space)
6060
return implode(':', $key);
6161
}
6262

63-
public function getChanges() {
63+
public function getChanges()
64+
{
6465
return (object) [
6566
'create' => array_values($this->create),
6667
'update' => array_values($this->update),
6768
'remove' => array_values($this->remove),
6869
];
6970
}
71+
72+
public function hasChanges()
73+
{
74+
return count($this->create) + count($this->update) + count($this->remove) > 0;
75+
}
7076
}

tests/SpyTest.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public function test()
3333
$spy = $mapper->getPlugin(Spy::class);
3434
$this->assertInstanceOf(Spy::class, $spy);
3535

36+
$this->assertTrue($spy->hasChanges());
37+
3638
$changes = $spy->getChanges();
3739
$this->assertCount(1, $changes->create);
3840
$this->assertCount(1, $changes->update);
@@ -46,16 +48,20 @@ public function test()
4648
$this->assertCount(0, $changes->update);
4749
$this->assertCount(1, $changes->remove);
4850
$this->assertSame(array_values($changes->remove)[0]->id, $nekufa->id);
51+
$this->assertTrue($spy->hasChanges());
4952

5053
$spy->reset();
54+
5155
$changes = $spy->getChanges();
56+
$this->assertFalse($spy->hasChanges());
5257
$this->assertCount(0, $changes->create);
5358
$this->assertCount(0, $changes->update);
5459
$this->assertCount(0, $changes->remove);
5560

5661
$vasya = $mapper->create('person', ['email' => '[email protected]']);
5762

5863
$changes = $spy->getChanges();
64+
$this->assertTrue($spy->hasChanges());
5965
$this->assertCount(1, $changes->create);
6066
$this->assertCount(0, $changes->update);
6167
$this->assertCount(0, $changes->remove);
@@ -66,13 +72,15 @@ public function test()
6672
$mapper->save($vasya);
6773

6874
$changes = $spy->getChanges();
75+
$this->assertTrue($spy->hasChanges());
6976
$this->assertCount(1, $changes->create);
7077
$this->assertCount(0, $changes->update);
7178
$this->assertCount(0, $changes->remove);
7279
$this->assertSame([$vasya], array_values($changes->create));
7380

7481
$mapper->remove($vasya);
7582
$changes = $spy->getChanges();
83+
$this->assertFalse($spy->hasChanges());
7684
$this->assertCount(0, $changes->create);
7785
$this->assertCount(0, $changes->update);
7886
$this->assertCount(0, $changes->remove);
@@ -84,14 +92,15 @@ public function test()
8492
$mapper->save($vasya);
8593

8694
$changes = $spy->getChanges();
87-
95+
$this->assertTrue($spy->hasChanges());
8896
$this->assertCount(0, $changes->create);
8997
$this->assertCount(1, $changes->update);
9098
$this->assertCount(0, $changes->remove);
9199

92100
$mapper->remove($vasya);
93101

94102
$changes = $spy->getChanges();
103+
$this->assertTrue($spy->hasChanges());
95104
$this->assertCount(0, $changes->create);
96105
$this->assertCount(0, $changes->update);
97106
$this->assertCount(1, $changes->remove);

0 commit comments

Comments
 (0)