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 */