. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace tests\unit\Espo\Tools\UserSecurity\Password; use Espo\Tools\UserSecurity\Password\ConfigProvider; use Espo\Tools\UserSecurity\Password\Generator; use PHPUnit\Framework\TestCase; class GeneratorTest extends TestCase { public function testGenerate(): void { $configProvider = $this->createMock(ConfigProvider::class); $configProvider ->expects($this->any()) ->method('getGenerateLength') ->willReturn(8); $configProvider ->expects($this->any()) ->method('getStrengthLength') ->willReturn(6); $configProvider ->expects($this->any()) ->method('getStrengthLetterCount') ->willReturn(2); $configProvider ->expects($this->any()) ->method('getStrengthNumberCount') ->willReturn(1); $configProvider ->expects($this->any()) ->method('getStrengthBothCases') ->willReturn(true); $configProvider ->expects($this->any()) ->method('getStrengthSpecialCharacterCount') ->willReturn(1); $generator = new Generator($configProvider); $password = $generator->generate(); $this->assertEquals(8, strlen($password)); } }