# -*- coding: utf-8 -*-
from odoo.tests.common import TransactionCase


class TestHgLink(TransactionCase):

    def setUp(self):
        super().setUp()
        self.node_a = self.env['hg.node'].create({
            'name': 'Источник',
            'res_model': 'hg.node',
            'res_id': 1,
        })
        self.node_b = self.env['hg.node'].create({
            'name': 'Приёмник 1',
            'res_model': 'hg.node',
            'res_id': 2,
        })
        self.node_c = self.env['hg.node'].create({
            'name': 'Приёмник 2',
            'res_model': 'hg.node',
            'res_id': 3,
        })

    def test_create_link(self):
        link = self.env['hg.link'].create({
            'name': 'Тестовая связь',
            'source_id': self.node_a.id,
            'target_ids': [(4, self.node_b.id), (4, self.node_c.id)],
        })
        self.assertEqual(link.source_id, self.node_a)
        self.assertIn(self.node_b, link.target_ids)
        self.assertIn(self.node_c, link.target_ids)

    def test_link_without_targets(self):
        link = self.env['hg.link'].create({
            'name': 'Связь без приёмников',
            'source_id': self.node_a.id,
        })
        self.assertFalse(link.target_ids)
