Skip to content

Commit

Permalink
Merge pull request #54 from hyperwallet/feature/V4-User-endpoint-PHP-…
Browse files Browse the repository at this point in the history
…Update-List-multipart-statustransition

Feature/v4 user endpoint php update list multipart statustransition
  • Loading branch information
akalichety-hw committed Oct 20, 2020
2 parents fc12496 + a932d7c commit b0f245c
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 20 deletions.
Empty file added hasPreviousPage
Empty file.
4 changes: 2 additions & 2 deletions src/Hyperwallet/Hyperwallet.php
Original file line number Diff line number Diff line change
Expand Up @@ -1983,7 +1983,7 @@ public function updateVerificationStatus($userToken, $verificationStatus){
throw new HyperwalletArgumentException('verificationStatus is required!');
}
$user = new User(array('verificationStatus'=> $verificationStatus));
$responseUser = $this->client->doPut('/rest/v3/users/{user-token}', array('user-token' => $userToken), $user, array());
$responseUser = $this->client->doPut('/rest/v4/users/{user-token}', array('user-token' => $userToken), $user, array());
return new User($responseUser);
}

Expand All @@ -2003,7 +2003,7 @@ public function createUserStatusTransition($userToken, UserStatusTransition $tra
if (empty($transition->getTransition())) {
throw new HyperwalletArgumentException('userStatusTransition is required!');
}
$body = $this->client->doPost('/rest/v3/users/{user-token}/status-transitions', array(
$body = $this->client->doPost('/rest/v4/users/{user-token}/status-transitions', array(
'user-token' => $userToken), $transition, array());
return new UserStatusTransition($body);
}
Expand Down
57 changes: 39 additions & 18 deletions tests/Hyperwallet/Tests/HyperwalletTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -209,13 +209,34 @@ public function testUpdateUser_allParameters() {
$client = new Hyperwallet('test-username', 'test-password');
$apiClientMock = $this->createAndInjectApiClientMock($client);
$user = new User(array('token' => 'test-user-token'));
$user->setFirstName("test-first-name");

$user->setVerificationStatus(User::VERIFICATION_STATUS_VERIFIED);
$user->setBusinessStakeholderVerificationStatus(User::BUSINESSS_STAKEHOLDER_VERIFICATION_STATUS_VERIFIED);
$user->setLetterOfAuthorizationStatus(User::LETTER_OF_AUTHORIZATION_STATUS_VERIFIED);
$user->setGovernmentIdType(User::GOVERNMENT_ID_TYPE_NATIONAL_ID_CARD);

$expectedResponse = array('success' => 'true','verificationStatus'=>User::VERIFICATION_STATUS_VERIFIED,
'businessStakeholderVerificationStatus'=>User::BUSINESSS_STAKEHOLDER_VERIFICATION_STATUS_VERIFIED,
'letterOfAuthorizationStatus'=>User::LETTER_OF_AUTHORIZATION_STATUS_VERIFIED,
'governmentIdType'=>User::GOVERNMENT_ID_TYPE_NATIONAL_ID_CARD,
'firstName'=>"test-first-name",
'businessOperatingName'=>"test-business-operating-name",
'timeZone'=>'test-time-zone');

\Phake::when($apiClientMock)->doPut('/rest/v4/users/{user-token}', array('user-token' => 'test-user-token'), $user, array())->thenReturn(array('success' => 'true'));
\Phake::when($apiClientMock)->doPut('/rest/v4/users/{user-token}', array('user-token' => 'test-user-token'), $user, array())->thenReturn($expectedResponse);

// Run test
$newUser = $client->updateUser($user);
$this->assertNotNull($newUser);
$this->assertEquals(array('success' => 'true'), $newUser->getProperties());
$this->assertEquals(array('success' => 'true','verificationStatus'=>User::VERIFICATION_STATUS_VERIFIED,
'businessStakeholderVerificationStatus'=>User::BUSINESSS_STAKEHOLDER_VERIFICATION_STATUS_VERIFIED,
'letterOfAuthorizationStatus'=>User::LETTER_OF_AUTHORIZATION_STATUS_VERIFIED,
'governmentIdType'=>User::GOVERNMENT_ID_TYPE_NATIONAL_ID_CARD,
'firstName'=>"test-first-name",
'businessOperatingName'=>"test-business-operating-name",
'timeZone'=>'test-time-zone'), $newUser->getProperties());


// Validate mock
\Phake::verify($apiClientMock)->doPut('/rest/v4/users/{user-token}', array('user-token' => 'test-user-token'), $user, array());
Expand Down Expand Up @@ -283,7 +304,7 @@ public function testGetUserStatusTransition_noUserToken() {

// Run test
try {
$client->createUserStatusTransition('',$statusTransition);
$client->getUserStatusTransition('',$statusTransition);
$this->fail('HyperwalletArgumentException expected');
} catch (HyperwalletArgumentException $e) {
$this->assertEquals('userToken is required!', $e->getMessage());
Expand All @@ -310,15 +331,15 @@ public function testCreateUserStatusTransition_allParameters() {
$statusTransition = new UserStatusTransition();
$statusTransition->setTransition(UserStatusTransition::TRANSITION_ACTIVATED);

\Phake::when($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'), $statusTransition, array())->thenReturn(array('success' => 'true'));
\Phake::when($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'), $statusTransition, array())->thenReturn(array('success' => 'true'));

// Run test
$newStatusTransition = $client->createUserStatusTransition('test-user-token', $statusTransition);
$this->assertNotNull($newStatusTransition);
$this->assertEquals(array('success' => 'true'), $newStatusTransition->getProperties());

// Validate mock
\Phake::verify($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'), $statusTransition, array());
\Phake::verify($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'), $statusTransition, array());
}

public function testActivateUser() {
Expand All @@ -327,15 +348,15 @@ public function testActivateUser() {
$apiClientMock = $this->createAndInjectApiClientMock($client);
$statusTransition = new UserStatusTransition();
$statusTransition->setTransition(UserStatusTransition::TRANSITION_ACTIVATED);
\Phake::when($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::when($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array())->thenReturn(array('success' => 'true'));
// Run test
$newStatusTransition = $client->activateUser('test-user-token');
$this->assertNotNull($newStatusTransition);
$this->assertEquals(array('success' => 'true'), $newStatusTransition->getProperties());

// Validate mock
\Phake::verify($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::verify($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array());
}

Expand All @@ -346,15 +367,15 @@ public function testDeactivateUser() {
$statusTransition = new UserStatusTransition();
$statusTransition->setTransition(UserStatusTransition::TRANSITION_DE_ACTIVATED);

\Phake::when($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::when($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array())->thenReturn(array('success' => 'true'));
// Run test
$newStatusTransition = $client->deactivateUser('test-user-token');
$this->assertNotNull($newStatusTransition);
$this->assertEquals(array('success' => 'true'), $newStatusTransition->getProperties());

// Validate mock
\Phake::verify($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::verify($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array());
}

Expand All @@ -365,15 +386,15 @@ public function testLockUser() {
$statusTransition = new UserStatusTransition();
$statusTransition->setTransition(UserStatusTransition::TRANSITION_LOCKED);

\Phake::when($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::when($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array())->thenReturn(array('success' => 'true'));
// Run test
$newStatusTransition = $client->lockUser('test-user-token');
$this->assertNotNull($newStatusTransition);
$this->assertEquals(array('success' => 'true'), $newStatusTransition->getProperties());

// Validate mock
\Phake::verify($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::verify($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array());
}

Expand All @@ -384,15 +405,15 @@ public function testFreezeUser() {
$statusTransition = new UserStatusTransition();
$statusTransition->setTransition(UserStatusTransition::TRANSITION_FROZEN);

\Phake::when($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::when($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array())->thenReturn(array('success' => 'true'));
// Run test
$newStatusTransition = $client->freezeUser('test-user-token');
$this->assertNotNull($newStatusTransition);
$this->assertEquals(array('success' => 'true'), $newStatusTransition->getProperties());

// Validate mock
\Phake::verify($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::verify($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array());
}

Expand All @@ -403,15 +424,15 @@ public function testPreactivateUser() {
$statusTransition = new UserStatusTransition();
$statusTransition->setTransition(UserStatusTransition::TRANSITION_PRE_ACTIVATED);

\Phake::when($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::when($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array())->thenReturn(array('success' => 'true'));
// Run test
$newStatusTransition = $client->preactivateUser('test-user-token');
$this->assertNotNull($newStatusTransition);
$this->assertEquals(array('success' => 'true'), $newStatusTransition->getProperties());

// Validate mock
\Phake::verify($apiClientMock)->doPost('/rest/v3/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
\Phake::verify($apiClientMock)->doPost('/rest/v4/users/{user-token}/status-transitions', array('user-token' => 'test-user-token'),
$statusTransition, array());
}

Expand Down Expand Up @@ -4030,8 +4051,8 @@ public function testUpdateVerificationStatus_allParameters() {
$client = new Hyperwallet('test-username', 'test-password');
$apiClientMock = $this->createAndInjectApiClientMock($client);
$user = new user(array('verificationStatus'=> User::VERIFICATION_STATUS_REQUESTED));
\Phake::when($apiClientMock)->doPut('/rest/v3/users/{user-token}', array('user-token' => 'test-user-token'), $user, array())->thenReturn(array("status"=> User::STATUS_PRE_ACTIVATED, 'verificationStatus'=> User::VERIFICATION_STATUS_REQUIRED));
\Phake::when($apiClientMock)->doGet('/rest/v3/users/{user-token}', array('user-token' => 'test-user-token'), array())->thenReturn(array("status"=> User::STATUS_PRE_ACTIVATED, 'verificationStatus'=> User::VERIFICATION_STATUS_REQUIRED));
\Phake::when($apiClientMock)->doPut('/rest/v4/users/{user-token}', array('user-token' => 'test-user-token'), $user, array())->thenReturn(array("status"=> User::STATUS_PRE_ACTIVATED, 'verificationStatus'=> User::VERIFICATION_STATUS_REQUIRED));
\Phake::when($apiClientMock)->doGet('/rest/v4/users/{user-token}', array('user-token' => 'test-user-token'), array())->thenReturn(array("status"=> User::STATUS_PRE_ACTIVATED, 'verificationStatus'=> User::VERIFICATION_STATUS_REQUIRED));

// Run test
try {
Expand All @@ -4042,7 +4063,7 @@ public function testUpdateVerificationStatus_allParameters() {
$this->assertNotNull($responseUser);
$this->assertEquals('REQUIRED', $responseUser->getVerificationStatus());
// Validate mock
\Phake::verify($apiClientMock)->doPut('/rest/v3/users/{user-token}', array('user-token' => 'test-user-token'), $user, array());
\Phake::verify($apiClientMock)->doPut('/rest/v4/users/{user-token}', array('user-token' => 'test-user-token'), $user, array());
}


Expand Down

0 comments on commit b0f245c

Please sign in to comment.