Parse content type, sanity in parse method
Signed-off-by: Fabio José <fabiojose@gmail.com>
This commit is contained in:
parent
21011b5a74
commit
d1fc0b39f0
|
@ -32,6 +32,10 @@ setter_reflections[Constants.BINARY_HEADERS_02.SCHEMA_URL] = {
|
||||||
name: "schemaurl",
|
name: "schemaurl",
|
||||||
parser: (v) => v
|
parser: (v) => v
|
||||||
};
|
};
|
||||||
|
setter_reflections[Constants.HEADER_CONTENT_TYPE] = {
|
||||||
|
name: "contenttype",
|
||||||
|
parser: (v) => v
|
||||||
|
};
|
||||||
|
|
||||||
function validate_args(payload, attributes) {
|
function validate_args(payload, attributes) {
|
||||||
if(!payload){
|
if(!payload){
|
||||||
|
@ -93,15 +97,18 @@ Receiver.prototype.check = function(payload, headers) {
|
||||||
Receiver.prototype.parse = function(payload, headers) {
|
Receiver.prototype.parse = function(payload, headers) {
|
||||||
this.check(payload, headers);
|
this.check(payload, headers);
|
||||||
|
|
||||||
|
// Clone and low case all headers names
|
||||||
|
var sanity_headers = sanity(headers);
|
||||||
|
|
||||||
var cloudevent = new Cloudevent(Spec02);
|
var cloudevent = new Cloudevent(Spec02);
|
||||||
for(header in setter_reflections) {
|
for(header in setter_reflections) {
|
||||||
// dont worry, check() have seen what was required or not
|
// dont worry, check() have seen what was required or not
|
||||||
if(headers[header]){
|
if(sanity_headers[header]){
|
||||||
var setter_name = setter_reflections[header].name;
|
var setter_name = setter_reflections[header].name;
|
||||||
var parser_fn = setter_reflections[header].parser;
|
var parser_fn = setter_reflections[header].parser;
|
||||||
|
|
||||||
// invoke the setter function
|
// invoke the setter function
|
||||||
cloudevent[setter_name](parser_fn(headers[header]));
|
cloudevent[setter_name](parser_fn(sanity_headers[header]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -285,6 +285,29 @@ describe("HTTP Transport Binding Binary Receiver 0.2", () => {
|
||||||
.to.equal("http://schema.registry/v1");
|
.to.equal("http://schema.registry/v1");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("Cloudevent contains 'contenttype'", () => {
|
||||||
|
// setup
|
||||||
|
var payload = {
|
||||||
|
"data" : "dataString"
|
||||||
|
};
|
||||||
|
var attributes = {
|
||||||
|
"ce-type" : "type",
|
||||||
|
"ce-specversion" : "0.2",
|
||||||
|
"ce-source" : "/source",
|
||||||
|
"ce-id" : "id",
|
||||||
|
"ce-time" : "2019-06-16T11:42:00Z",
|
||||||
|
"ce-schemaurl" : "http://schema.registry/v1",
|
||||||
|
"Content-Type" : "application/json"
|
||||||
|
};
|
||||||
|
|
||||||
|
// act
|
||||||
|
var actual = receiver.parse(payload, attributes);
|
||||||
|
|
||||||
|
// assert
|
||||||
|
expect(actual.getContenttype())
|
||||||
|
.to.equal("application/json");
|
||||||
|
});
|
||||||
|
|
||||||
it("Cloudevent contains 'data'", () => {
|
it("Cloudevent contains 'data'", () => {
|
||||||
// setup
|
// setup
|
||||||
var payload = {
|
var payload = {
|
||||||
|
|
Loading…
Reference in New Issue