/**
  * Updates the User Profile with any changed data (via setters).
  * @param UserProfileDto $userProfileDto
  * @return \iDimensionz\SendGridWebApiV3\Api\Users\UserProfileDto
  */
 public function updateProfile(UserProfileDto $userProfileDto)
 {
     $changedFieldData = $userProfileDto->getUpdatedFields();
     $profileContent = $this->patch('profile', $changedFieldData);
     $userProfileDto = new UserProfileDto($profileContent);
     return $userProfileDto;
 }
 public function testUpdateProfile()
 {
     $this->validUserProfileDto->setFirstName('Shesa');
     $this->validUserProfileDto->setLastName('Nuthertest');
     $this->hasSendGridPatchRequest('profile', $this->validUserProfileDto->toArray(), $this->validUserProfileDto->getUpdatedFields());
     $actualUserProfileDto = $this->userApi->updateProfile($this->validUserProfileDto);
     // Unset the updated fields since the result profile won't have modified fields
     $this->validUserProfileDto->setUpdatedFields([]);
     $this->assertEquals($this->validUserProfileDto, $actualUserProfileDto);
 }
 private function assertUserProfile()
 {
     $this->assertInstanceOf('\\iDimensionz\\SendGridWebApiV3\\Api\\Users\\UserProfileDto', $this->userProfile);
     $this->assertEquals($this->expectedData, $this->userProfile->toArray());
     $this->assertEquals($this->expectedData['address'], $this->userProfile->getAddress());
     $this->assertEquals($this->expectedData['city'], $this->userProfile->getCity());
     $this->assertEquals($this->expectedData['company'], $this->userProfile->getCompany());
     $this->assertEquals($this->expectedData['country'], $this->userProfile->getCountry());
     $this->assertEquals($this->expectedData['first_name'], $this->userProfile->getFirstName());
     $this->assertEquals($this->expectedData['last_name'], $this->userProfile->getLastName());
     $this->assertEquals($this->expectedData['phone'], $this->userProfile->getPhone());
     $this->assertEquals($this->expectedData['state'], $this->userProfile->getState());
     $this->assertEquals($this->expectedData['website'], $this->userProfile->getWebsite());
     $this->assertEquals($this->expectedData['zip'], $this->userProfile->getZip());
 }