created-report.spec.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. 'use strict';
  2. const { expect } = require('chai');
  3. const { parse, serialize } = require('../../../../xml/report/created-report');
  4. const {
  5. createdReportMinXml,
  6. createdReportMaxXml,
  7. createdReportMissingRequiredXml,
  8. createdReportErrorXml,
  9. } = require('./xml-requests');
  10. const { createdReportMin, createdReportMax } = require('./js-requests');
  11. describe('Created Report', function() {
  12. describe('parse', function() {
  13. it('successfully parses min xml', async function() {
  14. const parsedResponse = await parse(createdReportMinXml);
  15. expect(parsedResponse).to.eql(createdReportMin);
  16. });
  17. it('successfully parses max xml', async function() {
  18. const parsedResponse = await parse(createdReportMaxXml);
  19. expect(parsedResponse).to.eql(createdReportMax);
  20. });
  21. it('successfully parses serialized value', async function() {
  22. const serialized = serialize(createdReportMax);
  23. const parsedResponse = await parse(serialized);
  24. expect(parsedResponse).to.eql(createdReportMax);
  25. });
  26. it('throws Error on missing required field', async function() {
  27. let lastError;
  28. try {
  29. await parse(createdReportMissingRequiredXml);
  30. } catch (e) {
  31. lastError = e;
  32. }
  33. expect(lastError).to.be.an('error');
  34. });
  35. it('throws Error on error response', async function() {
  36. let lastError;
  37. try {
  38. await parse(createdReportErrorXml);
  39. } catch (e) {
  40. lastError = e;
  41. }
  42. expect(lastError).to.be.an('error');
  43. });
  44. });
  45. describe('serialize', function() {
  46. it('successfully serializes valid object', async function() {
  47. const serializedResponse = await serialize(createdReportMax);
  48. expect(serializedResponse).to.eql(
  49. '<oadr2b:oadrPayload xmlns:oadr2b="http://openadr.org/oadr-2.0b/2012/07"><oadr2b:oadrSignedObject><oadr2b:oadrCreatedReport><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">c6e8147ead4eb3ad3dff</pyld:requestID></ei:eiResponse><oadr2b:oadrPendingReports><ei:reportRequestID xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110">eec71ed4dfe1e52d65a5</ei:reportRequestID></oadr2b:oadrPendingReports><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:oadrCreatedReport></oadr2b:oadrSignedObject></oadr2b:oadrPayload>',
  50. );
  51. });
  52. });
  53. });