You've already forked php-flasher
mirror of
https://github.com/php-flasher/php-flasher.git
synced 2026-04-05 12:32:55 +01:00
test: add storage bag tests
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user