from openerp.tests.common import TransactionCase


class TestMessageCount(TransactionCase):
    post_install = True

    def test_count(self):
        new_partner1 = self.env['res.partner'].sudo().create({'name': 'rpmc Test Partner one', 'email': 'tt@tt', 'notify_email': 'always'})
        new_partner2 = self.env['res.partner'].sudo().create({'name': 'rpmc Test Partner two', 'email': 'rr@rr', 'notify_email': 'always'})
        self.assertEqual(new_partner1.mails_to, 0, 'rpmc: new partner have mails_to != 0')
        mail_compose = self.env['mail.compose.message']
        compose = mail_compose.with_context(
            {
                'default_composition_mode': 'comment',
            }).create(
            {
                'subject': 'test subj',
                'body': 'test body',
                'partner_ids': [(4, new_partner2.id)],
                'email_from': 'tt@tt',
                'author_id': new_partner1.id
            })
        compose.send_mail()
        self.assertEqual(new_partner1.mails_to, 0)
        self.assertEqual(new_partner1.mails_from, 1, 'rpmc: one message but mails_from != 1')
        self.assertEqual(new_partner2.mails_to, 1, 'rpmc: one message but mails_to != 1')
        self.assertEqual(new_partner2.mails_from, 0)
        compose.send_mail()
        self.assertEqual(new_partner1.mails_to, 0)
        self.assertEqual(new_partner1.mails_from, 2, 'rpmc: one message but mails_from != 2')
        self.assertEqual(new_partner2.mails_to, 2, 'rpmc: one message but mails_to != 2')
        self.assertEqual(new_partner2.mails_from, 0)