status); self::assertNull($lesson->notes); self::assertNull($lesson->id); } public function testFromRowMapsCorrectly(): void { $row = (object) [ 'id' => '99', 'slot_id' => '10', 'student_id' => '20', 'instructor_id' => '30', 'status' => 'confirmed', 'notes' => 'Bring your guitar.', ]; $lesson = Lesson::fromRow($row); self::assertSame(99, $lesson->id); self::assertSame(10, $lesson->slotId); self::assertSame(20, $lesson->studentId); self::assertSame(30, $lesson->instructorId); self::assertSame('confirmed', $lesson->status); self::assertSame('Bring your guitar.', $lesson->notes); } public function testToArrayContainsExpectedKeys(): void { $lesson = new Lesson(1, 2, 3, Lesson::STATUS_PENDING, 'Note', 5); $arr = $lesson->toArray(); self::assertArrayHasKey('id', $arr); self::assertArrayHasKey('slot_id', $arr); self::assertArrayHasKey('student_id', $arr); self::assertArrayHasKey('instructor_id', $arr); self::assertArrayHasKey('status', $arr); self::assertArrayHasKey('notes', $arr); } }