Implemented TempMailBuster class and his tests.

Extended tests for Storage class
This commit is contained in:
ErickSkrauch
2016-04-27 10:22:44 +03:00
parent f65846ad9b
commit 3a2d7c7e63
3 changed files with 127 additions and 3 deletions

View File

@@ -12,18 +12,18 @@ class StorageTest extends \PHPUnit_Framework_TestCase
public function testAppendToBlacklist()
{
$storage = new Storage(['item1']);
$storage->appendToBlacklist(['item2']);
$this->assertEquals($storage, $storage->appendToBlacklist(['item2']));
$this->assertEquals(['item1', 'item2'], $storage->getBlacklist());
$storage = new Storage(['item1']);
$storage->appendToBlacklist('item2');
$this->assertEquals($storage, $storage->appendToBlacklist('item2'));
$this->assertEquals(['item1', 'item2'], $storage->getBlacklist());
}
public function testSetBlacklist()
{
$storage = new Storage(['item1']);
$storage->setBlacklist(['item2']);
$this->assertEquals($storage, $storage->setBlacklist(['item2']));
$this->assertEquals(['item2'], $storage->getBlacklist());
}
}

View File

@@ -0,0 +1,54 @@
<?php
namespace Ely\TempMailBuster;
class TempMailBusterTest extends \PHPUnit_Framework_TestCase
{
public function testGetStorage()
{
$storage = new Storage(['test']);
$object = new TempMailBuster($storage);
$this->assertEquals($storage, $object->getStorage());
}
public function testGetDomain()
{
$object = new TempMailBuster(new Storage());
$this->assertEquals('ely.by', $this->callGetDomain($object, 'erickskrauch@ely.by'));
$this->assertEquals('ely.by', $this->callGetDomain($object, '@ely.by'));
$this->assertEquals('ely.by', $this->callGetDomain($object, 'ely.by'));
}
public function testBuildRegex()
{
$object = new TempMailBuster(new Storage());
$this->assertEquals('/^(simple)$/', $this->callBuildRegex($object, ['simple']));
$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);
$method = $class->getMethod('getDomain');
$method->setAccessible(true);
return $method->invokeArgs($object, [$email]);
}
private function callBuildRegex($object, array $list)
{
$class = new \ReflectionClass($object);
$method = $class->getMethod('buildRegex');
$method->setAccessible(true);
return $method->invokeArgs($object, [$list]);
}
}