assertInstanceOf('Bitpay\PublicKey', PublicKey::create()); } public function testGenerate() { $priKey = new PrivateKey(); $this->assertNotNull($priKey); $priKey->generate(); $pubKey = new PublicKey(); $this->assertNotNull($pubKey); $pubKey->setPrivateKey($priKey); $this->assertNull($pubKey->getHex()); $this->assertNull($pubKey->getDec()); $pubKey->generate(); $this->assertEquals(130, strlen($pubKey->getHex())); $this->assertGreaterThanOrEqual(155, strlen($pubKey->getDec())); } /** * @depends testGenerate */ public function testGetHex() { $pubKey = new PublicKey(); $this->assertNotNull($pubKey); $pubKey->setPrivateKey(PrivateKey::create()->generate()); $this->assertNull($pubKey->getHex()); $pubKey->generate(PrivateKey::create()->generate()); $this->assertEquals(130, strlen($pubKey->getHex())); } /** * @depends testGenerate */ public function testGetDec() { $pubKey = new PublicKey(); $this->assertNotNull($pubKey); $pubKey->setPrivateKey(PrivateKey::create()->generate()); $this->assertNull($pubKey->getDec()); $pubKey->generate(PrivateKey::create()->generate()); //$this->assertGreaterThanOrEqual(155, strlen($pubKey->getDec())); } /** * @depends testGenerate */ public function testToString() { $pubKey = new PublicKey(); $this->assertNotNull($pubKey); $pubKey->setPrivateKey(PrivateKey::create()->generate()); $this->assertSame('', (string) $pubKey); $pubKey->generate(PrivateKey::create()->generate()); if ('02'.$pubKey->getX() == $pubKey) { $compressed = '02'.$pubKey->getX(); } else { $compressed = '03'.$pubKey->getX(); } $this->assertSame($compressed, (string) $pubKey); } /** * @depends testGenerate */ public function testGetX() { $pubKey = new PublicKey(); $this->assertNotNull($pubKey); $pubKey->setPrivateKey(PrivateKey::create()->generate()); $this->assertNull($pubKey->getX()); $pubKey->generate(PrivateKey::create()->generate()); $this->assertEquals(64, strlen($pubKey->getX())); } /** * @depends testGenerate */ public function testGetY() { $pubKey = new PublicKey(); $this->assertNotNull($pubKey); $pubKey->setPrivateKey(PrivateKey::create()->generate()); $this->assertNull($pubKey->getY()); $pubKey->generate(PrivateKey::create()->generate()); $this->assertEquals(64, strlen($pubKey->getY())); } private function getMockPrivateKey() { return $this->getMockBuilder('Bitpay\PrivateKey') ->getMock(); } }