| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 'use strict';
- const { expect } = require('chai');
- const { parse, serialize } = require('../../../../xml/report/create-report');
- const {
- createReportMinXml,
- createReportMaxXml,
- createReportMissingRequiredXml,
- } = require('./xml-responses');
- const { createReportMin, createReportMax } = require('./js-responses');
- describe('Create Report', function() {
- describe('parse', function() {
- it('successfully parses min xml', async function() {
- const parsedResponse = await parse(createReportMinXml);
- expect(parsedResponse).to.eql(createReportMin);
- });
- it('successfully parses max xml', async function() {
- const parsedResponse = await parse(createReportMaxXml);
- expect(parsedResponse).to.eql(createReportMax);
- });
- it('successfully parses serialized value', async function() {
- const serialized = serialize(createReportMax);
- const parsedResponse = await parse(serialized);
- expect(parsedResponse).to.eql(createReportMax);
- });
- it('throws Error on missing required field', async function() {
- let lastError;
- try {
- await parse(createReportMissingRequiredXml);
- } catch (e) {
- lastError = e;
- }
- expect(lastError).to.be.an('error');
- });
- });
- describe('serialize', function() {
- it('successfully serializes valid object', async function() {
- const serializedResponse = await serialize(createReportMax);
- expect(serializedResponse).to.eql(
- '<oadr2b:oadrPayload xmlns:oadr2b="http://openadr.org/oadr-2.0b/2012/07"><oadr2b:oadrSignedObject><oadr2b:oadrCreateReport 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">31c5ce71a68a73ece370</pyld:requestID><oadr2b:oadrReportRequest><ei:reportRequestID xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110">87bbc1d44d903f317758</ei:reportRequestID><ei:reportSpecifier xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110"><ei:reportSpecifierID>TELEMETRY_USAGE</ei:reportSpecifierID><cal:granularity xmlns:cal="urn:ietf:params:xml:ns:icalendar-2.0"><cal:duration>PT30S</cal:duration></cal:granularity><ei:reportBackDuration><cal:duration xmlns:cal="urn:ietf:params:xml:ns:icalendar-2.0">PT1M</cal:duration></ei:reportBackDuration><ei:reportInterval><cal:properties xmlns:cal="urn:ietf:params:xml:ns:icalendar-2.0"><cal:dtstart><cal:date-time>2020-05-09T03:24:48.000Z</cal:date-time></cal:dtstart><cal:duration><cal:duration>PT24H</cal:duration></cal:duration></cal:properties></ei:reportInterval><ei:specifierPayload><ei:rID>rep1</ei:rID><ei:readingType>x-notApplicable</ei:readingType></ei:specifierPayload><ei:specifierPayload><ei:rID>rep2</ei:rID><ei:readingType>x-notApplicable</ei:readingType></ei:specifierPayload></ei:reportSpecifier></oadr2b:oadrReportRequest><oadr2b:oadrReportRequest><ei:reportRequestID xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110">3d92d98e0b65d94e60a7</ei:reportRequestID><ei:reportSpecifier xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110"><ei:reportSpecifierID>TELEMETRY_STATUS</ei:reportSpecifierID><cal:granularity xmlns:cal="urn:ietf:params:xml:ns:icalendar-2.0"><cal:duration>PT30S</cal:duration></cal:granularity><ei:reportBackDuration><cal:duration xmlns:cal="urn:ietf:params:xml:ns:icalendar-2.0">PT2M</cal:duration></ei:reportBackDuration><ei:reportInterval><cal:properties xmlns:cal="urn:ietf:params:xml:ns:icalendar-2.0"><cal:dtstart><cal:date-time>2020-05-09T03:25:44.000Z</cal:date-time></cal:dtstart><cal:duration><cal:duration>PT24H</cal:duration></cal:duration></cal:properties></ei:reportInterval><ei:specifierPayload><ei:rID>TelemetryStatusReport</ei:rID><ei:readingType>x-notApplicable</ei:readingType></ei:specifierPayload></ei:reportSpecifier></oadr2b:oadrReportRequest></oadr2b:oadrCreateReport></oadr2b:oadrSignedObject></oadr2b:oadrPayload>',
- );
- });
- });
- });
|