public function testSaveAndRetrieveAndRemoveDefaultGroups()
 {
     //unset and reconnect Db to resolve mysqli fetch exeception
     global $db;
     unset($db->database);
     $db->checkConnection();
     $securityGroup = new SecurityGroup();
     //create a security group first
     $securityGroup->name = 'test';
     $securityGroup->save();
     //execute saveDefaultGroup method
     $securityGroup->saveDefaultGroup($securityGroup->id, 'test_module');
     //execute retrieveDefaultGroups method
     $result = $securityGroup->retrieveDefaultGroups();
     //verify that default group is created
     $this->assertTrue(is_array($result));
     $this->assertGreaterThan(0, count($result));
     //execute removeDefaultGroup method for each default group
     foreach ($result as $key => $value) {
         $securityGroup->removeDefaultGroup($key);
     }
     //retrieve back and verify that default securith groups are deleted
     $result = $securityGroup->retrieveDefaultGroups();
     $this->assertEquals(0, count($result));
     //delete the security group as well for cleanup
     $securityGroup->mark_deleted($securityGroup->id);
 }