Ejemplo n.º 1
0
 public function testIndexCurrent()
 {
     //one meeting planed new, one meeting planed old, one to be planed
     $employee = factory(\plunner\Employee::class)->make();
     $this->company->employees()->save($employee);
     $group = factory(\plunner\Group::class)->make();
     $this->company->groups()->save($group);
     $employee->groups()->attach($group);
     $group->meetings()->save(factory(\plunner\Meeting::class)->make());
     //to be planed
     $new = factory(\plunner\Meeting::class)->make(['start_time' => (new \DateTime())->add(new \DateInterval('PT100S'))]);
     $group->meetings()->save($new);
     // new planed
     $employee->meetings()->attach($new->id);
     $old = factory(\plunner\Meeting::class)->make(['start_time' => (new \DateTime())->sub(new \DateInterval('PT100S'))]);
     $group->meetings()->save($old);
     // old planed
     $employee->meetings()->attach($old->id);
     //other planner meeting planned to test or condition
     $groupOther = \plunner\Group::whereNotIn('id', $employee->groups->pluck('id'))->firstOrFail();
     $other = factory(\plunner\Meeting::class)->make(['start_time' => (new \DateTime())->add(new \DateInterval('PT100S'))]);
     $groupOther->meetings()->save($other);
     $response = $this->actingAs($employee)->json('GET', '/employees/meetings/?current=1');
     $response->assertResponseOk();
     $employee = $employee->fresh();
     $response->seeJsonEquals($employee->meetings()->where(function ($query) {
         $query->where('start_time', '=', NULL);
         //to be planned
         $query->orWhere('start_time', '>=', new \DateTime());
         //planned
     })->get()->toArray());
     $content = $response->response->content();
     $content = json_decode($content, true);
     $content = collect($content);
     $content = $content->pluck('id')->toArray();
     $this->assertFalse(in_array($old->id, $content));
     $this->assertTrue(in_array($new->id, $content));
     $this->assertFalse(in_array($other->id, $content));
 }