/** * Test UserServiceContract::createUser(array $user, array $roles). * * @return void */ public function testCreateUserWithRoles() { $mockRoles = [UserRole::ADMIN, UserRole::MEMBER]; $mockUser = $this->getMockAdmin(); $mockUserData = $mockUser->toArray(); unset($mockUserData['roles']); $mockRepository = $this->getMockUserRepository(); $mockRepository->shouldReceive('create')->once()->with($mockUserData)->andReturn($mockUser); $mockRepository->shouldReceive('syncRoles')->once()->with($mockUser, $mockRoles)->andReturn($mockUser); $service = new UserService($mockRepository); $user = $service->createUser($mockUserData, $mockRoles); $this->assertEquals($user, $mockUser, 'createUser(array $user, array $roles) returned an invalid result'); }