test: add storage bag tests

This commit is contained in:
Khoubza Younes
2023-02-01 00:19:28 +01:00
parent 9b8e3ffa01
commit a7420e15aa
4 changed files with 116 additions and 20 deletions
+13 -4
View File
@@ -28,7 +28,7 @@ final class StorageBag implements StorageInterface
*/
public function all()
{
return $this->bag->get();
return array_values($this->bag->get());
}
/**
@@ -39,7 +39,10 @@ final class StorageBag implements StorageInterface
$envelopes = \is_array($envelopes) ? $envelopes : \func_get_args();
$envelopes = UuidStamp::indexByUuid($envelopes);
$this->bag->set(array_merge($this->all(), $envelopes));
$stored = UuidStamp::indexByUuid($this->all());
$envelopes = array_merge($stored, $envelopes);
$this->bag->set(array_values($envelopes));
}
/**
@@ -50,7 +53,10 @@ final class StorageBag implements StorageInterface
$envelopes = \is_array($envelopes) ? $envelopes : \func_get_args();
$envelopes = UuidStamp::indexByUuid($envelopes);
$this->bag->set(array_merge($this->all(), $envelopes));
$stored = UuidStamp::indexByUuid($this->all());
$envelopes = array_merge($stored, $envelopes);
$this->bag->set(array_values($envelopes));
}
/**
@@ -61,7 +67,10 @@ final class StorageBag implements StorageInterface
$envelopes = \is_array($envelopes) ? $envelopes : \func_get_args();
$envelopes = UuidStamp::indexByUuid($envelopes);
$this->bag->set(array_diff_key($this->all(), $envelopes));
$stored = UuidStamp::indexByUuid($this->all());
$envelopes = array_diff_key($stored, $envelopes);
$this->bag->set(array_values($envelopes));
}
/**
+8 -8
View File
@@ -34,7 +34,7 @@ final class StorageTest extends TestCase
$envelope = new Envelope(new Notification());
$storage->add($envelope);
$this->assertEquals(UuidStamp::indexByUuid($envelope), $storage->all());
$this->assertEquals(array($envelope), $storage->all());
}
/**
@@ -49,7 +49,7 @@ final class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
}
/**
@@ -68,12 +68,12 @@ final class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$envelopes[1]->withStamp(new PriorityStamp(1));
$storage->update($envelopes[1]);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$this->assertInstanceOf(
'Flasher\Prime\Stamp\PriorityStamp',
$envelopes[1]->get('Flasher\Prime\Stamp\PriorityStamp')
@@ -96,10 +96,10 @@ final class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$storage->remove($envelopes[1]);
$this->assertEquals(UuidStamp::indexByUuid($envelopes[0]), $storage->all());
$this->assertEquals(array($envelopes[0]), $storage->all());
}
/**
@@ -118,7 +118,7 @@ final class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$storage->remove($envelopes);
$this->assertEquals(array(), $storage->all());
@@ -140,7 +140,7 @@ final class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$storage->clear();
$this->assertEquals(array(), $storage->all());
+87
View File
@@ -0,0 +1,87 @@
<?php
/*
* This file is part of the PHPFlasher package.
* (c) Younes KHOUBZA <younes.khoubza@gmail.com>
*/
namespace Flasher\Tests\Prime\Storage;
use Flasher\Prime\Notification\Envelope;
use Flasher\Prime\Notification\Notification;
use Flasher\Prime\Stamp\UuidStamp;
use Flasher\Prime\Storage\StorageBag;
use Flasher\Tests\Prime\TestCase;
class StorageBagTest extends TestCase
{
/**
* @return void
*/
public function testAddEnvelopes()
{
$envelopes = array(
array(
new Envelope(new Notification(), new UuidStamp('1111')),
new Envelope(new Notification(), new UuidStamp('2222')),
),
array(
new Envelope(new Notification(), new UuidStamp('3333')),
new Envelope(new Notification(), new UuidStamp('4444')),
),
);
$storageBag = new StorageBag();
$storageBag->add($envelopes[0]);
$storageBag->add($envelopes[1]);
$this->assertEquals(array_merge($envelopes[0], $envelopes[1]), $storageBag->all());
}
/**
* @return void
*/
public function testUpdateEnvelopes()
{
$envelopes = array(
array(
new Envelope(new Notification(), new UuidStamp('1111')),
new Envelope(new Notification(), new UuidStamp('2222')),
),
array(
new Envelope(new Notification(), new UuidStamp('3333')),
new Envelope(new Notification(), new UuidStamp('4444')),
),
);
$storageBag = new StorageBag();
$storageBag->update($envelopes[0]);
$storageBag->update($envelopes[1]);
$this->assertEquals(array_merge($envelopes[0], $envelopes[1]), $storageBag->all());
}
/**
* @return void
*/
public function testRemoveEnvelopes()
{
$envelopes = array(
new Envelope(new Notification(), new UuidStamp('1111')),
new Envelope(new Notification(), new UuidStamp('2222')),
new Envelope(new Notification(), new UuidStamp('3333')),
new Envelope(new Notification(), new UuidStamp('4444')),
);
$storageBag = new StorageBag();
$storageBag->add($envelopes);
$storageBag->remove(array(
new Envelope(new Notification(), new UuidStamp('2222')),
));
unset($envelopes[1]);
$this->assertEquals(array_values($envelopes), $storageBag->all());
}
}
+8 -8
View File
@@ -40,7 +40,7 @@ class StorageTest extends TestCase
$storage = $this->getStorage();
$storage->add($envelope);
$this->assertEquals(array($uuid->getUuid() => $envelope), $storage->all());
$this->assertEquals(array($envelope), $storage->all());
}
/**
@@ -56,7 +56,7 @@ class StorageTest extends TestCase
$storage = $this->getStorage();
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
}
/**
@@ -75,12 +75,12 @@ class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$envelopes[1]->withStamp(new PriorityStamp(1));
$storage->update($envelopes[1]);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$this->assertInstanceOf(
'Flasher\Prime\Stamp\PriorityStamp',
$envelopes[1]->get('Flasher\Prime\Stamp\PriorityStamp')
@@ -103,10 +103,10 @@ class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$storage->remove($envelopes[1]);
$this->assertEquals(UuidStamp::indexByUuid(array($envelopes[0])), $storage->all());
$this->assertEquals(array($envelopes[0]), $storage->all());
}
/**
@@ -125,7 +125,7 @@ class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$storage->remove($envelopes);
$this->assertEquals(array(), $storage->all());
@@ -147,7 +147,7 @@ class StorageTest extends TestCase
);
$storage->add($envelopes);
$this->assertEquals(UuidStamp::indexByUuid($envelopes), $storage->all());
$this->assertEquals($envelopes, $storage->all());
$storage->clear();
$this->assertEquals(array(), $storage->all());