PHPUnit_TestCase($name);
}
// called before the test functions will be executed
// this function is defined in PHPUnit_TestCase and overwritten
// here
function setUp()
{
// echo "setUp
";
require_once dirname(__FILE__)."/../src/pfcglobalconfig.class.php";
$params = array();
$params["title"] = "testcase -> pfccontainer_".$this->type;
$params["serverid"] = md5(__FILE__ . time());
$params["container_type"] = $this->type;
$this->c = pfcGlobalConfig::Instance($params);
$this->ct = pfcContainer::Instance();
}
// called after the test functions are executed
// this function is defined in PHPUnit_TestCase and overwritten
// here
function tearDown()
{
// echo "tearDown
";
$this->ct->clear();
$this->c->destroyCache();
}
function test_createNick_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
// create on the channel
$this->ct->createNick($chan, $nick, $nickid);
$isonline = ($this->ct->isNickOnline($chan, $nickid) >= 0);
$this->assertTrue($isonline, "nickname should be online on the channel");
// create on the server
$chan = NULL;
$this->ct->createNick($chan, $nick, $nickid);
$isonline = ($this->ct->isNickOnline($chan, $nickid) >= 0);
$this->assertTrue($isonline, "nickname should be online on the server");
}
function test_removeNick_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
// on the channel
$this->ct->createNick($chan, $nick, $nickid);
$this->ct->removeNick($chan, $nickid);
$isonline = ($this->ct->isNickOnline($chan, $nickid) >= 0);
$this->assertFalse($isonline, "nickname shouldn't be online on the channel");
$isonline2 = ($this->ct->isNickOnline(NULL, $nickid) >= 0);
$this->assertTrue($isonline2, "nickname should be online on the server");
$this->ct->removeNick(NULL, $nickid);
$isonline = ($this->ct->isNickOnline(NULL, $nickid) >= 0);
$this->assertFalse($isonline, "nickname shouldn't be online on the server");
}
function test_getNickId_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
$this->ct->createNick(NULL, $nick, $nickid);
$ret = $this->ct->getNickId($nick);
$this->assertEquals($nickid, $ret, "created nickname doesn't have a correct nickid");
}
function test_getNickname_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
// on the channel
$this->ct->createNick($chan, $nick, $nickid);
$ret = $this->ct->getNickname($nickid);
$this->assertEquals($nick, $ret, "nickname value is wrong");
}
function test_getOnlineNick_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
// on the channel
$this->ct->createNick($chan, $nick, $nickid);
$time = time();
$ret = $this->ct->getOnlineNick($chan);
$this->assertEquals(1, count($ret["nickid"]), "1 nickname should be online");
$this->assertEquals(1, count($ret["nick"]), "1 nickname should be online");
$this->assertEquals(1, count($ret["timestamp"]), "1 nickname should be online");
$this->assertEquals($time, $ret["timestamp"][0], "nickname timestamp is wrong");
$this->assertEquals($nick, $ret["nick"][0], "nickname value is wrong");
$this->assertEquals($nickid, $ret["nickid"][0], "nickname id is wrong");
}
function test_removeObsoleteNick_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
$this->ct->createNick($chan, $nick, $nickid);
sleep(2);
$ret = $this->ct->removeObsoleteNick(1000);
$this->assertEquals(1, count($ret["nickid"]), "1 nickname should be obsolete");
$this->assertEquals(2, count($ret["channels"][0]), "nickname should be disconnected from two channels");
$isonline = ($this->ct->isNickOnline($chan, $nickid) >= 0);
$this->assertFalse($isonline, "nickname shouldn't be online anymore");
}
function test_updateNick_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
$this->ct->createNick($chan, $nick, $nickid);
sleep(2);
$ret = $this->ct->updateNick($nickid);
$this->assertTrue($ret, "nickname should be correctly updated");
$ret = $this->ct->removeObsoleteNick(1000);
$this->assertFalse(in_array($nick, $ret['nick']), "nickname shouldn't be removed because it has been updated");
$isonline = ($this->ct->isNickOnline($chan, $nickid) >= 0);
$this->assertTrue($isonline, "nickname should be online");
}
function test_changeNick_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick1 = $prefix . '_' . $this->nick;
$nick2 = $prefix . '_' . $this->nick.'2';
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
// create a nick on a channel and change it
$this->ct->createNick($chan, $nick1, $nickid);
$ret = $this->ct->changeNick($nick2, $nick1);
$this->assertTrue($ret, "nickname change function should returns true (success)");
$isonline1 = ($this->ct->isNickOnline($chan, $this->ct->getNickId($nick1)) >= 0);
$isonline2 = ($this->ct->isNickOnline($chan, $this->ct->getNickId($nick2)) >= 0);
$this->assertFalse($isonline1, "nickname shouldn't be online");
$this->assertTrue($isonline2, "nickname shouldn't be online");
}
function test_getLastId_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
$cmd = "send";
$msg = "my test message";
// on the channel
$this->ct->createNick($chan, $nick, $nickid);
for($i = 0; $i < 10; $i++)
{
$msgid = $this->ct->write($chan, $nick, $cmd ,$msg . $i);
$this->assertEquals($msgid, $i+1,"generated msg_id is not correct");
}
$msgid = $this->ct->getLastId($chan);
$this->assertEquals(10, $msgid, "last msgid is not correct");
}
function test_write_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
$cmd = "send";
$msg = "my test message";
// create message on the channel
$this->ct->createNick($chan, $nick, $nickid);
$msgid = $this->ct->write($chan, $nick, $cmd, $msg);
$this->assertEquals(1, $msgid,"generated msg_id is not correct");
$res = $this->ct->read($chan, 0);
$this->assertEquals(1, count($res["data"]), "1 messages should be read");
$this->assertEquals($msg, $res["data"][1]["param"] ,"messages data is not the same as the sent one");
$this->assertEquals(1, $res["new_from_id"],"new_from_id is not correct");
}
function test_read_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$nick = $prefix . '_' . $this->nick;
$nickid = $prefix . '_' . $this->nickid;
$chan = $prefix . '_' . $this->chan;
$cmd = "send";
$msg = "my test message";
// create on the channel
$this->ct->createNick($chan, $nick, $nickid);
for($i = 0; $i < 10; $i++)
{
$msgid = $this->ct->write($chan, $nick, $cmd ,$msg . $i);
$this->assertEquals($msgid, $i+1, "generated msg_id is not correct");
}
$res = $this->ct->read($chan, 0);
$this->assertEquals(10, count($res["data"]), "10 messages should be read");
$this->assertEquals($msg."0", $res["data"][1]["param"] ,"messages data is not the same as the sent one");
$this->assertEquals($msg."8", $res["data"][9]["param"] ,"messages data is not the same as the sent one");
$this->assertEquals($res["new_from_id"], 10 ,"new_from_id is not correct");
$res = $this->ct->read($chan, 5);
$this->assertEquals(5, count($res["data"]), "5 messages should be read");
$this->assertEquals($msg."5", $res["data"][6]["param"] ,"messages data is not the same as the sent one");
$this->assertEquals($msg."9", $res["data"][10]["param"] ,"messages data is not the same as the sent one");
$this->assertEquals($res["new_from_id"], 10 ,"new_from_id is not correct");
}
function test_encodedecode_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$string = "il était une fois C;h:!?§+ toto=}at是";
$prefix = __FUNCTION__;
$group = $prefix."_nickid-to-channelid";
$subgroup = $prefix."_nickid1";
$leaf = $prefix."_".$ct->encode($string);
$leafvalue = $string;
$ct->setMeta($group, $subgroup, $leaf, $leafvalue);
$ret = $ct->getMeta($group, $subgroup);
$this->assertEquals($ret['value'][0], $leaf, "the leaf name is wrong");
$ret = $ct->getMeta($group, $subgroup, $leaf, true);
$this->assertEquals($ret['value'][0], $leafvalue, "the leaf value is wrong");
}
function test_getMeta_Generic_1()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$group = $prefix."_nickid-to-channelid";
$subgroup = $prefix."_nickid1";
$leaf = $prefix."_channelid1";
$ct->setMeta($group, $subgroup, $leaf);
$time = time();
$ret = $ct->getMeta($group, $subgroup, $leaf);
$this->assertEquals(count($ret["timestamp"]), 1, "number of leaf is wrong");
$this->assertEquals($ret["timestamp"][0], $time, "the leaf timestamp is wrong");
$this->assertEquals($ret["value"][0], null, "the leaf value is wrong");
$ret = $ct->getMeta($group, $subgroup);
$this->assertEquals(count($ret["timestamp"]), 1, "number of leaf is wrong");
$this->assertEquals($ret["timestamp"][0], $time, "the leaf timestamp is wrong");
$this->assertEquals($ret["value"][0], $leaf, "the leaf name is wrong");
$leafvalue = $prefix."_leafvalue";
$ct->setMeta($group, $subgroup, $leaf, $leafvalue);
$time = time();
$ret = $ct->getMeta($group, $subgroup, $leaf, true);
$this->assertEquals(count($ret["timestamp"]), 1, "number of leaf is wrong");
$this->assertEquals($ret["timestamp"][0], $time, "the leaf timestamp is wrong");
$this->assertEquals($ret["value"][0], $leafvalue, "the leaf value is wrong");
}
function test_getMeta_Generic_2()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$group = $prefix."_nickid-to-channelid";
$subgroup = $prefix."_nickid1";
$leaf1 = $prefix."_channelid1";
$leaf2 = $prefix."_channelid2";
$ct->setMeta($group, $subgroup, $leaf1);
$ct->setMeta($group, $subgroup, $leaf2);
$time = time();
$ret = $ct->getMeta($group, $subgroup);
sort($ret["value"]);
$this->assertEquals(count($ret["timestamp"]), 2, "number of leaf is wrong");
$this->assertEquals($ret["timestamp"][0], $time, "the leaf timestamp is wrong");
$this->assertEquals($ret["timestamp"][1], $time, "the leaf timestamp is wrong");
$this->assertEquals($ret["value"][0], $leaf1, "the leaf name is wrong");
$this->assertEquals($ret["value"][1], $leaf2, "the leaf name is wrong");
}
function test_getMeta_Generic_3()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$group = $prefix."_nickid-to-channelid";
$subgroup1 = $prefix."_nickid1";
$subgroup2 = $prefix."_nickid2";
$leaf1 = $prefix."_channelid1";
$leaf2 = $prefix."_channelid2";
$ct->setMeta($group, $subgroup1, $leaf1);
$ct->setMeta($group, $subgroup1, $leaf2);
$ct->setMeta($group, $subgroup2, $leaf1);
$ct->setMeta($group, $subgroup2, $leaf2);
$time = time();
$ret = $ct->getMeta($group);
sort($ret["value"]);
$this->assertEquals(2, count($ret["timestamp"]), "number of subgroup is wrong");
$this->assertEquals($time, $ret["timestamp"][0], "the subgroup timestamp is wrong");
$this->assertEquals($time, $ret["timestamp"][1], "the subgroup timestamp is wrong");
$this->assertEquals($subgroup1, $ret["value"][0], "the subgroup name is wrong");
$this->assertEquals($subgroup2, $ret["value"][1], "the subgroup name is wrong");
}
function test_rmMeta_Generic()
{
$c =& $this->c;
$ct =& $this->ct;
$prefix = __FUNCTION__;
$group = $prefix."_nickid-to-channelid";
$subgroup1 = $prefix."_nickid1";
$subgroup2 = $prefix."_nickid2";
$leaf1 = $prefix."_channelid1";
$leaf2 = $prefix."_channelid2";
$ct->setMeta($group, $subgroup1, $leaf1);
$ct->setMeta($group, $subgroup1, $leaf2);
$ret = $ct->getMeta($group,$subgroup1);
$ret = $ct->getMeta($group,$subgroup1,$leaf1);
$ct->rmMeta($group, $subgroup1, $leaf1);
$ret = $ct->getMeta($group,$subgroup1);
$this->assertEquals(1, count($ret["value"]), "number of leaf is wrong");
$ret = $ct->getMeta($group,$subgroup1,$leaf1);
$this->assertEquals(0, count($ret["value"]), "leaf should not exists");
}
}
?>