import { XmlParser } from './XmlParser';
import { ParserFactory } from './ParserFactory';
import { FileExtension } from '../TemplateType';
import { JinjaXMLParser } from './JinjaXML';
fdescribe('ImportsTabComponent', () => {
const parserFactory = new ParserFactory();
beforeEach(() => {
});
it('Test xml Parser', () => {
const fileContent = `
$vdns_int_private_ip_0
$vdns_onap_private_ip_0
false
dddd
`;
const parser = parserFactory.getParser(fileContent, FileExtension.XML);
const res = parser.getVariables(fileContent);
console.log(res);
expect(res.length).toEqual(2);
expect(res[0]).toEqual('vdns_int_private_ip_0');
expect(res[1]).toEqual('vdns_onap_private_ip_0');
});
it('Test J2 XML Parser', () => {
const fileContent = `
[hostname]
`;
const parser = parserFactory.getParser(fileContent, FileExtension.Jinja);
const res = parser.getVariables(fileContent);
console.log(typeof (res));
console.log(res);
expect(res.length).toEqual(1);
expect(res[0]).toEqual('hostname');
});
it('Test J2 YML Parser', () => {
const fileContent = `apiVersion: v1
kind: Service
metadata:
name: {{ .Values.vpg_name_0 }}-ssh
labels:
vnf-name: {{ .Values.vnf_name }}
vf-module-name: {{ .Values.vpg_name_0 }}
release: {{ .Release.Name }}
chart: {{ .Chart.Name }}
spec:
type: NodePort
ports:
port: 22
nodePort: \${vpg-management-port}
selector:
vf-module-name: {{ .Values.vpg_name_0 }}
release: {{ .Release.Name }}
chart: {{ .Chart.Name }}`;
const parser = parserFactory.getParser(fileContent, FileExtension.Jinja);
const res = parser.getVariables(fileContent);
console.log(res);
expect(res.length).toEqual(4);
expect(res[0]).toEqual('vpg_name_0');
expect(res[1]).toEqual('vnf_name');
});
it('Test ASCII Parser', () => {
const fileContent = `
config system interface
edit "internal"
set vdom "root"
set ip $(subnet1_fgt_ip) 255.255.255.0 #1
set allowaccess ping https ssh http fgfm capwap
set type hard-switch
set stp enable
set role lan
next
end
config system dhcp server
edit 1
set dns-service default
set default-gateway $(subnet1_fgt_ip) #2
set netmask 255.255.255.0
set interface "internal"
config ip-range
edit 1
set start-ip $(subnet1_fgt_ip)4,150 #3
set end-ip $(subnet1_fgt_ip)4,200 #4
next
end
next
end
Options
`;
const parser = parserFactory.getParser(fileContent, FileExtension.Jinja);
const res = parser.getVariables(fileContent);
console.log(res);
expect(res.length).toEqual(1);
expect(res[0]).toEqual('subnet1_fgt_ip');
});
it('Test Velocity YML Parser', () => {
const fileContent = `apiVersion: v1
kind: Service
metadata:
name: {{ .Values.vpg_name_0 }}-ssh
labels:
vnf-name: {{ .Values.vnf_name }}
vf-module-name: {{ .Values.vpg_name_0 }}
release: {{ .Release.Name }}
chart: {{ .Chart.Name }}
spec:
type: NodePort
ports:
port: 22
nodePort: \${vpg-management-port}
selector:
vf-module-name: {{ .Values.vpg_name_0 }}
release: {{ .Release.Name }}
chart: {{ .Chart.Name }}`;
const parser = parserFactory.getParser(fileContent, FileExtension.Velocity);
const res = parser.getVariables(fileContent);
console.log(res);
expect(res.length).toEqual(1);
expect(res[0]).toEqual('vpg-management-port');
});
});