xsd2jsonschema
Version:
A pure JavaScript library for converting complex XML Schemas into equivalent JSON Schemas.
49 lines (40 loc) • 1.9 kB
JavaScript
;
const debug = require('debug')('xsd2jsonschema:ForwardReferenceSpec');
const clone = require('clone');
const BuiltInTypeConverter = require('xsd2jsonschema').BuiltInTypeConverter;
const XsdFile = require('xsd2jsonschema').XsdFile;
const JsonSchemaFileDraft04 = require('xsd2jsonschema').JsonSchemaFileDraft04;
const JsonSchemaRef = require('xsd2jsonschema').JsonSchemaRef;
const NamespaceManager = require('xsd2jsonschema').NamespaceManager;
const CONSTANTS = require('xsd2jsonschema').Constants;
const ForwardReference = require('xsd2jsonschema').ForwardReference;
describe('ForwardReference Test - ', function() {
var namespaceManager;
var jsonSchema;
var parent;
var xsd;
beforeEach(function() {
namespaceManager = new NamespaceManager({
jsonSchemaVersion: CONSTANTS.DRAFT_04,
builtInTypeConverter: new BuiltInTypeConverter()
});
namespaceManager.addNamespace('http://www.xsd2jsonschema.org/example');
jsonSchema = new JsonSchemaFileDraft04();
parent = new JsonSchemaFileDraft04();
xsd = new XsdFile({
uri: 'test/xmlSchemas/unit/choice.xsd',
xml: this.readfile('test/xmlSchemas/unit/choice.xsd')
});
});
it ('shoud instantiate a ForwardReference', function() {
const forwardRef = new ForwardReference(namespaceManager, 'someNamespace', 'someTypeName', parent, jsonSchema, xsd);
expect(forwardRef.ref instanceof JsonSchemaRef).toBeTruthy();
});
it('should clone the forwardReference', function() {
const parent = new JsonSchemaFileDraft04();
const forwardReference = namespaceManager.getTypeReference('anyType', jsonSchema, jsonSchema, xsd);
const clone = forwardReference.clone(parent);
// expect(clone.parent).toBe(parent);
// expect(clone.namespaceManager).toBe(nameSpaceManager);
});
});