function testRegisterFromFile()
    {
        $rnd = mt_rand();
        $contents = <<<EOD
<?php
/**
 * @filter foo_{$rnd}
 * @aliases foo1_{$rnd}, foo2_{$rnd} 
 */
class Foo{$rnd}Filter extends lmbMacroFilter{}

/**
 * @filter bar_{$rnd}
 */
class Bar{$rnd}Filter extends lmbMacroFilter{}
EOD;
        file_put_contents($file = LIMB_VAR_DIR . '/filters/' . $rnd . '.filter.php', $contents);
        $filter_info1 = new lmbMacroFilterInfo("foo_{$rnd}", "Foo{$rnd}Filter");
        $filter_info1->setAliases(array("foo1_{$rnd}", "foo2_{$rnd}"));
        $filter_info1->setFile($file);
        $filter_info2 = new lmbMacroFilterInfo("bar_{$rnd}", "Bar{$rnd}Filter");
        $filter_info2->setFile($file);
        $dictionary = new lmbMacroFilterDictionary();
        $dictionary->registerFromFile($file);
        $this->assertEqual($dictionary->findFilterInfo("foo_{$rnd}"), $filter_info1);
        $this->assertEqual($dictionary->findFilterInfo("foo1_{$rnd}"), $filter_info1);
        $this->assertEqual($dictionary->findFilterInfo("bar_{$rnd}"), $filter_info2);
    }