diff --git a/tests/cases/ClientFactoryTest.php b/tests/cases/ClientFactoryTest.php new file mode 100644 index 0000000..cdbdaea --- /dev/null +++ b/tests/cases/ClientFactoryTest.php @@ -0,0 +1,45 @@ +create()), $clientFactory->create()); + } + + public function testCertificateBadPassword(): void + { + $certificateFactory = new Contributte\EET\CertificateFactory(DATA_DIR . '/EET_CA1_Playground-CZ00000019.p12', 'nothing'); + $clientFactory = new Contributte\EET\ClientFactory($certificateFactory, Contributte\EET\Dispatcher::PLAYGROUND_SERVICE, true); + + Assert::exception(static function () use ($clientFactory): void { + $clientFactory->create(); + }, FilipSedivy\EET\Exceptions\Certificate\CertificateExportFailedException::class); + } + + public function testCertificateNotFound(): void + { + $certificateFactory = new Contributte\EET\CertificateFactory(DATA_DIR . '/EET_CA1_Playground.p12', 'eet'); + $clientFactory = new Contributte\EET\ClientFactory($certificateFactory, Contributte\EET\Dispatcher::PLAYGROUND_SERVICE, true); + + Assert::exception(static function () use ($clientFactory): void { + $clientFactory->create(); + }, FilipSedivy\EET\Exceptions\Certificate\CertificateNotFoundException::class); + } + +} + +(new ClientFactoryTest())->run(); diff --git a/tests/cases/DI/EETExtensionTest.php b/tests/cases/DI/EETExtensionTest.php new file mode 100644 index 0000000..fa33342 --- /dev/null +++ b/tests/cases/DI/EETExtensionTest.php @@ -0,0 +1,75 @@ +load(function (Nette\DI\Compiler $compiler): void { + $compiler->addExtension('eet', new Contributte\EET\DI\EETExtension()); + }, [getmygid(), __METHOD__]); + }, Nette\DI\InvalidConfigurationException::class); + } + + public function testRequireParameters(): void + { + $loader = new Nette\DI\ContainerLoader(TEMP_DIR, true); + $class = $loader->load(function (Nette\DI\Compiler $compiler): void { + $compiler->addExtension('eet', new Contributte\EET\DI\EETExtension()); + $compiler->loadConfig(FileMock::create(' + eet: + certificate: + file: Playground.p12 + password: eet + ', 'neon')); + }, [getmygid(), __METHOD__]); + + /** @var Nette\DI\Container $container */ + $container = new $class(); + + Assert::type(Contributte\EET\ClientFactory::class, $container->getByType(Contributte\EET\ClientFactory::class)); + Assert::type(Contributte\EET\ReceiptFactory::class, $container->getByType(Contributte\EET\ReceiptFactory::class)); + } + + public function testDefaultReceiptParams(): void + { + $loader = new Nette\DI\ContainerLoader(TEMP_DIR, true); + $class = $loader->load(function (Nette\DI\Compiler $compiler): void { + $compiler->addExtension('eet', new Contributte\EET\DI\EETExtension()); + $compiler->loadConfig(FileMock::create(' + eet: + certificate: + file: Playground.p12 + password: eet + + receipt: + id_provoz: 1234 + dic_popl: CZ1234 + ', 'neon')); + }, [getmygid(), __METHOD__]); + + /** @var Nette\DI\Container $container */ + $container = new $class(); + + $receipt = $container->getByType(Contributte\EET\ReceiptFactory::class)->create(); + + Assert::same($receipt->id_provoz, 1234); + Assert::same($receipt->dic_popl, 'CZ1234'); + } + +} + +(new EETExtensionTest())->run();