Browse Source

PROD-1221: More XML serialization/parser test cases for registration

Blake Schneider 5 năm trước cách đây
mục cha
commit
8e95216a5f

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 21 - 0
__tests__/unit/xml/parser.spec.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 29 - 13
__tests__/unit/xml/register-party/cancel-party-registration.spec.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 38 - 25
__tests__/unit/xml/register-party/canceled-party-registration.spec.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 22 - 39
__tests__/unit/xml/register-party/create-party-registration.spec.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 35 - 28
__tests__/unit/xml/register-party/created-party-registration.spec.js


+ 36 - 12
__tests__/unit/xml/register-party/js-requests.js

@@ -1,32 +1,56 @@
 'use strict';
 
-const createPartyRegistration1 = {
+const createPartyRegistrationMin = {
   _type: 'oadrCreatePartyRegistration',
-  requestId: '2233',
-  registrationId: '3bd3c02dc6965c8b9240',
+  requestId: '4323',
+  oadrProfileName: '2.0b',
+  oadrTransportName: 'simpleHttp',
+  oadrReportOnly: false,
+  oadrXmlSignature: false,
+};
+
+const createPartyRegistrationMax = {
+  _type: 'oadrCreatePartyRegistration',
+  requestId: '4323',
+  registrationId: 'aabbccdd',
   venId: '3f59d85fbdf3997dbeb1',
   oadrProfileName: '2.0b',
   oadrTransportName: 'simpleHttp',
+  oadrTransportAddress: 'http://1.2.3.4',
   oadrReportOnly: false,
   oadrXmlSignature: false,
-  oadrVenName: 'venName',
-  oadrHttpPullModel: true,
+  oadrVenName: 'OadrVen2b',
+  oadrHttpPullModel: false,
 };
 
-const cancelPartyRegistration1 = {
+const cancelPartyRegistrationMin = {
   _type: 'oadrCancelPartyRegistration',
-  requestId: '223344',
+  requestId: '4323',
+  registrationId: '3bd3c02dc6965c8b9240',
+};
+
+const cancelPartyRegistrationMax = {
+  _type: 'oadrCancelPartyRegistration',
+  requestId: '4323',
   registrationId: '3bd3c02dc6965c8b9240',
   venId: '3f59d85fbdf3997dbeb1',
 };
 
-const queryRegistration1 = {
+const queryRegistrationMin = {
+  _type: 'oadrQueryRegistration',
+  requestId: '4323',
+};
+
+const queryRegistrationMax = {
   _type: 'oadrQueryRegistration',
-  requestId: '12345',
+  requestId: '4323',
 };
 
 module.exports = {
-  cancelPartyRegistration1,
-  createPartyRegistration1,
-  queryRegistration1,
+  cancelPartyRegistrationMin,
+  cancelPartyRegistrationMax,
+  createPartyRegistrationMin,
+  createPartyRegistrationMax,
+  queryRegistrationMin,
+  queryRegistrationMax,
 };

+ 22 - 5
__tests__/unit/xml/register-party/js-responses.js

@@ -1,16 +1,31 @@
 'use strict';
 
-const createdPartyRegistration1 = {
+const createdPartyRegistrationMin = {
+  _type: 'oadrCreatedPartyRegistration',
+  responseCode: '200',
+  responseRequestId: '4323',
+  vtnId: 'VTN_ID1',
+};
+
+const createdPartyRegistrationMax = {
+  _type: 'oadrCreatedPartyRegistration',
   responseCode: '200',
   responseDescription: 'OK',
-  responseRequestId: 'rid',
+  responseRequestId: '4323',
   registrationId: '3bd3c02dc6965c8b9240',
   venId: '3f59d85fbdf3997dbeb1',
   vtnId: 'VTN_ID1',
   pollFreqDuration: 'PT10S',
 };
 
-const canceledPartyRegistration1 = {
+const canceledPartyRegistrationMin = {
+  _type: 'oadrCanceledPartyRegistration',
+  responseCode: '200',
+  responseRequestId: '334455',
+};
+
+const canceledPartyRegistrationMax = {
+  _type: 'oadrCanceledPartyRegistration',
   responseCode: '200',
   responseDescription: 'OK',
   responseRequestId: '334455',
@@ -19,6 +34,8 @@ const canceledPartyRegistration1 = {
 };
 
 module.exports = {
-  canceledPartyRegistration1,
-  createdPartyRegistration1,
+  canceledPartyRegistrationMin,
+  canceledPartyRegistrationMax,
+  createdPartyRegistrationMin,
+  createdPartyRegistrationMax,
 };

+ 35 - 21
__tests__/unit/xml/register-party/query-registration.spec.js

@@ -6,39 +6,53 @@ const {
   parse,
   serialize,
 } = require('../../../../xml/register-party/query-registration');
-const { queryRegistration1Xml } = require('./xml-requests');
-const { queryRegistration1 } = require('./js-requests');
+const {
+  queryRegistrationMinXml,
+  queryRegistrationMaxXml,
+  queryRegistrationMissingRequiredXml,
+} = require('./xml-requests');
+const { queryRegistrationMin, queryRegistrationMax } = require('./js-requests');
 
 describe('Query Registration', function() {
-  describe('serialize', function() {
-    let serializedRequest;
+  describe('parse', function() {
+    it('successfully parses min xml', async function() {
+      const parsedResponse = await parse(queryRegistrationMinXml);
+      expect(parsedResponse).to.eql(queryRegistrationMin);
+    });
 
-    before(async () => {
-      serializedRequest = await serialize(queryRegistration1);
+    it('successfully parses max xml', async function() {
+      const parsedResponse = await parse(queryRegistrationMaxXml);
+      expect(parsedResponse).to.eql(queryRegistrationMax);
     });
 
-    it('successfully parses valid message', function() {
-      expect(serializedRequest).to.eql(
-        '<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">12345</pyld:requestID></oadr2b:oadrQueryRegistration></oadr2b:oadrSignedObject></oadr2b:oadrPayload>',
-      );
+    it('successfully parses serialized value', async function() {
+      const serialized = serialize(queryRegistrationMax);
+      const parsedResponse = await parse(serialized);
+      expect(parsedResponse).to.eql(queryRegistrationMax);
+    });
+
+    it('throws Error on missing required field', async function() {
+      let lastError;
+      try {
+        await parse(queryRegistrationMissingRequiredXml);
+      } catch (e) {
+        lastError = e;
+      }
+      expect(lastError).to.be.an('error');
     });
   });
 
-  describe('parse', function() {
-    let parsedRequest;
+  describe('serialize', function() {
+    let serializedResponse;
 
     before(async () => {
-      parsedRequest = await parse(queryRegistration1Xml);
-    });
-
-    it('successfully parses valid message', function() {
-      expect(parsedRequest.requestId).to.eql('4323');
+      serializedResponse = await serialize(queryRegistrationMaxXml);
     });
 
-    it('successfully parses serialized value', async function() {
-      const serialized = serialize(queryRegistration1);
-      const parsedResponse = await parse(serialized);
-      expect(parsedResponse).to.eql(queryRegistration1);
+    it('successfully serializes valid message', function() {
+      expect(serializedResponse).to.eql(
+        '<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>',
+      );
     });
   });
 });

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 68 - 25
__tests__/unit/xml/register-party/xml-requests.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 73 - 5
__tests__/unit/xml/register-party/xml-responses.js


+ 5 - 1
xml/register-party/canceled-party-registration.js

@@ -29,11 +29,15 @@ async function parse(input) {
   );
 
   const result = {
+    _type: 'oadrCanceledPartyRegistration',
     responseCode: code,
-    responseDescription: description,
     responseRequestId: requestId,
   };
 
+  if (description != null) {
+    result.responseDescription = description;
+  }
+
   if (code < 200 || code >= 300) {
     return result;
   }

+ 6 - 2
xml/register-party/created-party-registration.js

@@ -34,11 +34,15 @@ async function parse(input) {
   );
 
   const result = {
+    _type: 'oadrCreatedPartyRegistration',
     responseCode: code,
-    responseDescription: description,
     responseRequestId: requestId,
   };
 
+  if (description != null) {
+    result.responseDescription = description;
+  }
+
   if (code < 200 || code >= 300) {
     return result;
   }
@@ -49,7 +53,7 @@ async function parse(input) {
   const venId = childAttr(o, 'venID');
   if (venId != null) result.venId = venId;
 
-  const vtnId = childAttr(o, 'vtnID');
+  const vtnId = required(childAttr(o, 'vtnID'), 'vtnID');
   if (vtnId != null) result.vtnId = vtnId;
 
   const oadrRequestedOadrPollFreq = childAttr(o, 'oadrRequestedOadrPollFreq');