create-party-registration.spec.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. createPartyRegistrationMissingRequiredXml,
  9. createPartyRegistrationMinXml,
  10. createPartyRegistrationMaxXml,
  11. createPartyRegistrationIllegalBooleanXml,
  12. } = require('./xml-requests');
  13. const {
  14. createPartyRegistrationMin,
  15. createPartyRegistrationMax,
  16. } = require('./js-requests');
  17. describe('Create Party Registration', function() {
  18. describe('parse', function() {
  19. it('successfully parses min xml', async function() {
  20. const parsedResponse = await parse(createPartyRegistrationMinXml);
  21. expect(parsedResponse).to.eql(createPartyRegistrationMin);
  22. });
  23. it('successfully parses max xml', async function() {
  24. const parsedResponse = await parse(createPartyRegistrationMaxXml);
  25. expect(parsedResponse).to.eql(createPartyRegistrationMax);
  26. });
  27. it('successfully parses serialized value', async function() {
  28. const serialized = serialize(createPartyRegistrationMax);
  29. const parsedResponse = await parse(serialized);
  30. expect(parsedResponse).to.eql(createPartyRegistrationMax);
  31. });
  32. it('throws Error on missing required field', async function() {
  33. let lastError;
  34. try {
  35. await parse(createPartyRegistrationMissingRequiredXml);
  36. } catch (e) {
  37. lastError = e;
  38. }
  39. expect(lastError).to.be.an('error');
  40. });
  41. it('throws Error on illegal boolean value', async function() {
  42. let lastError;
  43. try {
  44. await parse(createPartyRegistrationIllegalBooleanXml);
  45. } catch (e) {
  46. lastError = e;
  47. }
  48. expect(lastError).to.be.an('error');
  49. });
  50. });
  51. describe('serialize', function() {
  52. it('successfully serializes valid object', async function() {
  53. const serializedResponse = await serialize(createPartyRegistrationMax);
  54. expect(serializedResponse).to.eql(
  55. '<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">4323</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">aabbccdd</ei:registrationID><oadr2b:oadrProfileName>2.0b</oadr2b:oadrProfileName><oadr2b:oadrTransportName>simpleHttp</oadr2b:oadrTransportName><oadr2b:oadrTransportAddress>http://1.2.3.4</oadr2b:oadrTransportAddress><oadr2b:oadrReportOnly>false</oadr2b:oadrReportOnly><oadr2b:oadrXmlSignature>false</oadr2b:oadrXmlSignature><oadr2b:oadrVenName>OadrVen2b</oadr2b:oadrVenName><oadr2b:oadrHttpPullModel>false</oadr2b:oadrHttpPullModel></oadr2b:oadrCreatePartyRegistration></oadr2b:oadrSignedObject></oadr2b:oadrPayload>',
  56. );
  57. });
  58. });
  59. });