query-registration.spec.js 2.0 KB

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