request-event.spec.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 'use strict';
  2. const { expect } = require('chai');
  3. const { parse, serialize } = require('../../../../xml/event/request-event');
  4. const {
  5. requestEventMinXml,
  6. requestEventMaxXml,
  7. requestEventMissingRequiredXml,
  8. } = require('./xml-requests');
  9. const { requestEventMin, requestEventMax } = require('./js-requests');
  10. describe('Request Event', function() {
  11. describe('parse', function() {
  12. it('successfully parses min xml', async function() {
  13. const parsedResponse = await parse(requestEventMinXml);
  14. expect(parsedResponse).to.eql(requestEventMin);
  15. });
  16. it('successfully parses max xml', async function() {
  17. const parsedResponse = await parse(requestEventMaxXml);
  18. expect(parsedResponse).to.eql(requestEventMax);
  19. });
  20. it('successfully parses serialized value', async function() {
  21. const serialized = serialize(requestEventMax);
  22. const parsedResponse = await parse(serialized);
  23. expect(parsedResponse).to.eql(requestEventMax);
  24. });
  25. it('throws Error on missing required field', async function() {
  26. let lastError;
  27. try {
  28. await parse(requestEventMissingRequiredXml);
  29. } catch (e) {
  30. lastError = e;
  31. }
  32. expect(lastError).to.be.an('error');
  33. });
  34. });
  35. describe('serialize', function() {
  36. let serializedResponse;
  37. before(async () => {
  38. serializedResponse = await serialize(requestEventMaxXml);
  39. });
  40. it('successfully serializes valid message', function() {
  41. expect(serializedResponse).to.eql(
  42. '<oadr2b:oadrPayload xmlns:oadr2b="http://openadr.org/oadr-2.0b/2012/07"><oadr2b:oadrSignedObject><oadr2b:oadrRequestEvent xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110" ei:schemaVersion="2.0b"><pyld:eiRequestEvent xmlns:pyld="http://docs.oasis-open.org/ns/energyinterop/201110/payloads"><pyld:requestID></pyld:requestID><ei:venID xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110"></ei:venID></pyld:eiRequestEvent></oadr2b:oadrRequestEvent></oadr2b:oadrSignedObject></oadr2b:oadrPayload>',
  43. );
  44. });
  45. });
  46. });