create-party-registration.spec.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. 'use strict';
  2. const { expect } = require('chai');
  3. const { parse, serialize } = require('../../../../xml/register-party/create-party-registration');
  4. const { createPartyRegistration1Xml, malformedXml, missingOadrXmlSignatureXml, illegalBooleanValueXml } = require('./xml-requests');
  5. const { createPartyRegistration1 } = require('./js-requests');
  6. describe('Create Party Registration', function() {
  7. describe('parse', function() {
  8. let parsedResponse;
  9. before(async () => {
  10. parsedResponse = await parse(createPartyRegistration1Xml);
  11. });
  12. it ('successfully parses valid message', function() {
  13. expect(parsedResponse.venId).to.eql('3f59d85fbdf3997dbeb1');
  14. expect(parsedResponse.oadrProfileName).to.eql('2.0b');
  15. expect(parsedResponse.oadrTransportName).to.eql('simpleHttp');
  16. expect(parsedResponse.oadrReportOnly).to.eql(false);
  17. expect(parsedResponse.oadrXmlSignature).to.eql(false);
  18. expect(parsedResponse.oadrVenName).to.eql('OadrVen2b');
  19. expect(parsedResponse.oadrHttpPullModel).to.eql(true);
  20. });
  21. it ('successfully parses serialized value', async function() {
  22. const serialized = serialize(createPartyRegistration1);
  23. const parsedResponse = await parse(serialized);
  24. expect(parsedResponse).to.eql(createPartyRegistration1);
  25. });
  26. it ('throws Error on malformed input', async function() {
  27. let lastError;
  28. try {
  29. await parse(malformedXml);
  30. } catch (e) {
  31. lastError = e;
  32. }
  33. expect(lastError).to.be.an('error');
  34. });
  35. it ('throws Error on missing required field', async function() {
  36. let lastError;
  37. try {
  38. await parse(missingOadrXmlSignatureXml);
  39. } catch (e) {
  40. lastError = e;
  41. }
  42. expect(lastError).to.be.an('error');
  43. });
  44. it ('throws Error on illegal boolean value', async function() {
  45. let lastError;
  46. try {
  47. await parse(illegalBooleanValueXml);
  48. } catch (e) {
  49. lastError = e;
  50. }
  51. expect(lastError).to.be.an('error');
  52. });
  53. });
  54. describe('serialize', function() {
  55. let serializedResponse;
  56. before(async () => {
  57. serializedResponse = await serialize(createPartyRegistration1);
  58. });
  59. it ('successfully serializes valid message', function() {
  60. expect(serializedResponse).to.eql('<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>');
  61. });
  62. });
  63. });