Repository navigation
Expand file tree
/
Copy pathLogControl.spec.ts
More file actions
80 lines (74 loc) · 4.62 KB
/
Copy pathLogControl.spec.ts
File metadata and controls
80 lines (74 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import { expect } from "chai";
import { describeLogControl } from "./LogControl.js";
const scl = new DOMParser().parseFromString(
`<SCL xmlns="http://www.iec.ch/61850/2003/SCL" >
<IED name="IED1">
<AccessPoint name="AP1">
<Server>
<LDevice inst="lDevice">
<LN0 lnClass="LLN0" inst="" lnType="LLN0">
<DataSet name="baseDataSet" >
<FCDA iedName="IED1" ldInst="lDevice" lnClass="XCBR" lnInst="1" doName="Pos" daName="stVal" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" prefix="" lnClass="XCBR" lnInst="1" doName="Pos" daName="q" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" lnClass="LLN0" doName="Beh" daName="stVal" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" prefix="" lnClass="LLN0" lnInst="" doName="Beh" fc="ST" />
</DataSet>
<DataSet name="equalDataSet" >
<FCDA iedName="IED1" ldInst="lDevice" prefix="" lnClass="XCBR" lnInst="1" doName="Pos" daName="stVal" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" lnClass="XCBR" lnInst="1" doName="Pos" daName="q" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" prefix="" lnClass="LLN0" lnInst="" doName="Beh" daName="stVal" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" lnClass="LLN0" doName="Beh" fc="ST" />
</DataSet>
<DataSet name="diffDataSet" >
<Private type="private" />
<FCDA iedName="IED1" ldInst="lDevice" prefix="" lnClass="XCBR" lnInst="1" doName="Pos" daName="stVal" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" lnClass="XCBR" lnInst="1" doName="Pos" daName="q" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" prefix="" lnClass="LLN0" lnInst="" doName="Beh" daName="stVal" fc="ST" />
<FCDA iedName="IED1" ldInst="lDevice" lnClass="LLN0" doName="Beh" fc="ST" />
</DataSet>
<DataSet name="invalidDataSet" >
<FCDA ldInst="lDevice" prefix="" lnClass="XCBR" lnInst="1" doName="Pos" daName="stVal" fc="ST" />
</DataSet>
<DataSet name="invalidDataSet" >
<FCDA ldInst="lDevice" prefix="" lnClass="XCBR" lnInst="1" doName="Pos" daName="stVal" fc="ST" />
</DataSet>
<LogControl name="baseLogControl" datSet="baseDataSet" ldInst="lDevice" prefix="" lnClass="LLN0" logName="logName" logEna="true" bufTime="0" >
<TrgOps dchg="false" qchg="false" dupd="false" period="false" gi="false" />
</LogControl>
<LogControl name="diffLogControl" datSet="diffDataSet" intgPd="1000" reasonCode="false" logEna="false" logName="logName" >
<TrgOps dchg="false" qchg="true" dupd="false" period="true" gi="false" />
</LogControl>
<LogControl name="equalLogControl" datSet="equalDataSet" ldInst="lDevice" logName="logName" reasonCode="true" />
<LogControl name="missingLogName" datSet="diffDataSet" />
<LogControl name="invalidLogControl" datSet="invalidDataSet" />
</LN0>
</LDevice>
</Server>
</AccessPoint>
</IED>
</SCL>`,
"application/xml",
);
const baseLogControl = scl.querySelector(`LogControl[name="baseLogControl"]`)!;
const equalLogControl = scl.querySelector(
'LogControl[name="equalLogControl"]',
)!;
const diffLogControl = scl.querySelector('LogControl[name="diffLogControl"]')!;
const invalidLogControl = scl.querySelector(
'LogControl[name="invalidLogControl"]',
)!;
const missingLogName = scl.querySelector('LogControl[name="missingLogName"]')!;
describe("Description for SCL schema type LogControl", () => {
it("returns undefined with invalid data", () =>
expect(describeLogControl(invalidLogControl)).to.be.undefined);
it("returns undefined with invalid logName attribute", () =>
expect(describeLogControl(missingLogName)).to.be.undefined);
it("returns same description with semantically equal Control's", () =>
expect(JSON.stringify(describeLogControl(baseLogControl))).to.equal(
JSON.stringify(describeLogControl(equalLogControl)),
));
it("returns different description with unequal Control elements", () =>
expect(JSON.stringify(describeLogControl(baseLogControl))).to.not.equal(
JSON.stringify(describeLogControl(diffLogControl)),
));
});