Domain\Student\StudentMatterCompletedServiceTest::test_sync PHP Method

test_sync() public method

public test_sync ( )
    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]);
        }
    }