/**
  * tests if the modelconfiguration gets created using the static call
  */
 public function testModelCreation()
 {
     $employeeCObj = HumanResources_Model_Employee::getConfiguration();
     $fields = $employeeCObj->getFields();
     // test modlog field
     $this->assertArrayHasKey('deleted_time', $fields);
     // test supervisor_id field
     $this->assertArrayHasKey('supervisor_id', $fields);
     $this->assertArrayHasKey('notes', $fields);
     $this->assertArrayHasKey('tags', $fields);
     $contractCObj = HumanResources_Model_Contract::getConfiguration();
     $fields = $contractCObj->getFields();
     // test supervisor_id field not existing in contact configuration object
     $this->assertArrayNotHasKey('supervisor_id', $fields);
     $this->assertArrayHasKey('employee_id', $fields);
     // test employee config again, so nothing gets overwritten
     $employeeCObj = HumanResources_Model_Employee::getConfiguration();
     $fields = $employeeCObj->getFields();
     $this->assertArrayHasKey('deleted_time', $fields);
     $this->assertArrayHasKey('supervisor_id', $fields);
     $this->assertArrayHasKey('id', $fields);
     $account = Tinebase_Core::getUser();
     $employee = new HumanResources_Model_Employee(array('account_id' => $account->getId(), 'n_family' => $account->accountLastName, 'n_given' => $account->accountFirstName));
     // test record fields
     $modelConfig = $employee::getConfiguration();
     $resolveFields = $modelConfig->recordFields;
     $this->assertArrayHasKey('account_id', $resolveFields);
     $this->assertArrayHasKey('division_id', $resolveFields);
     $this->assertArrayHasKey('created_by', $resolveFields);
     $this->assertArrayHasKey('last_modified_by', $resolveFields);
     $this->assertArrayHasKey('deleted_by', $resolveFields);
     $contact = new Addressbook_Model_Contact(array('n_family' => 'Spencer', 'n_given' => 'Bud'));
     $co = $contact::getConfiguration();
     $this->assertNull($co);
     // test the created filter model
     $filterModel = $employee::getConfiguration()->filterModel;
     $this->assertArrayHasKey('id', $filterModel);
     $this->assertArrayHasKey('query', $filterModel);
     $this->assertArrayHasKey('account_id', $filterModel);
     $this->assertArrayHasKey('supervisor_id', $filterModel);
     $this->assertArrayHasKey('options', $filterModel['supervisor_id']);
     $this->assertArrayHasKey('controller', $filterModel['supervisor_id']['options']);
     $this->assertArrayHasKey('filtergroup', $filterModel['supervisor_id']['options']);
     $this->assertArrayHasKey('division_id', $filterModel);
     $this->assertArrayHasKey('created_by', $filterModel);
     $this->assertArrayHasKey('last_modified_by', $filterModel);
     $this->assertArrayHasKey('deleted_by', $filterModel);
     $this->assertArrayNotHasKey('employee_id', $filterModel);
     $this->assertEquals('Tinebase_Model_Filter_Query', $filterModel['query']['filter']);
 }