Example #1
0
 public function testHashcashMint1()
 {
     @unlink('test_data/hashcashdb.yml');
     @unlink('test_data/msgdb.yml');
     @unlink('test_data/nodesnewdb.yml');
     $runName = uniqid('', true);
     $prvFileName = 'testfile_client_id_rsa_' . date('Ymd_His') . '_' . $runName . '.prv';
     $pubFileName = 'testfile_client_id_rsa_' . date('Ymd_His') . '_' . $runName . '.pub';
     file_put_contents('test_data/' . $prvFileName, static::NODE_LOCAL_SSL_KEY_PRV1);
     file_put_contents('test_data/' . $pubFileName, static::NODE_LOCAL_SSL_KEY_PUB1);
     $settings = new Settings();
     $settings->data['datadir'] = 'test_data';
     $settings->data['firstRun'] = false;
     $settings->data['timeCreated'] = time();
     $settings->data['node']['uriLocal'] = '';
     $settings->data['node']['id'] = 'cafed00d-2131-4159-8e11-0b4dbadb1738';
     $settings->data['node']['sslKeyPrvPass'] = '******';
     $settings->data['node']['sslKeyPrvPath'] = 'test_data/' . $prvFileName;
     $settings->data['node']['sslKeyPubPath'] = 'test_data/' . $pubFileName;
     $settings->data['user']['nickname'] = 'user_' . substr(md5(time()), 0, 4);
     $log = new Logger('test_application');
     #$log->pushHandler(new LoggerStreamHandler('php://stdout', Logger::DEBUG));
     $kernel = new Kernel();
     $kernel->setLog($log);
     $kernel->setSettings($settings);
     $kernel->init();
     $server = $kernel->getServer();
     $server->setLog($log);
     $client = new Client();
     $client->setSslPrv($settings->data['node']['sslKeyPrvPath'], $settings->data['node']['sslKeyPrvPass']);
     $client->setId(1);
     $client->setServer($server);
     $hashcash1 = $client->hashcashMint(5);
     $hashcash2 = $client->hashcashMint();
     #fwrite(STDOUT, 'hashcash: /'.$hashcash.'/'."\n");
     $this->assertTrue($client->hashcashVerify($hashcash1, 'cafed00d-2131-4159-8e11-0b4dbadb1738', 5));
     $this->assertTrue($client->hashcashVerify($hashcash2, 'cafed00d-2131-4159-8e11-0b4dbadb1738'));
     $this->assertFalse($client->hashcashVerify($hashcash2, 'cafed00d-2131-4159-8e11-0b4dbadb1739'));
     $kernel->shutdown();
     $finder = new Finder();
     $files = $finder->in('test_data')->depth(0)->name('hashcashdb.yml')->files();
     #foreach($files as $file){ ve($file->getRealpath()); }
     $this->assertEquals(1, count($files));
     @unlink('test_data/hashcashdb.yml');
     @unlink('test_data/msgdb.yml');
     @unlink('test_data/nodesnewdb.yml');
 }