class TestEmailMiner(unittest.TestCase):
    def setUp(self):
        self.miner = EmailMiner()

    def test_get_email_addresses_with_usernames(self):
        email_addresses = self.miner.get_email_addresses_with_usernames(['jbond'])
        expected_email_addresses = [
            '*****@*****.**', '*****@*****.**', '*****@*****.**',
            '*****@*****.**', '*****@*****.**',
            '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**',
            '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**',
            '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**',
            '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**',
            '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**',
            '*****@*****.**'
        ]
        self.assertListEqual(sorted(email_addresses), sorted(expected_email_addresses))

    def test_get_email_addresses_with_usernames_with_long_username(self):
        email_addresses = self.miner.get_email_addresses_with_usernames([
            'thisusernameiswaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
            'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
            'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatoolong'
        ])
        self.assertTrue(len(email_addresses) == 0)

    def test_is_valid_email_domain(self):
        self.assertTrue(self.miner.is_valid_email_domain('gmail.com'))
        self.assertFalse(self.miner.is_valid_email_domain('areallyfakedomainname12312312.com'))
 def setUp(self):
     self.miner = EmailMiner()