/** * Returns data about user * * @param $id * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function view($id, Request $request) { // only profile owner can see data if ($request->user()->id !== (int) $id) { abort(403); } return response()->json($this->userService->getUserProfileData($id)); }
/** * @dataProvider userDataProvider */ public function testGetUserProfileData($id, $userData, $expectedData) { $userStorageMock = $this->getMock('\\App\\Contracts\\Storages\\UserStorageContract'); $userStorageMock->expects(static::any())->method('getUserData')->with($id)->willReturn($userData); $itemStorageMock = $this->getMock('\\App\\Contracts\\Storages\\ItemStorageContract', ['getCategoriesItems']); $userService = new UserService($userStorageMock, $itemStorageMock); $data = $userService->getUserProfileData($id); static::assertEquals($expectedData, $data); }