-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathReadMeTest.php
123 lines (98 loc) · 3.56 KB
/
ReadMeTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
namespace Hackzilla\PasswordGenerator\Tests;
use Hackzilla\PasswordGenerator\Generator\ComputerPasswordGenerator;
use Hackzilla\PasswordGenerator\Generator\HumanPasswordGenerator;
use Hackzilla\PasswordGenerator\Generator\HybridPasswordGenerator;
use Hackzilla\PasswordGenerator\RandomGenerator\Php5RandomGenerator;
use Hackzilla\PasswordGenerator\RandomGenerator\Php7RandomGenerator;
class ReadMeTest extends \PHPUnit\Framework\TestCase
{
public function testSimpleUsage()
{
$generator = new ComputerPasswordGenerator();
$generator
->setOptionValue(ComputerPasswordGenerator::OPTION_UPPER_CASE, true)
->setOptionValue(ComputerPasswordGenerator::OPTION_LOWER_CASE, true)
->setOptionValue(ComputerPasswordGenerator::OPTION_NUMBERS, true)
->setOptionValue(ComputerPasswordGenerator::OPTION_SYMBOLS, false)
;
$this->assertIsString($generator->generatePassword());
}
public function testMorePasswordsUsage()
{
$generator = new ComputerPasswordGenerator();
$generator
->setUppercase()
->setLowercase()
->setNumbers()
->setSymbols(false)
->setLength(12);
$passwords = $generator->generatePasswords(10);
$this->assertCount(10, $passwords);
$this->assertIsString($passwords[0]);
}
public function testHybridPasswordGeneratorUsage()
{
$generator = new HybridPasswordGenerator();
$generator
->setUppercase()
->setLowercase()
->setNumbers()
->setSymbols(false)
->setSegmentLength(3)
->setSegmentCount(4)
->setSegmentSeparator('-');
$passwords = $generator->generatePasswords(10);
$this->assertCount(10, $passwords);
$this->assertIsString($passwords[0]);
}
public function testHumanPasswordGeneratorUsage()
{
$generator = new HumanPasswordGenerator();
$generator
->setWordList('/usr/share/dict/words')
->setMinWordLength(5)
->setMaxWordLength(8)
->setWordCount(3)
->setWordSeparator('-');
$passwords = $generator->generatePasswords(10);
$this->assertCount(10, $passwords);
$this->assertIsString($passwords[0]);
}
/**
* @throws \Hackzilla\PasswordGenerator\Exception\FileNotFoundException
*/
public function testPhp5RandomGeneratorUsage()
{
$generator = new HumanPasswordGenerator();
$generator
->setRandomGenerator(new Php5RandomGenerator())
->setWordList('/usr/share/dict/words')
->setMinWordLength(5)
->setMaxWordLength(8)
->setWordCount(3)
->setWordSeparator('-');
$passwords = $generator->generatePasswords(10);
$this->assertCount(10, $passwords);
$this->assertIsString($passwords[0]);
}
/**
* @requires PHP 7
*
* @throws \Hackzilla\PasswordGenerator\Exception\FileNotFoundException
*/
public function testPhp7RandomGeneratorUsage()
{
$generator = new HumanPasswordGenerator();
$generator
->setRandomGenerator(new Php7RandomGenerator())
->setWordList('/usr/share/dict/words')
->setMinWordLength(5)
->setMaxWordLength(8)
->setWordCount(3)
->setWordSeparator('-');
$passwords = $generator->generatePasswords(10);
$this->assertCount(10, $passwords);
$this->assertIsString($passwords[0]);
}
}