Skip to content

Commit

Permalink
Merge pull request #986 from timmyb32r/bugfix_value_type_of_dataschema2
Browse files Browse the repository at this point in the history
bugfix_value_type_of_dataschema
  • Loading branch information
embano1 authored Dec 16, 2023
2 parents 39fe13d + 41e80f7 commit e620cf7
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
11 changes: 8 additions & 3 deletions binding/format/protobuf/v2/protobuf.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,12 @@ func ToProto(e *event.Event) (*pb.CloudEvent, error) {
container.Attributes[datacontenttype], _ = attributeFor(e.DataContentType())
}
if e.DataSchema() != "" {
container.Attributes[dataschema], _ = attributeFor(e.DataSchema())
dataSchemaStr := e.DataSchema()
uri, err := url.Parse(dataSchemaStr)
if err != nil {
return nil, fmt.Errorf("failed to url.Parse %s: %w", dataSchemaStr, err)
}
container.Attributes[dataschema], _ = attributeFor(uri)
}
if e.Subject() != "" {
container.Attributes[subject], _ = attributeFor(e.Subject())
Expand Down Expand Up @@ -251,8 +256,8 @@ func FromProto(container *pb.CloudEvent) (*event.Event, error) {
vs, _ := v.(string)
e.SetDataContentType(vs)
case dataschema:
vs, _ := v.(string)
e.SetDataSchema(vs)
vs, _ := v.(types.URI)
e.SetDataSchema(vs.String())
case subject:
vs, _ := v.(string)
e.SetSubject(vs)
Expand Down
6 changes: 6 additions & 0 deletions binding/format/protobuf/v2/protobuf_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ func TestFromProto(t *testing.T) {
Type: "some.type",
Attributes: map[string]*pb.CloudEventAttributeValue{
"datacontenttype": {Attr: &pb.CloudEventAttributeValue_CeString{CeString: "application/json"}},
"dataschema": {Attr: &pb.CloudEventAttributeValue_CeUri{CeUri: "https://example-data-schema.com"}},
"extra1": {Attr: &pb.CloudEventAttributeValue_CeString{CeString: "extra1 value"}},
"extra2": {Attr: &pb.CloudEventAttributeValue_CeInteger{CeInteger: 2}},
"extra3": {Attr: &pb.CloudEventAttributeValue_CeBoolean{CeBoolean: true}},
Expand All @@ -124,6 +125,7 @@ func TestFromProto(t *testing.T) {
out.SetSource("/source")
out.SetType("some.type")
_ = out.SetData("application/json", map[string]interface{}{"unit": "test"})
out.SetDataSchema("https://example-data-schema.com")
out.SetExtension("extra1", "extra1 value")
out.SetExtension("extra2", 2)
out.SetExtension("extra3", true)
Expand All @@ -140,6 +142,7 @@ func TestFromProto(t *testing.T) {
Type: "some.type",
Attributes: map[string]*pb.CloudEventAttributeValue{
"datacontenttype": {Attr: &pb.CloudEventAttributeValue_CeString{CeString: "text/plain"}},
"dataschema": {Attr: &pb.CloudEventAttributeValue_CeUri{CeUri: "https://example-data-schema.com"}},
"extra1": {Attr: &pb.CloudEventAttributeValue_CeString{CeString: "extra1 value"}},
"extra2": {Attr: &pb.CloudEventAttributeValue_CeInteger{CeInteger: 2}},
"extra3": {Attr: &pb.CloudEventAttributeValue_CeBoolean{CeBoolean: true}},
Expand All @@ -155,6 +158,7 @@ func TestFromProto(t *testing.T) {
out.SetSource("/source")
out.SetType("some.type")
_ = out.SetData("text/plain", `this is some text with a "quote"`)
out.SetDataSchema("https://example-data-schema.com")
out.SetExtension("extra1", "extra1 value")
out.SetExtension("extra2", 2)
out.SetExtension("extra3", true)
Expand All @@ -171,6 +175,7 @@ func TestFromProto(t *testing.T) {
Type: "some.type",
Attributes: map[string]*pb.CloudEventAttributeValue{
"datacontenttype": {Attr: &pb.CloudEventAttributeValue_CeString{CeString: "application/json"}},
"dataschema": {Attr: &pb.CloudEventAttributeValue_CeUri{CeUri: "https://example-data-schema.com"}},
"extra1": {Attr: &pb.CloudEventAttributeValue_CeString{CeString: "extra1 value"}},
"extra2": {Attr: &pb.CloudEventAttributeValue_CeInteger{CeInteger: 2}},
"extra3": {Attr: &pb.CloudEventAttributeValue_CeBoolean{CeBoolean: true}},
Expand All @@ -186,6 +191,7 @@ func TestFromProto(t *testing.T) {
out.SetSource("/source")
out.SetType("some.type")
_ = out.SetData("application/json", `{"unit":"test"}`)
out.SetDataSchema("https://example-data-schema.com")
out.SetExtension("extra1", "extra1 value")
out.SetExtension("extra2", 2)
out.SetExtension("extra3", true)
Expand Down

0 comments on commit e620cf7

Please sign in to comment.