oadr-poll.spec.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 'use strict';
  2. const { expect } = require('chai');
  3. const { parse, serialize } = require('../../../../xml/poll/oadr-poll');
  4. const { pollXml, pollMissingRequiredXml } = require('./xml-requests');
  5. const { poll } = require('./js-requests');
  6. describe('Poll', function() {
  7. describe('parse', function() {
  8. it('successfully parses xml', async function() {
  9. const parsedResponse = await parse(pollXml);
  10. expect(parsedResponse).to.eql(poll);
  11. });
  12. it('successfully parses serialized value', async function() {
  13. const serialized = serialize(poll);
  14. const parsedResponse = await parse(serialized);
  15. expect(parsedResponse).to.eql(poll);
  16. });
  17. it('throws Error on missing required field', async function() {
  18. let lastError;
  19. try {
  20. await parse(pollMissingRequiredXml);
  21. } catch (e) {
  22. lastError = e;
  23. }
  24. expect(lastError).to.be.an('error');
  25. });
  26. });
  27. describe('serialize', function() {
  28. it('successfully serializes valid object', async function() {
  29. const serializedResponse = await serialize(poll);
  30. expect(serializedResponse).to.eql(
  31. '<oadr2b:oadrPayload xmlns:oadr2b="http://openadr.org/oadr-2.0b/2012/07"><oadr2b:oadrSignedObject><oadr2b:oadrPoll xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110" ei:schemaVersion="2.0b"><ei:venID xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110">D8:1D:4B:20:5A:65:4C:50:32:FA</ei:venID></oadr2b:oadrPoll></oadr2b:oadrSignedObject></oadr2b:oadrPayload>',
  32. );
  33. });
  34. });
  35. });