+
+ // Nickname
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE {?} AND pn.typeid = {?}', 'Xelnor', $id_Nickname),
+ new UFC_Name(Profile::NICKNAME, 'Xelnor', UFC_Name::EXACT), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE \'Xel%\' AND pn.typeid = {?}', $id_Nickname),
+ new UFC_Name(Profile::NICKNAME, 'Xel', UFC_Name::PREFIX), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE \'%nor\' AND pn.typeid = {?}', $id_Nickname),
+ new UFC_Name(Profile::NICKNAME, 'nor', UFC_Name::SUFFIX), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE \'%lno%\' AND pn.typeid = {?}', $id_Nickname),
+ new UFC_Name(Profile::NICKNAME, 'lno', UFC_Name::CONTAINS), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE \'%zzzzzz%\' AND pn.typeid = {?}', $id_Nickname),
+ new UFC_Name(Profile::NICKNAME, 'zzzzzz', UFC_Name::CONTAINS), 0),
+
+ // Lastname + particle
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE CONCAT(pn.particle, \' \', pn.name) LIKE {?} AND pn.typeid = {?}', 'DE SINGLY', $id_Lastname),
+ new UFC_Name(Profile::LASTNAME, 'DE SINGLY', UFC_Name::PARTICLE | UFC_Name::EXACT), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE CONCAT(pn.particle, \' \', pn.name) LIKE \'DE SI%\' AND pn.typeid = {?}', $id_Lastname),
+ new UFC_Name(Profile::LASTNAME, 'DE SI', UFC_Name::PARTICLE | UFC_Name::PREFIX), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE CONCAT(pn.particle, \' \', pn.name) LIKE \'%GLY\' AND pn.typeid = {?}', $id_Lastname),
+ new UFC_Name(Profile::LASTNAME, 'GLY', UFC_NAME::PARTICLE | UFC_Name::SUFFIX), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE CONCAT(pn.particle, \' \', pn.name) LIKE \'%E SIN%\' AND pn.typeid = {?}', $id_Lastname),
+ new UFC_Name(Profile::LASTNAME, 'E SIN', UFC_Name::PARTICLE | UFC_Name::CONTAINS), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE CONCAT(pn.particle, \' \', pn.name) LIKE \'%ZZZZZZ%\' AND pn.typeid = {?}', $id_Lastname),
+ new UFC_Name(Profile::LASTNAME, 'ZZZZZZ', UFC_Name::PARTICLE | UFC_Name::CONTAINS), 0),
+
+ // Lastname_ordinary
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE {?} AND pn.typeid IN {?}',
+ 'ALBIZZATI', array($id_Lastname, $id_Lastname_Marital, $id_Lastname_Ordinary)),
+ new UFC_Name(Profile::LASTNAME, 'ALBIZZATI', UFC_Name::VARIANTS | UFC_Name::EXACT), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE {?} AND pn.typeid IN {?}',
+ 'ALBIZ%', array($id_Lastname, $id_Lastname_Marital, $id_Lastname_Ordinary)),
+ new UFC_Name(Profile::LASTNAME, 'ALBIZ', UFC_Name::VARIANTS | UFC_Name::PREFIX), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE {?} AND pn.typeid IN {?}',
+ '%ZATI', array($id_Lastname, $id_Lastname_Marital, $id_Lastname_Ordinary)),
+ new UFC_Name(Profile::LASTNAME, 'ZATI', UFC_NAME::VARIANTS | UFC_Name::SUFFIX), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE {?} AND pn.typeid IN {?}',
+ '%BIZZ%', array($id_Lastname, $id_Lastname_Marital, $id_Lastname_Ordinary)),
+ new UFC_Name(Profile::LASTNAME, 'BIZZ', UFC_Name::VARIANTS | UFC_Name::CONTAINS), -1),
+ array(self::buildProfileQuery('LEFT JOIN profile_name AS pn ON (p.pid = pn.pid)
+ WHERE pn.name LIKE {?} AND pn.typeid IN {?}',
+ '%ZZZZZZ%', array($id_Lastname, $id_Lastname_Marital, $id_Lastname_Ordinary)),
+ new UFC_Name(Profile::LASTNAME, 'ZZZZZZ', UFC_Name::VARIANTS | UFC_Name::CONTAINS), 0),
+ );
+
+ /* UFC_NameTokens
+ */
+ $tests['nametoken'] = array(
+ // !soundex, !exact
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'xelnor%\''),
+ new UFC_NameTokens('xelnor'), 1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'xe%\''),
+ new UFC_NameTokens('xe'), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'xe%\' OR sn.token LIKE \'barr%\''),
+ new UFC_NameTokens(array('xe', 'barr')), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'zzzzzzzz%\''),
+ new UFC_NameTokens('zzzzzzzz'), 0),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token LIKE \'barr%\' AND FIND_IN_SET(\'public\', sn.flags)'),
+ new UFC_NameTokens('barr', UFC_NameTokens::FLAG_PUBLIC), -1),
+
+ // !soundex, exact
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token = \'xelnor\''),
+ new UFC_NameTokens('xelnor', array(), false, true), 1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token IN (\'xelnor\', \'barrois\')'),
+ new UFC_NameTokens(array('xelnor', 'barrois'), array(), false, true), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token = \'zzzzzzzz\''),
+ new UFC_NameTokens('zzzzzzzz', array(), false, true), 0),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token IN (\'zzzzzzzz\', \'yyyyyyyy\')'),
+ new UFC_NameTokens(array('zzzzzzzz', 'yyyyyyyy'), array(), false, true), 0),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.token = \'barrois\' AND FIND_IN_SET(\'public\', sn.flags)'),
+ new UFC_NameTokens('barrois', UFC_NameTokens::FLAG_PUBLIC, false, true), -1),
+
+ // soundex, !exact
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.soundex = \'XLNO\''),
+ new UFC_NameTokens('XLNO', array(), true), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.soundex IN (\'XLNO\', \'BROS\')'),
+ new UFC_NameTokens(array('XLNO', 'BROS'), array(), true), -1),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.soundex = \'ZZZZZZ\''),
+ new UFC_NameTokens('ZZZZZZ', array(), true), 0),
+ array(self::buildProfileQuery('LEFT JOIN search_name AS sn ON (p.pid = sn.pid)
+ WHERE sn.soundex = \'BROS\' AND FIND_IN_SET(\'public\', sn.flags)'),
+ new UFC_NameTokens('BROS', UFC_NameTokens::FLAG_PUBLIC, true), -1),
+ );
+
+ /* UFC_Nationality
+ */
+ $tests['nationality'] = array(
+ array(self::buildProfileQuery('WHERE p.nationality1 IN {?} OR p.nationality2 IN {?} OR p.nationality3 IN {?}', array('BR'), array('BR'), array('BR')),
+ new UFC_Nationality('BR'), -1),
+ array(self::buildProfileQuery('WHERE p.nationality1 IN {?} OR p.nationality2 IN {?} OR p.nationality3 IN {?}', array('BR', 'US'), array('BR', 'US'), array('BR', 'US')),
+ new UFC_Nationality('BR', 'US'), -1),
+ array(self::buildProfileQuery('WHERE p.nationality1 IN {?} OR p.nationality2 IN {?} OR p.nationality3 IN {?}', array('__'), array('__'), array('__')),
+ new UFC_Nationality('__'), 0),
+ );
+
+ /* UFC_Dead
+ */
+ $tests['dead'] = array(
+ array(self::buildProfileQuery('WHERE p.deathdate IS NOT NULL'),
+ new UFC_Dead(), -1),
+ array(self::buildProfileQuery('WHERE p.deathdate IS NOT NULL AND p.deathdate > {?}', '2008-01-01'),
+ new UFC_Dead('>', '2008-01-01'), -1),
+ array(self::buildProfileQuery('WHERE p.deathdate IS NOT NULL AND p.deathdate < {?}', '1600-01-01'),
+ new UFC_Dead('<', '1600-01-01'), 0),
+ array(self::buildProfileQuery('WHERE p.deathdate IS NOT NULL AND p.deathdate > {?}', date('Y-m-d')),
+ new UFC_Dead('>', 'now'), 0),
+ );
+
+ /* UFC_Registered
+ */
+ $tests['register'] = array(
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state = \'active\''),
+ new UFC_Registered(true), -1),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state != \'pending\''),
+ new UFC_Registered(), -1),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state = \'active\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date > {?}', '2008-01-01'),
+ new UFC_Registered(true, '>', '2008-01-01'), -1),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state != \'pending\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date > {?}', '2008-01-01'),
+ new UFC_Registered(false, '>', '2008-01-01'), -1),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state = \'active\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date < {?}', '1700-01-01'),
+ new UFC_Registered(true, '<', '1700-01-01'), 0),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state != \'pending\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date < {?}', '1700-01-01'),
+ new UFC_Registered(false, '<', '1700-01-01'), 0),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state = \'active\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date > {?}', date('Y-m-d')),
+ new UFC_Registered(true, '>', 'now'), 0),
+ array(self::buildAccountQuery('WHERE a.uid IS NOT NULL AND a.state != \'pending\' AND a.registration_date != \'0000-00-00 00:00:00\' AND a.registration_date > {?}', date('Y-m-d')),
+ new UFC_Registered(false, '>', 'now'), 0),