Spec v1.0 required and optional attributes
Signed-off-by: Fabio José <fabiojose@gmail.com>
This commit is contained in:
parent
136045ae62
commit
acd29e142d
|
@ -75,4 +75,71 @@ Spec1.prototype.getId = function() {
|
||||||
return this.payload["id"];
|
return this.payload["id"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.source = function(_source){
|
||||||
|
this.payload["source"] = _source;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.getSource = function() {
|
||||||
|
return this.payload["source"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.specversion = function(_specversion){
|
||||||
|
// does not set! This is right
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.getSpecversion = function() {
|
||||||
|
return this.payload["specversion"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.type = function(_type){
|
||||||
|
this.payload["type"] = _type;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.getType = function(){
|
||||||
|
return this.payload["type"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.dataContentType = function(_contenttype){
|
||||||
|
this.payload["datacontenttype"] = _contenttype;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Spec1.prototype.getDataContentType = function() {
|
||||||
|
return this.payload["datacontenttype"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.dataschema = function(_schema){
|
||||||
|
this.payload["dataschema"] = _schema;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Spec1.prototype.getDataschema = function() {
|
||||||
|
return this.payload["dataschema"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.subject = function(_subject){
|
||||||
|
this.payload["subject"] = _subject;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Spec1.prototype.getSubject = function() {
|
||||||
|
return this.payload["subject"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.time = function(_time){
|
||||||
|
this.payload["time"] = _time.toISOString();
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Spec1.prototype.getTime = function() {
|
||||||
|
return this.payload["time"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Spec1.prototype.data = function(_data){
|
||||||
|
this.payload["data"] = _data;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Spec1.prototype.getData = function() {
|
||||||
|
return this.payload["data"];
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = Spec1;
|
module.exports = Spec1;
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
const expect = require("chai").expect;
|
||||||
|
const Spec1 = require("../lib/specs/spec_1.js");
|
||||||
|
const Cloudevent = require("../index.js");
|
||||||
|
const uuid = require("uuid/v4");
|
||||||
|
|
||||||
|
const id = uuid();
|
||||||
|
const type = "com.github.pull.create";
|
||||||
|
const source = "urn:event:from:myapi/resourse/123";
|
||||||
|
const time = new Date();
|
||||||
|
const dataschema = "http://example.com/registry/myschema.json";
|
||||||
|
const dataContentType = "application/json";
|
||||||
|
const data = {
|
||||||
|
much : "wow"
|
||||||
|
};
|
||||||
|
const extensions = {};
|
||||||
|
const subject = "subject-x0";
|
||||||
|
|
||||||
|
const cloudevent =
|
||||||
|
new Cloudevent(Spec1)
|
||||||
|
.id(id)
|
||||||
|
.source(source)
|
||||||
|
.type(type)
|
||||||
|
.dataContentType(dataContentType)
|
||||||
|
.dataschema(dataschema)
|
||||||
|
.subject(subject)
|
||||||
|
.time(time)
|
||||||
|
.data(data);
|
||||||
|
|
||||||
|
describe("CloudEvents Spec v1.0", () => {
|
||||||
|
describe("REQUIRED Attributes", () => {
|
||||||
|
it("Should have 'id'", () => {
|
||||||
|
expect(cloudevent.getId()).to.equal(id);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should have 'source'", () => {
|
||||||
|
expect(cloudevent.getSource()).to.equal(source);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should have 'specversion'", () => {
|
||||||
|
expect(cloudevent.getSpecversion()).to.equal("1.0");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should have 'type'", () => {
|
||||||
|
expect(cloudevent.getType()).to.equal(type);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("OPTIONAL Attributes", () => {
|
||||||
|
it("Should have 'datacontenttype'", () => {
|
||||||
|
expect(cloudevent.getDataContentType()).to.equal(dataContentType);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should have 'dataschema'", () => {
|
||||||
|
expect(cloudevent.getDataschema()).to.equal(dataschema);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should have 'subject'", () => {
|
||||||
|
expect(cloudevent.getSubject()).to.equal(subject);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should have 'time'", () => {
|
||||||
|
expect(cloudevent.getTime()).to.equal(time.toISOString());
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should have 'data'", () => {
|
||||||
|
expect(cloudevent.getData()).to.deep.equal(data);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue