public function test_sync()
{
//set
$classroom = factory(Classroom::class)->create();
$matters = factory(Matter::class, 10)->create();
$classroom2 = factory(Classroom::class)->create();
$student = factory(Student::class)->create();
$matters->random(4)->each(function ($matter) use($classroom) {
$classroom->matters()->attach($matter);
});
$matters->random(3)->each(function ($matter) use($classroom2) {
$classroom2->matters()->attach($matter);
});
$service = App::make(StudentMatterCompletedService::class);
//expect
$sync = [];
foreach ($classroom->matters as $matter) {
$sync[] = ['id' => $matter->pivot->id];
}
foreach ($classroom2->matters as $matter) {
$sync[] = ['id' => $matter->pivot->id];
}
$response = $service->sync($student->id, $sync);
//assert
$this->assertTrue($response);
foreach ($sync as $id) {
$this->seeInDatabase('classroom_matter_student_completed', ['classroom_matter_id' => $id, 'student_id' => $student->id]);
}
}