Skip to content

Commit

Permalink
Added remote control export_responses_by_token test
Browse files Browse the repository at this point in the history
  • Loading branch information
vcestone committed Aug 9, 2023
1 parent 489b809 commit fa6f070
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 0 deletions.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?php

namespace ls\tests;

/**
* Tests for the LimeSurvey remote API.
*/
class RemoteControlExportResponsesByTokenTest extends BaseTest
{
/**
* @var string
*/
protected static $username = null;

/**
* @var string
*/
protected static $password = null;

public static function setUpBeforeClass(): void
{
parent::setUpBeforeClass();

\Yii::import('application.helpers.remotecontrol.remotecontrol_handle', true);

// Import survey
$filename = self::$surveysFolder . '/survey_export_responses_by_token_955579.lsa';
self::importSurvey($filename);
}

/**
* Export responses by token.
*/
public function testExportResponsesByToken()
{
$sessionKey = $this->handler->get_session_key($this->getUsername(), $this->getPassword());

$result = $this->handler->export_responses_by_token($sessionKey, self::$surveyId, 'json', 'token1');
$this->assertNotNull($result);

$responses = json_decode(file_get_contents($result->fileName), true);
fwrite(STDERR, print_r(json_encode($responses), TRUE));
$this->assertTrue(count($responses['responses']) === 1, 'One response exported was expected.');
$this->assertTrue($responses['responses'][0]['token'] === 'token1', 'Response with token1 was expected');
}

/**
* Export responses by token2.
*/
public function testExportResponsesByToken2()
{
$sessionKey = $this->handler->get_session_key($this->getUsername(), $this->getPassword());

$result = $this->handler->export_responses_by_token($sessionKey, self::$surveyId, 'json', 'token2');
$this->assertNotNull($result);

$responses = json_decode(file_get_contents($result->fileName), true);
fwrite(STDERR, print_r(json_encode($responses), TRUE));
$this->assertTrue(count($responses['responses']) === 1, 'One response exported was expected.');
$this->assertTrue($responses['responses'][0]['token'] === 'token2', 'Response with token2 was expected');
}

/**
* Export responses by tokens array.
*/
public function testExportResponsesByTokensArray()
{
$sessionKey = $this->handler->get_session_key($this->getUsername(), $this->getPassword());

$result = $this->handler->export_responses_by_token($sessionKey, self::$surveyId, 'json', array('token3', 'token4'));
$this->assertNotNull($result);

$responses = json_decode(file_get_contents($result->fileName), true);
fwrite(STDERR, print_r(json_encode($responses) . PHP_EOL, TRUE));
$nrresponses = count($responses['responses']);
$this->assertTrue($nrresponses === 2, 'Two responses should have been exported. Found: ' . $nrresponses);
$this->assertTrue($responses['responses'][0]['token'] === 'token3', 'Response with token3 was expected');
$this->assertTrue($responses['responses'][1]['token'] === 'token4', 'Response with token4 was expected');
}

public static function tearDownAfterClass(): void
{
// Cleanup
self::$testSurvey->delete();
self::$testSurvey = null;

parent::tearDownAfterClass();
}
}

0 comments on commit fa6f070

Please sign in to comment.