created-event.spec.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. 'use strict';
  2. const { expect } = require('chai');
  3. const { parse, serialize } = require('../../../../xml/event/created-event');
  4. const {
  5. createdEventMin1Xml,
  6. createdEventMin2Xml,
  7. createdEventMaxXml,
  8. createdEventMissingRequiredXml,
  9. } = require('./xml-requests');
  10. const {
  11. createdEventMin1,
  12. createdEventMin2,
  13. createdEventMax,
  14. } = require('./js-requests');
  15. describe('Created Event', function() {
  16. describe('parse', function() {
  17. it('successfully parses min 1 xml', async function() {
  18. const parsedResponse = await parse(createdEventMin1Xml);
  19. expect(parsedResponse).to.eql(createdEventMin1);
  20. });
  21. it('successfully parses min 2 xml', async function() {
  22. const parsedResponse = await parse(createdEventMin2Xml);
  23. expect(parsedResponse).to.eql(createdEventMin2);
  24. });
  25. it('successfully parses max xml', async function() {
  26. const parsedResponse = await parse(createdEventMaxXml);
  27. expect(parsedResponse).to.eql(createdEventMax);
  28. });
  29. it('successfully parses serialized value', async function() {
  30. const serialized = serialize(createdEventMax);
  31. const parsedResponse = await parse(serialized);
  32. expect(parsedResponse).to.eql(createdEventMax);
  33. });
  34. it('throws Error on missing required field', async function() {
  35. let lastError;
  36. try {
  37. await parse(createdEventMissingRequiredXml);
  38. } catch (e) {
  39. lastError = e;
  40. }
  41. expect(lastError).to.be.an('error');
  42. });
  43. });
  44. describe('serialize', function() {
  45. it('successfully serializes valid object', async function() {
  46. const serializedResponse = await serialize(createdEventMax);
  47. expect(serializedResponse).to.eql(
  48. '<oadr2b:oadrPayload xmlns:oadr2b="http://openadr.org/oadr-2.0b/2012/07"><oadr2b:oadrSignedObject><oadr2b:oadrCreatedEvent><pyld:eiCreatedEvent xmlns:pyld="http://www.w3.org/2000/09/xmldsig#"><ei:eiResponse xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110"><ei:responseCode>200</ei:responseCode><ei:responseDescription>OK</ei:responseDescription><pyld:requestID xmlns:pyld="http://docs.oasis-open.org/ns/energyinterop/201110/payloads">336f7e47b92eefe985ec</pyld:requestID></ei:eiResponse><ei:eventResponses xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110"><ei:eventResponse><ei:responseCode>200</ei:responseCode><ei:responseDescription>OK</ei:responseDescription><pyld:requestID xmlns:pyld="http://docs.oasis-open.org/ns/energyinterop/201110/payloads">336f7e47b92eefe985ec</pyld:requestID><ei:optType>optIn</ei:optType><ei:qualifiedEventID><ei:eventID>a2fa542eca8d4e829ff5c0f0c8e68710</ei:eventID><ei:modificationNumber>2</ei:modificationNumber></ei:qualifiedEventID></ei:eventResponse></ei:eventResponses><ei:venID xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110">D8:1D:4B:20:5A:65:4C:50:32:FA</ei:venID></pyld:eiCreatedEvent></oadr2b:oadrCreatedEvent></oadr2b:oadrSignedObject></oadr2b:oadrPayload>',
  49. );
  50. });
  51. });
  52. });