def test_get_message_with_pvt_vul_unequal_len(self):
     """Test Message with Private Vulnerability unequal len of severities and vul count."""
     response_obj = ComponentAnalysisResponseBuilder("pypi", "django", "1.1")
     response_obj.pvt_vul = 2
     response_obj.severity = ['high']
     message = response_obj.get_message()
     ideal_msg = "django - 1.1 has 2 security advisory with 1 having high severity. "
     self.assertEqual(message, ideal_msg)
 def test_get_message_with_both_vul(self):
     """Test Message with Both Vulnerability."""
     response_obj = ComponentAnalysisResponseBuilder("pypi", "django", "1.1")
     response_obj.public_vul = 1
     response_obj.pvt_vul = 1
     response_obj.severity = ['high']
     message = response_obj.get_message()
     ideal_msg = "django - 1.1 has 1 known security vulnerability and 1 " \
                 "security advisory with 1 having high severity. " \
                 "No recommended version."
     self.assertEqual(message, ideal_msg)
    def test_generate_response(self, _mock_msg, _mock_link, _mock_maps):
        """Test Response Generator Function."""
        response_obj = ComponentAnalysisResponseBuilder(self.eco, self.pkg, self.ver)

        _mock_msg.return_value = 'You are Superb.'
        _mock_link.return_value = 'https://xyx.com'
        _mock_maps.return_value = {}

        response_obj.nocve_version = 1
        response_obj.severity = ['high']
        response_obj.public_vul = 2
        response_obj.pvt_vul = 1
        response = response_obj.generate_response()
        mocked_response = dict(
            recommended_versions=response_obj.nocve_version,
            registration_link=_mock_link.return_value,
            component_analyses=dict(vulnerability=_mock_maps.return_value),
            message=_mock_msg.return_value,
            severity=response_obj.severity[0],
            known_security_vulnerability_count=response_obj.public_vul,
            security_advisory_count=response_obj.pvt_vul,
        )
        self.assertDictEqual(response, mocked_response)