questionId); self::assertSame(Answer::REG_LESSON, $answer->registrationType); self::assertSame(12, $answer->registrationId); self::assertSame(5, $answer->studentId); self::assertSame('Beginner', $answer->answerValue); self::assertSame(99, $answer->id); } public function testFromRowMapsCorrectly(): void { $row = (object) [ 'id' => '99', 'question_id' => '3', 'registration_type' => Answer::REG_ENROLLMENT, 'registration_id' => '12', 'student_id' => '5', 'answer_value' => '1', ]; $answer = Answer::fromRow($row); self::assertSame(99, $answer->id); self::assertSame(3, $answer->questionId); self::assertSame(Answer::REG_ENROLLMENT, $answer->registrationType); self::assertSame(12, $answer->registrationId); } public function testToArrayContainsExpectedKeys(): void { $answer = new Answer(3, Answer::REG_LESSON, 12, 5); $arr = $answer->toArray(); foreach (['id', 'question_id', 'registration_type', 'registration_id', 'student_id', 'answer_value'] as $key) { self::assertArrayHasKey($key, $arr); } } public function testValidRegistrationTypeConstants(): void { self::assertContains(Answer::REG_LESSON, Answer::VALID_REGISTRATION_TYPES); self::assertContains(Answer::REG_ENROLLMENT, Answer::VALID_REGISTRATION_TYPES); } }