def test_cloud_event_serialization_extension_bytes(self, **kwargs):
        data = b"cloudevent"
        cloud_event = CloudEvent(
                source="http://samplesource.dev",
                data=data,
                type="Sample.Cloud.Event",
                foo="bar",
                extensions={'e1':1, 'e2':2}
                )
        
        cloud_event.subject = "subject" # to test explicit setting of prop
        encoded = base64.b64encode(data).decode('utf-8')
        internal = cloud_event._to_generated()

        assert internal.additional_properties is not None
        assert 'foo' not in internal.additional_properties
        assert 'e1' in internal.additional_properties

        json  = internal.serialize()

        expected = {
            'source':'http://samplesource.dev',
            'data_base64': encoded,
            'type':'Sample.Cloud.Event',
            'reason_code':204,
            'e1':1,
            'e2':2
        }

        self._assert_cloud_event_serialized(expected, json)
        assert expected['data_base64'] == json['data_base64']
 def test_send_cloud_event_data_with_extensions(self, resource_group, eventgrid_topic, eventgrid_topic_primary_key, eventgrid_topic_endpoint):
     akc_credential = AzureKeyCredential(eventgrid_topic_primary_key)
     client = EventGridPublisherClient(eventgrid_topic_endpoint, akc_credential)
     cloud_event = CloudEvent(
             source = "http://samplesource.dev",
             data = "cloudevent",
             type="Sample.Cloud.Event",
             extensions={
                 'reason_code':204,
                 'extension':'hello'
                 }
             )
     client.send([cloud_event])
     internal = cloud_event._to_generated().serialize()
     assert 'reason_code' in internal
     assert 'extension' in internal
     assert internal['reason_code'] == 204