Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tomas_nord/questionnaire
1 result
Show changes
Commits on Source (2)
File added
......@@ -16,4 +16,24 @@ class Answer extends Model
* @var array
*/
protected $fillable = ['question_id', 'respondent_id', 'respondent_type', 'answer'];
/**
* Relationship
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function question(){
return $this->belongsTo(Question::class);
}
/**
* Receives all answers related to questionnaire id and respondent id
* @param $questionnaireId
* @param $respondentId
*
* @return \Illuminate\Support\Collection
*/
public static function findAnswers($questionnaireId, $respondentId)
{
return self::where(['questionnaire_id' => $questionnaireId, 'respondent_id' => $respondentId])->get();
}
}
......@@ -25,6 +25,11 @@ class Question extends Model
public function questionnaire(){
return $this->belongsTo(Questionnaire::class);
}
public function answer(){
return $this->hasMany(Answer::class);
}
/**
* Getting view instance
*
......
......@@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\Collection;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Http\Request;
use TomasNord\Questionnaire\Models\Anonymous;
use TomasNord\Questionnaire\Models\Answer;
use TomasNord\Questionnaire\Models\Questionnaire;
use TomasNord\Questionnaire\Questions\StarsQuestionType;
......@@ -48,6 +49,22 @@ class QuestionnaireTest extends TestCase
$this->assertCount(1, $this->questionnaire->answers->where('questionnaire_id', $this->questionnaire->id));
}
/** @test */
public function it_finds_all_answers_for_questionnaire_and_respondet(){
$questionId = 1;
$respondentId = 1;
$respondentType = User::class;
$answer = 'Nothing special, just answer.';
$this->questionnaire->addAnswer($questionId, $respondentId, $respondentType, $answer);
$answer = 'Nothing special, just another answer.';
$this->questionnaire->addAnswer($questionId, $respondentId, $respondentType, $answer);
$this->assertCount(2, Answer::findAnswers($this->questionnaire->id, $respondentId));
$this->assertEquals('Nothing special, just answer.', Answer::findAnswers($this->questionnaire->id, $respondentId)->first()->answer);
}
/** @test */
public function it_returns_questionnaire_view()
{
......