client_settings = ClientSettings::defaults(); $this->company_settings = CompanySettings::defaults(); } public function buildClientSettings() { foreach($this->company_settings as $key => $value) { if(!isset($this->client_settings->{$key}) && property_exists($this->company_settings, $key)) $this->client_settings->{$key} = $this->company_settings->{$key}; } return $this->client_settings; } public function testProperties() { $build_client_settings = $this->buildClientSettings(); $this->assertEquals($build_client_settings->timezone_id, 1); $this->assertEquals($build_client_settings->language_id, 1); $this->assertEquals($build_client_settings->payment_terms, 1); } public function testDirectClientSettingsBuild() { $settings = ClientSettings::buildClientSettings(CompanySettings::defaults(), ClientSettings::defaults()); $this->assertEquals($settings->timezone_id, 1); $this->assertEquals($settings->language_id, 1); $this->assertEquals($settings->payment_terms, 1); $this->assertFalse($settings->send_portal_password); } }