Skip to content

Commit

Permalink
Changed tests for 100% coverage
Browse files Browse the repository at this point in the history
Before the bitcoinAddressProvider would instantiate
Danwe\Bitcoin\Address instances which would result in
the static property holding the address parser being set
already. This would prevent from 100% coverage. Now
the provider won't instantiate addresses, instead a
address string provider is used for the tests.
  • Loading branch information
DanweDE committed Jun 21, 2015
1 parent a780eb5 commit d0999fa
Showing 1 changed file with 25 additions and 31 deletions.
56 changes: 25 additions & 31 deletions tests/AddressTest.php
Expand Up @@ -2,12 +2,14 @@

namespace Danwe\Bitcoin\Tests;

use \Danwe\Bitcoin\Address;
use Danwe\Bitcoin\Address;

/**
* @since 1.0.0
* @author Daniel A. R. Werner
*
* @covers Danwe\Bitcoin\Address
*
* Data from the official bitcoin client:
* https://github.com/bitcoin/bitcoin/tree/master/src/test/data
*/
Expand All @@ -32,52 +34,59 @@ public function testConstructionWithInvalidAddressString( $invalidAddressString
}

/**
* @dataProvider validAddressesProvider
* @dataProvider validAddressStringsProvider
* @depends testConstruction
*/
public function testAsString( Address $address, $addressString ) {
public function testAsString( $addressString ) {
$address = new Address( $addressString );
$this->assertEquals( $address->asString(), $addressString );
}

/**
* @dataProvider validAddressesProvider
* @dataProvider validAddressStringsProvider
* @depends testConstruction
*/
public function testCastToString( Address $address, $addressString ) {
public function testCastToString( $addressString ) {
$address = new Address( $addressString );
$this->assertEquals( (string)$address, $addressString );
}

/**
* @dataProvider validAddressesProvider
* @dataProvider validAddressStringsProvider
* @depends testConstruction
*/
public function testEqualsWithSameAddress( Address $address ) {
public function testEqualsWithSameInstance( $addressString ) {
$address = new Address( $addressString );
$this->assertTrue( $address->equals( $address ), 'Address instance equal to itself.' );
}

/**
* @dataProvider validAddressesProvider
* @dataProvider validAddressStringsProvider
* @depends testConstruction
*/
public function testEqualsWithEqualAddress( Address $address, $addressString ) {
public function testEqualsWithEqualAddress( $addressString ) {
$address = new Address( $addressString );
$equalAddress = new Address( $addressString );

$address->equals( $equalAddress );
$equalAddress->equals( $address );
}

/**
* @dataProvider validAddressesProvider
* @dataProvider validAddressStringsProvider
* @depends testConstruction
*/
public function testEqualsWithUnequalAddresses( Address $address, $addressString ) {
foreach( $this->validAddressesProvider() as $case ) {
$caseAddress = $case[ 0 ];
$caseAddressString = $case[ 1 ];
public function testEqualsWithUnequalAddresses( $addressString ) {
$address = new Address( $addressString );

foreach( $this->validAddressStringsProvider() as $case ) {
$caseAddressString = $case[ 0 ];

if( $caseAddressString === $addressString ) {
continue;
}
$caseAddress = new Address( $caseAddressString );

$this->assertFalse( $address->equals( $caseAddress ), 'Address A not equal B.' );
$this->assertFalse( $caseAddress->equals( $address ), 'Address B not equal A.' );
}
Expand All @@ -88,8 +97,8 @@ public function testEqualsWithUnequalAddresses( Address $address, $addressString
* @depends testConstruction
*/
public function testEqualsWithOtherValues( $value ) {
foreach( $this->validAddressesProvider() as $case ) {
$address = $case[ 0 ];
foreach( $this->validAddressStringsProvider() as $case ) {
$address = new Address( $case[ 0 ] );
$this->assertFalse( $address->equals( $value ), 'Address not equal value of type ' . gettype( $value ) );
}
}
Expand All @@ -103,21 +112,6 @@ public function otherValuesProvider() {
], 1 );
}

/**
* @return array( array( Address $address, string $addressString ), ... )
*/
public function validAddressesProvider() {
return array_map(
function( $value ) {
$addressString = $value[ 0 ];
return [
new Address( $addressString ),
$addressString
];
}, $this->validAddressStringsProvider()
);
}

/**
* @return array( array( string $addressString ), ... )
*/
Expand Down

0 comments on commit d0999fa

Please sign in to comment.