public function PollVoteStorageTest::testGetUserVote in Poll 8
@covers ::getUserVote
File
- tests/
src/ Kernel/ PollVoteStorageTest.php, line 26
Class
- PollVoteStorageTest
- Tests the PollVoteStorage class.
Namespace
Drupal\Tests\poll\KernelCode
public function testGetUserVote() {
$poll = $this
->createPoll();
$choice_id = $poll
->get('choice')
->first()
->getValue()['target_id'];
$this
->saveVote($poll, $choice_id);
/** @var \Drupal\poll\PollVoteStorageInterface $poll_vote_storage */
$poll_vote_storage = $this->container
->get('poll_vote.storage');
$this
->assertEquals($choice_id, $poll_vote_storage
->getUserVote($poll)['chid']);
// Test that a second poll returns the vote for that poll and not the first.
$second_poll = $this
->createPoll();
$another_choice_id = $second_poll
->get('choice')
->first()
->getValue()['target_id'];
$this
->saveVote($second_poll, $another_choice_id);
$this
->assertEquals($another_choice_id, $poll_vote_storage
->getUserVote($second_poll)['chid']);
// Test that anonymous users with non-anonymous poll return FALSE.
$not_anonymous_poll = $this
->createPoll();
$not_anonymous_poll
->setAnonymousVoteAllow(FALSE);
$poll
->save();
$this
->assertFalse($poll_vote_storage
->getUserVote($not_anonymous_poll));
// Test with an authenticated user.
$this
->setUpCurrentUser([
'uid' => 2,
]);
$choice_id = $poll
->get('choice')
->get(1)->target_id;
$this
->saveVote($poll, $choice_id);
$this
->assertEquals($choice_id, $poll_vote_storage
->getUserVote($poll)['chid']);
// Make sure we are using the stored value by removing the votes from the
// database and testing that we still get a value from our service.
/** @var \Drupal\Core\Database\Connection $connection */
$connection = $this->container
->get('database');
$connection
->delete('poll_vote')
->execute();
$this
->assertEquals($choice_id, $poll_vote_storage
->getUserVote($poll)['chid']);
}