/**
  * Test if member and client counts are properly refreshed as users are added and removed from the list
  */
 public function testMembersAndClientsCount()
 {
     $afiveone_id = $this->accounts->insert(['subdomain' => 'afiveone', 'url' => 'https://afiveone.activecollab.com', 'license_key' => '123'])[0];
     $this->assertEquals(1, $this->accounts->count());
     $this->assertEquals(1, $afiveone_id);
     list($owner_id, $member_id, $subcontractor_id, $client1_id, $client2_id) = $this->users->insert(['acid' => 1001, 'email' => '*****@*****.**', 'role' => 'Owner'], ['acid' => 1002, 'email' => '*****@*****.**', 'role' => 'Member'], ['acid' => 1003, 'email' => '*****@*****.**', 'role' => 'Subcontractor'], ['acid' => 1004, 'email' => '*****@*****.**', 'role' => 'Client'], ['acid' => 1005, 'email' => '*****@*****.**', 'role' => 'Client']);
     $this->assertEquals(1, $owner_id);
     $this->assertEquals(2, $member_id);
     $this->assertEquals(3, $subcontractor_id);
     $this->assertEquals(4, $client1_id);
     $this->assertEquals(5, $client2_id);
     $afiveone_users = $this->accounts->usersBelongingTo(1);
     $this->assertInstanceOf('ActiveCollab\\Resistance\\Storage\\Relationship\\BelongingTo', $afiveone_users);
     $this->assertEquals(0, $this->accounts->getFieldValue(1, 'members_count'));
     $this->assertEquals(0, $this->accounts->getFieldValue(1, 'clients_count'));
     // ---------------------------------------------------
     //  Add members
     // ---------------------------------------------------
     $afiveone_users->add($owner_id, $member_id, $subcontractor_id);
     $this->assertEquals(3, $this->accounts->getFieldValue(1, 'members_count'));
     $this->assertEquals(0, $this->accounts->getFieldValue(1, 'clients_count'));
     // ---------------------------------------------------
     //  Add clients
     // ---------------------------------------------------
     $afiveone_users->add($client1_id, $client2_id);
     $this->assertEquals(3, $this->accounts->getFieldValue(1, 'members_count'));
     $this->assertEquals(2, $this->accounts->getFieldValue(1, 'clients_count'));
     // ---------------------------------------------------
     //  Remove one member and one client
     // ---------------------------------------------------
     $afiveone_users->remove($subcontractor_id);
     $afiveone_users->remove($client1_id);
     $this->assertEquals(2, $this->accounts->getFieldValue(1, 'members_count'));
     $this->assertEquals(1, $this->accounts->getFieldValue(1, 'clients_count'));
     // ---------------------------------------------------
     //  Clear
     // ---------------------------------------------------
     $afiveone_users->clear();
     $this->assertEquals(0, $this->accounts->getFieldValue(1, 'members_count'));
     $this->assertEquals(0, $this->accounts->getFieldValue(1, 'clients_count'));
 }