'Multiple file types are parsed successfully.'

def testParseFileObjs(self):

    filt = filters.StatFilter()
    ok = self._GenStat(path='/etc/shadow', st_uid=0, st_gid=0, st_mode=33184)
    link = self._GenStat(path='/etc/shadow', st_uid=0, st_gid=0, st_mode=41376)
    user = self._GenStat(path='/etc/shadow', st_uid=1000, st_gid=1000, st_mode=33184)
    writable = self._GenStat(path='/etc/shadow', st_uid=0, st_gid=0, st_mode=33206)
    cfg = {'path': '/etc/shadow', 'st_uid': 0, 'st_gid': 0, 'st_mode': 33184}
    invalid = rdf_protodict.AttributedDict(**cfg)
    objs = [ok, link, user, writable, invalid]
    results = filt.Parse(objs, 'uid:>=0    gid:>=0')
    self.assertItemsEqual([ok, link, user, writable], results)
    results = filt.Parse(objs, 'uid:=0    mode:0440    mask:0440')
    self.assertItemsEqual([ok, link, writable], results)
    results = filt.Parse(objs, 'uid:=0    mode:0440    mask:0444')
    self.assertItemsEqual([ok, link], results)
    results = list(filt.Parse(objs, 'uid:=0    mode:0440    mask:0444    file_type:regular'))
    self.assertItemsEqual([ok], results)
