/** * Test for data_connector::saveToolConsumer(). */ public function test_save_consumer() { $dc = new data_connector(); $time = time(); $data = ['name' => 'TestName', 'secret' => 'TestSecret', 'ltiversion' => ToolProvider::LTI_VERSION1, 'consumername' => 'TestConsumerName', 'consumerversion' => 'TestConsumerVersion', 'consumerguid' => 'TestConsumerGuid', 'profile' => json_decode('{TestProfile}'), 'toolproxy' => 'TestProxy', 'settings' => ['setting1' => 'TestSetting 1', 'setting2' => 'TestSetting 2'], 'protected' => 1, 'enabled' => 0, 'enablefrom' => $time, 'enableuntil' => $time + 1, 'lastaccess' => strtotime(date('Y-m-d'))]; $consumer = new ToolConsumer(); $consumer->name = $data['name']; $consumer->setKey('TestKey'); $consumer->secret = $data['secret']; $consumer->ltiVersion = $data['ltiversion']; $consumer->consumerName = $data['consumername']; $consumer->consumerVersion = $data['consumerversion']; $consumer->consumerGuid = $data['consumerguid']; $consumer->profile = $data['profile']; $consumer->toolProxy = $data['toolproxy']; $consumer->setSettings($data['settings']); $consumer->protected = true; $consumer->enabled = false; $consumer->enableFrom = $data['enablefrom']; $consumer->enableUntil = $data['enableuntil']; $consumer->lastAccess = $data['lastaccess']; // Save new consumer into the DB. $this->assertTrue($dc->saveToolConsumer($consumer)); // Check saved values. $this->assertEquals($consumer->name, $data['name']); $this->assertEquals($consumer->getKey(), 'TestKey'); $this->assertEquals($consumer->secret, $data['secret']); $this->assertEquals($consumer->ltiVersion, $data['ltiversion']); $this->assertEquals($consumer->consumerName, $data['consumername']); $this->assertEquals($consumer->consumerVersion, $data['consumerversion']); $this->assertEquals($consumer->consumerGuid, $data['consumerguid']); $this->assertEquals($consumer->profile, $data['profile']); $this->assertEquals($consumer->toolProxy, $data['toolproxy']); $this->assertEquals($consumer->getSettings(), $data['settings']); $this->assertTrue($consumer->protected); $this->assertFalse($consumer->enabled); $this->assertEquals($consumer->enableFrom, $data['enablefrom']); $this->assertEquals($consumer->enableUntil, $data['enableuntil']); $this->assertEquals($consumer->lastAccess, $data['lastaccess']); // Edit values. $edit = 'EDIT'; $consumer->name = $data['name'] . $edit; $consumer->setKey('TestKey' . $edit); $consumer->secret = $data['secret'] . $edit; $consumer->ltiVersion = ToolProvider::LTI_VERSION2; $consumer->consumerName = $data['consumername'] . $edit; $consumer->consumerVersion = $data['consumerversion'] . $edit; $consumer->consumerGuid = $data['consumerguid'] . $edit; $editprofile = json_decode('{TestProfile}'); $consumer->profile = $editprofile; $consumer->toolProxy = $data['toolproxy'] . $edit; $editsettings = ['setting1' => 'TestSetting 1' . $edit, 'setting2' => 'TestSetting 2' . $edit]; $consumer->setSettings($editsettings); $consumer->protected = null; $consumer->enabled = null; $consumer->enableFrom = $data['enablefrom'] + 100; $consumer->enableUntil = $data['enableuntil'] + 100; // Save edited values. $this->assertTrue($dc->saveToolConsumer($consumer)); // Check edited values. $this->assertEquals($consumer->name, $data['name'] . $edit); $this->assertEquals($consumer->getKey(), 'TestKey' . $edit); $this->assertEquals($consumer->secret, $data['secret'] . $edit); $this->assertEquals($consumer->ltiVersion, ToolProvider::LTI_VERSION2); $this->assertEquals($consumer->consumerName, $data['consumername'] . $edit); $this->assertEquals($consumer->consumerVersion, $data['consumerversion'] . $edit); $this->assertEquals($consumer->consumerGuid, $data['consumerguid'] . $edit); $this->assertEquals($consumer->profile, $editprofile); $this->assertEquals($consumer->toolProxy, $data['toolproxy'] . $edit); $this->assertEquals($consumer->getSettings(), $editsettings); $this->assertNull($consumer->protected); $this->assertNull($consumer->enabled); $this->assertEquals($consumer->enableFrom, $data['enablefrom'] + 100); $this->assertEquals($consumer->enableUntil, $data['enableuntil'] + 100); }