/** * @param Message $invalidInput * @throws Exception\InvalidMessageException * @dataProvider invalidInputExamples */ public function testInvalidInput($appKeyPair, $invalidInput) { $caKeyPair = KeyPair::create(); $this->assertNotEmpty($caKeyPair['privatekey']); $this->assertNotEmpty($caKeyPair['publickey']); $caCert = CA::create($caKeyPair, '/O=test'); $this->assertNotEmpty($caCert); $appMeta = array('title' => 'My App', 'appId' => self::APP_ID, 'appCert' => CA::signCSR($caKeyPair, $caCert, CA::createAppCSR($appKeyPair, '/O=Application Provider')), 'appUrl' => 'http://app-a.com/cxn', 'perm' => array('api' => array(), 'grant' => array('view all contacts'))); $appCxnStore = new ArrayCxnStore(); $regServer = new RegistrationServer($appMeta, $appKeyPair, $appCxnStore); list($headers, $blob, $code) = $regServer->handle($invalidInput->encode())->toHttp(); $this->assertEquals(400, $code); $message = InsecureMessage::decode($blob); $data = $message->getData(); $this->assertEquals(1, $data['is_error']); $this->assertEquals('Invalid message coding', $data['error_message']); }