create-party-registration.spec.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. 'use strict';
  2. const { expect } = require('chai');
  3. const {
  4. parse,
  5. serialize,
  6. } = require('../../../../xml/register-party/create-party-registration');
  7. const {
  8. createPartyRegistration1Xml,
  9. malformedXml,
  10. missingOadrXmlSignatureXml,
  11. illegalBooleanValueXml,
  12. } = require('./xml-requests');
  13. const { createPartyRegistration1 } = require('./js-requests');
  14. describe('Create Party Registration', function() {
  15. describe('parse', function() {
  16. let parsedResponse;
  17. before(async () => {
  18. parsedResponse = await parse(createPartyRegistration1Xml);
  19. });
  20. it('successfully parses valid message', function() {
  21. expect(parsedResponse.venId).to.eql('3f59d85fbdf3997dbeb1');
  22. expect(parsedResponse.oadrProfileName).to.eql('2.0b');
  23. expect(parsedResponse.oadrTransportName).to.eql('simpleHttp');
  24. expect(parsedResponse.oadrReportOnly).to.eql(false);
  25. expect(parsedResponse.oadrXmlSignature).to.eql(false);
  26. expect(parsedResponse.oadrVenName).to.eql('OadrVen2b');
  27. expect(parsedResponse.oadrHttpPullModel).to.eql(true);
  28. });
  29. it('successfully parses serialized value', async function() {
  30. const serialized = serialize(createPartyRegistration1);
  31. const parsedResponse = await parse(serialized);
  32. expect(parsedResponse).to.eql(createPartyRegistration1);
  33. });
  34. it('throws Error on malformed input', async function() {
  35. let lastError;
  36. try {
  37. await parse(malformedXml);
  38. } catch (e) {
  39. lastError = e;
  40. }
  41. expect(lastError).to.be.an('error');
  42. });
  43. it('throws Error on missing required field', async function() {
  44. let lastError;
  45. try {
  46. await parse(missingOadrXmlSignatureXml);
  47. } catch (e) {
  48. lastError = e;
  49. }
  50. expect(lastError).to.be.an('error');
  51. });
  52. it('throws Error on illegal boolean value', async function() {
  53. let lastError;
  54. try {
  55. await parse(illegalBooleanValueXml);
  56. } catch (e) {
  57. lastError = e;
  58. }
  59. expect(lastError).to.be.an('error');
  60. });
  61. });
  62. describe('serialize', function() {
  63. let serializedResponse;
  64. before(async () => {
  65. serializedResponse = await serialize(createPartyRegistration1);
  66. });
  67. it('successfully serializes valid message', function() {
  68. expect(serializedResponse).to.eql(
  69. '<oadr2b:oadrPayload xmlns:oadr2b="http://openadr.org/oadr-2.0b/2012/07"><oadr2b:oadrSignedObject><oadr2b:oadrCreatePartyRegistration 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">2233</pyld:requestID><ei:venID xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110">3f59d85fbdf3997dbeb1</ei:venID><ei:registrationID xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110">3bd3c02dc6965c8b9240</ei:registrationID><oadr2b:oadrProfileName>2.0b</oadr2b:oadrProfileName><oadr2b:oadrTransportName>simpleHttp</oadr2b:oadrTransportName><oadr2b:oadrReportOnly>false</oadr2b:oadrReportOnly><oadr2b:oadrXmlSignature>false</oadr2b:oadrXmlSignature><oadr2b:oadrVenName>venName</oadr2b:oadrVenName><oadr2b:oadrHttpPullModel>true</oadr2b:oadrHttpPullModel></oadr2b:oadrCreatePartyRegistration></oadr2b:oadrSignedObject></oadr2b:oadrPayload>',
  70. );
  71. });
  72. });
  73. });