def _test_write(self, stream_expected, application_namespace, application_data): stream_observed = BytearrayStream() application_specific_information = ApplicationSpecificInformation( application_namespace=application_namespace, application_data=application_data) application_specific_information.write(stream_observed) length_expected = len(stream_expected) length_observed = len(stream_observed) msg = "encoding lengths not equal" msg += "; expected {0}, observed {1}".format( length_expected, length_observed) self.assertEqual(length_expected, length_observed, msg) msg = "encoding mismatch" msg += ";\nexpected:\n{0}\nobserved:\n{1}".format( stream_expected, stream_observed) self.assertEqual(stream_expected, stream_observed, msg)
def test_not_equal_on_type_mismatch(self): """ Test that the equality operator returns True when comparing a ApplicationSpecificInformation object to a non-ApplicationSpecificInformation object. """ a = ApplicationSpecificInformation( application_namespace=ApplicationNamespace('test_namespace'), application_data=ApplicationData('test_data')) b = "invalid" self.assertTrue(a != b) self.assertTrue(b != a)
def test_repr(self): """ Test that an ApplicationSpecificInformation object can be represented using repr correctly. """ application_specific_info = ApplicationSpecificInformation( application_namespace=ApplicationNamespace("ssl"), application_data=ApplicationData("www.example.com")) s = repr(application_specific_info) self.assertEqual( "ApplicationSpecificInformation(" "application_namespace=ApplicationNamespace(value='ssl'), " "application_data=ApplicationData(value='www.example.com'))", s)
def _test_read(self, stream, application_namespace, application_data): application_specific_information = ApplicationSpecificInformation() application_specific_information.read(stream) if application_namespace is None: application_namespace = ApplicationNamespace() if application_data is None: application_data = ApplicationData() msg = "application namespace encoding mismatch" msg += "; expected {0}, observed {1}".format( application_namespace, application_specific_information.application_namespace) self.assertEqual( application_namespace, application_specific_information.application_namespace, msg) msg = "application data encoding mismatch" msg += "; expected {0}, observed {1}".format( application_data, application_specific_information.application_data) self.assertEqual( application_data, application_specific_information.application_data, msg)
def test_str(self): """ Test that an ApplicationSpecificInformation object can be turned into a string correctly. """ application_specific_info = ApplicationSpecificInformation( application_namespace=ApplicationNamespace("ssl"), application_data=ApplicationData("www.example.com")) s = str(application_specific_info) self.assertEqual( str({ 'application_namespace': 'ssl', 'application_data': 'www.example.com' }), s)
def _test_create(self, application_namespace, application_data): application_specific_info = ApplicationSpecificInformation.create( application_namespace, application_data) self.assertIsInstance( application_specific_info, ApplicationSpecificInformation) expected = ApplicationNamespace(application_namespace) observed = application_specific_info.application_namespace msg = "expected {0}, observed {1}".format(expected, observed) self.assertEqual(expected, observed, msg) expected = ApplicationData(application_data) observed = application_specific_info.application_data msg = "expected {0}, observed {1}".format(expected, observed) self.assertEqual(expected, observed, msg)
def _test_init(self, application_namespace, application_data): application_specific_information = ApplicationSpecificInformation( application_namespace=application_namespace, application_data=application_data) if application_namespace is None: self.assertEqual( ApplicationNamespace(), application_specific_information.application_namespace) else: self.assertEqual( application_namespace, application_specific_information.application_namespace) if application_data is None: self.assertEqual(ApplicationData(), application_specific_information.application_data) else: self.assertEqual(application_data, application_specific_information.application_data)
def _create_application_specific_information(self, info): if info is None: return ApplicationSpecificInformation() else: application_namespace = info.get('application_namespace') application_data = info.get('application_data') if not isinstance(application_namespace, str): msg = utils.build_er_error(ApplicationSpecificInformation, 'constructor argument type', str, type(application_namespace)) raise TypeError(msg) if not isinstance(application_data, str): msg = utils.build_er_error(ApplicationSpecificInformation, 'constructor argument type', str, type(application_data)) raise TypeError(msg) return ApplicationSpecificInformation.create(application_namespace, application_data)