Refactored Storage to be just Storage (not blacklist)

Implemented whitelist functionality
This commit is contained in:
ErickSkrauch
2016-04-28 23:37:24 +03:00
parent afad6a5b09
commit ca7e357b68
4 changed files with 195 additions and 52 deletions

View File

@@ -3,27 +3,27 @@ namespace Ely\TempMailBuster;
class StorageTest extends \PHPUnit_Framework_TestCase
{
public function testGetBlackList()
public function testGetItems()
{
$storage = new Storage(['item']);
$this->assertEquals(['item'], $storage->getBlacklist());
$this->assertEquals(['item'], $storage->getItems());
}
public function testAppendToBlacklist()
public function testAppend()
{
$storage = new Storage(['item1']);
$this->assertEquals($storage, $storage->appendToBlacklist(['item2']));
$this->assertEquals(['item1', 'item2'], $storage->getBlacklist());
$this->assertEquals($storage, $storage->append(['item2']));
$this->assertEquals(['item1', 'item2'], $storage->getItems());
$storage = new Storage(['item1']);
$this->assertEquals($storage, $storage->appendToBlacklist('item2'));
$this->assertEquals(['item1', 'item2'], $storage->getBlacklist());
$this->assertEquals($storage, $storage->append('item2'));
$this->assertEquals(['item1', 'item2'], $storage->getItems());
}
public function testSetBlacklist()
public function testSetItems()
{
$storage = new Storage(['item1']);
$this->assertEquals($storage, $storage->setBlacklist(['item2']));
$this->assertEquals(['item2'], $storage->getBlacklist());
$this->assertEquals($storage, $storage->setItems(['item2']));
$this->assertEquals(['item2'], $storage->getItems());
}
}

View File

@@ -3,11 +3,70 @@ namespace Ely\TempMailBuster;
class TempMailBusterTest extends \PHPUnit_Framework_TestCase
{
public function testGetStorage()
public function testValidate()
{
$object = new TempMailBuster(new Storage());
$this->assertTrue($object->validate('notch@mojang.com'));
$object = new TempMailBuster(new Storage());
$object->whitelistMode();
$this->assertFalse($object->validate('notch@mojang.com'));
$object = new TempMailBuster(new Storage(['mojang\.com']));
$this->assertFalse($object->validate('notch@mojang.com'));
$this->assertTrue($object->validate('erickskrauch@ely.by'));
$object = new TempMailBuster(new Storage(['gmail\.com']));
$object->whitelistMode();
$this->assertFalse($object->validate('team@ely.by'));
$this->assertTrue($object->validate('erickskrauch@gmail.com'));
$object = new TempMailBuster(new Storage(['mojang\.com', 'ely\.by']), new Storage(['ely\.by']));
$this->assertFalse($object->validate('notch@mojang.com'));
$this->assertTrue($object->validate('team@ely.by'));
$object = new TempMailBuster(new Storage(['gmail\.com', 'mail\.ru']), new Storage(['mail\.ru']));
$object->whitelistMode();
$this->assertTrue($object->validate('erickskrauch@gmail.com'));
$this->assertFalse($object->validate('random@mail.ru'));
}
public function testGetPrimaryStorage()
{
$storage = new Storage(['test']);
$object = new TempMailBuster($storage);
$this->assertEquals($storage, $object->getStorage());
$this->assertEquals($storage, $object->getPrimaryStorage());
}
public function testSetPrimaryStorage()
{
$storage = new Storage(['test2']);
$object = new TempMailBuster(new Storage(['test1']));
$this->assertEquals($object, $object->setPrimaryStorage($storage));
$this->assertEquals($storage, $object->getPrimaryStorage());
}
public function testGetSecondaryStorage()
{
$object = new TempMailBuster(new Storage());
$this->assertNull($object->getSecondaryStorage());
$storage = new Storage(['test']);
$object = new TempMailBuster(new Storage(), $storage);
$this->assertEquals($storage, $object->getSecondaryStorage());
}
public function testSetSecondaryStorage()
{
$storage = new Storage(['test2']);
$object = new TempMailBuster(new Storage());
$this->assertEquals($object, $object->setSecondaryStorage($storage));
$this->assertEquals($storage, $object->getSecondaryStorage());
$object->setSecondaryStorage(null);
$this->assertNull($object->getSecondaryStorage(), 'Set by null should work');
$object->setSecondaryStorage($storage);
$object->setSecondaryStorage();
$this->assertNull($object->getSecondaryStorage(), 'Set by empty value should work');
}
public function testGetDomain()
@@ -18,6 +77,25 @@ class TempMailBusterTest extends \PHPUnit_Framework_TestCase
$this->assertEquals('ely.by', $this->callGetDomain($object, 'ely.by'));
}
public function testIsIsWhitelistMode()
{
$object = new TempMailBuster(new Storage());
$this->assertFalse($object->isIsWhitelistMode(), 'Default should be false');
$object->whitelistMode();
$this->assertTrue($object->isIsWhitelistMode());
}
public function testWhitelistMode()
{
$object = new TempMailBuster(new Storage());
$this->assertEquals($object, $object->whitelistMode());
$this->assertTrue($object->isIsWhitelistMode(), 'Default value should change mode to whitelist');
$object->whitelistMode(false);
$this->assertFalse($object->isIsWhitelistMode());
$object->whitelistMode(true);
$this->assertTrue($object->isIsWhitelistMode());
}
public function testBuildRegex()
{
$object = new TempMailBuster(new Storage());
@@ -25,15 +103,6 @@ class TempMailBusterTest extends \PHPUnit_Framework_TestCase
$this->assertEquals('/^(simple|another)$/', $this->callBuildRegex($object, ['simple', 'another']));
}
public function testValidate()
{
$storage = new Storage(['mojang\.com']);
$object = new TempMailBuster($storage);
$this->assertFalse($object->validate('notch@mojang.com'));
$this->assertTrue($object->validate('jeb@mojang1.com'));
$this->assertTrue($object->validate('erickskrauch@ely.by'));
}
private function callGetDomain($object, $email)
{
$class = new \ReflectionClass($object);