class TestContactsManager(unittest.TestCase):
    """Test for L{vmc.common.persistent.ContactsManager} functionality"""

    def setUpClass(self):
        self.mana = ContactsManager(TMPFILE)
    
    def tearDownClass(self):
        self.mana.close()
        shutil.rmtree(TMPFILE)
    
    def test_add_contact(self):
        contact = Contact('Peter', '+3453453452')
        c1 = self.mana.add_contact(contact)
        self.assertEqual(contact, self.mana.get_contact_by_id(c1.get_index()))
        contact2 = Contact('John', '+45364563345')
        c2  = self.mana.add_contact(contact2)
        self.assertEqual(contact2,
                         self.mana.get_contact_by_id(c2.get_index()))
    
    def test_find_contact(self):
        contact = Contact('Pepito', '+3453423423423')
        c1 = self.mana.add_contact(contact)
        resp = list(self.mana.find_contacts('Pe'))
        self.failUnlessIn(c1, resp)
    
    def test_delete_contact(self):
        contact = Contact(pack('Paul'), '+45364563345')
        c1 = self.mana.add_contact(contact)
        self.mana.delete_contact_by_id(c1.get_index())
        self.assertRaises(KeyError, self.mana.get_contact_by_id,
                                    c1.get_index())
class TestContactsManager(unittest.TestCase):
    """Test for L{vmc.common.persistent.ContactsManager} functionality"""
    def setUpClass(self):
        self.mana = ContactsManager(TMPFILE)

    def tearDownClass(self):
        self.mana.close()
        shutil.rmtree(TMPFILE)

    def test_add_contact(self):
        contact = Contact('Peter', '+3453453452')
        c1 = self.mana.add_contact(contact)
        self.assertEqual(contact, self.mana.get_contact_by_id(c1.get_index()))
        contact2 = Contact('John', '+45364563345')
        c2 = self.mana.add_contact(contact2)
        self.assertEqual(contact2, self.mana.get_contact_by_id(c2.get_index()))

    def test_find_contact(self):
        contact = Contact('Pepito', '+3453423423423')
        c1 = self.mana.add_contact(contact)
        resp = list(self.mana.find_contacts('Pe'))
        self.failUnlessIn(c1, resp)

    def test_delete_contact(self):
        contact = Contact(pack('Paul'), '+45364563345')
        c1 = self.mana.add_contact(contact)
        self.mana.delete_contact_by_id(c1.get_index())
        self.assertRaises(KeyError, self.mana.get_contact_by_id,
                          c1.get_index())