def test_default_dimensions_missing(self):
        """
        Tests handling of the validation not having a usgaapDefaultDimensions
        """
        bad_relation = mock.MagicMock(spec=ModelRelationship)
        bad_relation.fromModelObject = mock.MagicMock()
        bad_relation.fromModelObject.name = "DebtInstrumentNameDomain"
        bad_relation.toModelObject = mock.MagicMock()
        bad_relation.toModelObject.name = "DebtInstrumentDomain"

        bad_validation = mock.MagicMock(spec=ValidateXbrl)

        self.assertFalse(
            dqc_us_0041._default_dimension_mismatch(relation=bad_relation,
                                                    validation=bad_validation))
    def test_default_dimensions_missing(self):
        """
        Tests handling of the validation not having a usgaapDefaultDimensions
        """
        bad_relation = mock.MagicMock(spec=ModelRelationship)
        bad_relation.fromModelObject = mock.MagicMock()
        bad_relation.fromModelObject.name = "DebtInstrumentNameDomain"
        bad_relation.toModelObject = mock.MagicMock()
        bad_relation.toModelObject.name = "DebtInstrumentDomain"

        bad_validation = mock.MagicMock(spec=ValidateXbrl)

        self.assertFalse(
            dqc_us_0041._default_dimension_mismatch(
                relation=bad_relation, validation=bad_validation
            )
        )
    def test_default_dimension_mismatch(self):
        """
        Tests to see if _default_dimension_mismatch can determine if two
        dimensions match or not
        """
        bad_relation = mock.MagicMock(spec=ModelRelationship)
        bad_relation.fromModelObject = mock.MagicMock()
        bad_relation.fromModelObject.name = "DebtInstrumentNameDomain"
        bad_relation.toModelObject = mock.MagicMock()
        bad_relation.toModelObject.name = "DebtInstrumentDomain"

        bad_validation = mock.MagicMock(spec=ValidateXbrl)
        bad_validation.usgaapDefaultDimensions = {
            bad_relation.fromModelObject.name: "TEST"
        }
        self.assertTrue(
            dqc_us_0041._default_dimension_mismatch(relation=bad_relation,
                                                    validation=bad_validation))
    def test_default_dimension_mismatch_with_no_mismatch(self):
        """
        Tests to make sure the _default_dimension_mismatch doesn't always throw
        an error
        """
        good_relation = mock.MagicMock(spec=ModelRelationship)
        good_relation.fromModelObject = mock.MagicMock()
        good_relation.fromModelObject.name = "DebtInstrumentNameDomain"
        good_relation.toModelObject = mock.MagicMock()
        good_relation.toModelObject.name = "DebtInstrumentDomain"

        good_validation = mock.MagicMock(spec=ValidateXbrl)
        good_validation.usgaapDefaultDimensions = {
            good_relation.fromModelObject.name:
            (good_relation.toModelObject.name)
        }
        self.assertFalse(
            dqc_us_0041._default_dimension_mismatch(
                relation=good_relation, validation=good_validation))
    def test_default_dimension_mismatch(self):
        """
        Tests to see if _default_dimension_mismatch can determine if two
        dimensions match or not
        """
        bad_relation = mock.MagicMock(spec=ModelRelationship)
        bad_relation.fromModelObject = mock.MagicMock()
        bad_relation.fromModelObject.name = "DebtInstrumentNameDomain"
        bad_relation.toModelObject = mock.MagicMock()
        bad_relation.toModelObject.name = "DebtInstrumentDomain"

        bad_validation = mock.MagicMock(spec=ValidateXbrl)
        bad_validation.usgaapDefaultDimensions = {
            bad_relation.fromModelObject.name: "TEST"
        }
        self.assertTrue(
            dqc_us_0041._default_dimension_mismatch(
                relation=bad_relation, validation=bad_validation
            )
        )
    def test_default_dimension_mismatch_with_no_mismatch(self):
        """
        Tests to make sure the _default_dimension_mismatch doesn't always throw
        an error
        """
        good_relation = mock.MagicMock(spec=ModelRelationship)
        good_relation.fromModelObject = mock.MagicMock()
        good_relation.fromModelObject.name = "DebtInstrumentNameDomain"
        good_relation.toModelObject = mock.MagicMock()
        good_relation.toModelObject.name = "DebtInstrumentDomain"

        good_validation = mock.MagicMock(spec=ValidateXbrl)
        good_validation.usgaapDefaultDimensions = {
            good_relation.fromModelObject.name: (
                good_relation.toModelObject.name
            )
        }
        self.assertFalse(
            dqc_us_0041._default_dimension_mismatch(
                relation=good_relation, validation=good_validation
            )
        )