def test_createRelationship_implementations_not_equal(self):
        _sheet1 = Mock()
        _sheet1.getImplementation.return_value = "implementation1"
        _end1 = Mock()
        _end1.getOwnerSheet.return_value = _sheet1

        _sheet2 = Mock()
        _sheet2.getImplementation.return_value = "implementation2"
        _end2 = Mock()
        _end2.getOwnerSheet.return_value = _sheet2

        _create_relationship = self._init_patch_with_name(
            '_create_relationship',
            'xmind.core.workbook.WorkbookDocument._create_relationship')

        _workbook_document = WorkbookDocument()

        with self.assertRaises(Exception) as _ex:
            _workbook_document.createRelationship(_end1, _end2)
        self.assertTrue(
            _ex.exception.args[0].find("Topics not on the same sheet!") != -1)
        _end1.getOwnerSheet.assert_called_once()
        _end2.getOwnerSheet.assert_called_once()
        _sheet1.getImplementation.assert_called_once()
        _sheet2.getImplementation.assert_called_once()
        _create_relationship.assert_not_called()
        self._append_child.assert_called_once_with(None)
        self._assert_init_methods(_workbook_document)
    def test_createRelationship_sheet_is_none(self):
        _sheet1 = Mock()
        _sheet1.getImplementation.return_value = None
        _end1 = Mock()
        _end1.getOwnerSheet.return_value = _sheet1

        _end2 = Mock()
        _end2.getOwnerSheet.return_value = None

        _workbook_document = WorkbookDocument()

        with self.assertRaises(Exception) as _ex:
            _workbook_document.createRelationship(_end1, _end2)
        self.assertTrue(
            _ex.exception.args[0].find("Topics not on the same sheet!") != -1)
        _end1.getOwnerSheet.assert_called_once()
        _end2.getOwnerSheet.assert_called_once()
        _sheet1.getImplementation.assert_not_called()
        self._append_child.assert_called_once_with(None)
        self._assert_init_methods(_workbook_document)
    def test_createRelationship(self):
        _sheet1 = Mock()
        _sheet1.getImplementation.return_value = "implementation"
        _sheet1.addRelationships.return_value = None
        _end1 = Mock()
        _end1.getOwnerSheet.return_value = _sheet1
        _end1.getID.return_value = "ID1"

        _sheet2 = Mock()
        _sheet2.getImplementation.return_value = "implementation"
        _end2 = Mock()
        _end2.getOwnerSheet.return_value = _sheet2
        _end2.getID.return_value = "ID2"

        _rel = Mock()
        _rel.setEnd1ID.return_value = None
        _rel.setEnd2ID.return_value = None

        _create_relationship = self._init_patch_with_name(
            '_create_relationship',
            'xmind.core.workbook.WorkbookDocument._create_relationship',
            return_value=_rel)

        _workbook_document = WorkbookDocument()

        self.assertEqual(_workbook_document.createRelationship(_end1, _end2),
                         _rel)
        _end1.getOwnerSheet.assert_called_once()
        _end2.getOwnerSheet.assert_called_once()
        _sheet1.getImplementation.assert_called_once()
        _sheet2.getImplementation.assert_called_once()
        _create_relationship.assert_called_once()
        _end1.getID.assert_called_once()
        _end2.getID.assert_called_once()
        _rel.setEnd1ID.assert_called_once_with("ID1")
        _rel.setEnd2ID.assert_called_once_with("ID2")
        _sheet1.addRelationships.assert_called_once_with(_rel)
        self._append_child.assert_called_once_with(None)
        self._assert_init_methods(_workbook_document)