diff --git a/src/main/edu/wisc/doit/RpcNetidClientSoap.php b/src/main/edu/wisc/doit/RpcNetidClientSoap.php index 2bce093685491137ce2f62da028a19ca990d09e4..1b4708eebe734c07b6db1c5d330eb42ec6b02c6f 100644 --- a/src/main/edu/wisc/doit/RpcNetidClientSoap.php +++ b/src/main/edu/wisc/doit/RpcNetidClientSoap.php @@ -175,7 +175,7 @@ class RpcNetidClientSoap implements RpcNetidClient { RpcNetidClientSoapException::UNEXPECTED_STATUS_CODE ); break; case 404: - throw new RpcNetidClientSoapException("no Wiscard eligibility data found for uid", + throw new RpcNetidClientSoapException("Web service returned 404: no Wiscard eligibility data found for uid", RpcNetidClientSoapException::UNEXPECTED_STATUS_CODE ); break; case 405: diff --git a/src/test/integration-tests/RpcNetidClientSoapIT.php b/src/test/integration-tests/RpcNetidClientSoapIT.php index 991ae77fcadd772c93f1c7449b551dbd48572ca7..b85a8856aad3c80f1b3c6215347836dcdafb9030 100644 --- a/src/test/integration-tests/RpcNetidClientSoapIT.php +++ b/src/test/integration-tests/RpcNetidClientSoapIT.php @@ -3,6 +3,7 @@ use edu\wisc\doit\RpcNetidClientSoapConfig; use edu\wisc\doit\RpcNetidClientSoap; use edu\wisc\doit\RpcNetidStructQuestion; +use edu\wisc\doit\RpcNetidStructValidationResponse; /** * Integration tests for edu\wisc\doit\RpcNetidClientSoap @@ -77,30 +78,49 @@ class RpcNetidClientSoapIT extends PHPUnit_Framework_TestCase { } /** @test */ - public function credentialCheck_validIT() { - $result = self::$client->credentialCheck( + public function checkLOA_Loa2valid() { + $result = self::$client->checkLOA( self::$testData['user']['uid'], new DateTime( self::$testData['user']['birthdate'] ), intval( self::$testData['user']['wiscard'] ) ); - $this->assertTrue( $result ); + $this->assertTrue( $result->getIsValid() ); } /** @test test valid credentials for an LOA1 NetID (NetID and DOB only) */ - public function credentialCheck_Loa1Valid() { - $result = self::$client->credentialCheck( + public function checkLOA_Loa1Valid() { + $result = self::$client->checkLOA( self::$testData['loa1-user']['uid'], new DateTime( self::$testData['loa1-user']['birthdate'] ) ); - $this->assertTrue( $result ); + $this->assertTrue( $result->getIsValid() ); } /** @test */ - public function credentialCheck_invalidIT() { - $result = self::$client->credentialCheck( + public function checkLOA_invalid() { + $result = self::$client->checkLOA( self::$testData['invalid-user']['uid'], new DateTime( self::$testData['invalid-user']['birthdate'] ), intval( self::$testData['invalid-user']['wiscard'] ) ); - $this->assertFalse( $result ); + $this->assertFalse( $result->getIsValid() ); + } + + /** @test Returns invalid if LOA2 and no wiscard provided */ + public function checkLOA_Loa2_no_wiscard() { + $result = self::$client->checkLOA( + self::$testData['user']['uid'], + new DateTime( self::$testData['user']['birthdate'] ) ); + $this->assertFalse( $result->getIsValid() ); + $this->assertContains( RpcNetidStructValidationResponse::REASON_NEEDS_WISCARD, $result->getReasons() ); + } + + /** @test returns valid if LOA1 enters wiscard even if one doesn't exist */ + public function checkLOA_loa1_with_wiscard_returns_valid() { + $result = self::$client->checkLOA( + self::$testData['loa1-user']['uid'], + new DateTime( self::$testData['loa1-user']['birthdate'] ), + intval( 12345678901 ) + ); + $this->assertTrue( $result->getIsValid() ); } /** @test */