first(); if (!$user) { $user = new User(); $user->name = 'test_list_segment_logic_execution'; $user->email = $email; $user->password = bcrypt('password'); $user->save(); } $this->actingAs($user); $s1 = new Segment(); $s1->id = 1; $s1->name = 'test_list_segment_logic_execution_1'; $s2 = new Segment(); $s2->id = 2; $s2->name = 'test_list_segment_logic_execution_2'; $segments = new Collection([$s1, $s2]); // Mock ListsSegments $listsSegments = Mockery::mock(ListsSegments::class); $listsSegments->shouldReceive('deserializeFilters') ->once() ->with(null) ->andReturn([]); $listsSegments->shouldReceive('execute') ->once() ->with([]) ->andReturn($segments); $logic = new ListSegmentLogic($listsSegments); $request = Request::create('/api/segments', 'GET'); $request->headers->set('captcha-token', 'fake-token'); // A C T $response = $logic->execute($request); // A S S E R T $this->assertEquals(200, $response->getStatusCode()); $data = $response->getData(true); $this->assertEquals('Retrieved Segment Successful', $data['title']); $this->assertCount(2, $data['payload']['data']); } protected function tearDown(): void { Mockery::close(); parent::tearDown(); } }