Skip to content

Commit 15bce3a

Browse files
author
Dennis Labordus
committed
Added Unit Tests.
Signed-off-by: Dennis Labordus <[email protected]>
1 parent 886e623 commit 15bce3a

File tree

6 files changed

+113
-1
lines changed

6 files changed

+113
-1
lines changed

service/src/main/java/org/lfenergy/compas/scl/validator/common/NsdocInfo.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.io.IOException;
1515

1616
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.DETERMINING_ID_FAILED;
17+
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.LOADING_NSDOC_FILE_FAILED;
1718
import static org.lfenergy.compas.scl.validator.util.StaxUtil.getAttributeValue;
1819
import static org.lfenergy.compas.scl.validator.util.StaxUtil.isElement;
1920

@@ -31,7 +32,7 @@ public NsdocInfo(File file) {
3132
processEvent(reader.nextEvent());
3233
}
3334
} catch (IOException | XMLStreamException exp) {
34-
throw new SclValidatorException(DETERMINING_ID_FAILED, "Error loading NSDoc File " + file.getName() + "'.", exp);
35+
throw new SclValidatorException(LOADING_NSDOC_FILE_FAILED, "Error loading NSDoc File " + file.getName() + "'.", exp);
3536
}
3637

3738
if (id == null) {
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- SPDX-FileCopyrightText: 2022 Alliander -->
3+
<!-- -->
4+
<!-- SPDX-License-Identifier: Apache-2.0 -->
5+
6+
<NSDoc>
7+
</NSDoc>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- SPDX-FileCopyrightText: 2022 Alliander -->
3+
<!-- -->
4+
<!-- SPDX-License-Identifier: Apache-2.0 -->
5+
6+
<NSDoc id="IEC 61850-7-3"
7+
version="1010"
8+
revision="X"
9+
release="1"
10+
lang="en">
11+
<Doc id="IEC61850_7_3.CDCControl::ENC.q.desc"><![CDATA[Some DA description]]></Doc>
12+
<Doc id="IEC61850_7_3.AnalogueValue::AnalogueValue.i.desc"><![CDATA[Some i description]]></Doc>
13+
</NSDoc>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- SPDX-FileCopyrightText: 2022 Alliander -->
3+
<!-- -->
4+
<!-- SPDX-License-Identifier: Apache-2.0 -->
5+
6+
<NSDoc id="IEC 61850-7-4"
7+
version="1010"
8+
revision="X"
9+
release="1"
10+
lang="en">
11+
<Doc id="IEC61850_7_4.LNGroupL::LLN0.cl.title"><![CDATA[Some LN title]]></Doc>
12+
<Doc id="IEC61850_7_4.LNGroupL::LLN0.Beh.desc"><![CDATA[Some DO description]]></Doc>
13+
<Doc id="IEC61850_7_4.AbstractLNsCommon::DomainLN.Beh.desc"><![CDATA[Some DomainLN Descriptions]]></Doc>
14+
</NSDoc>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package org.lfenergy.compas.scl.validator.common;
2+
3+
import org.junit.jupiter.api.BeforeEach;
4+
import org.junit.jupiter.api.Test;
5+
import org.lfenergy.compas.scl.validator.model.NsdocFile;
6+
7+
import java.util.ArrayList;
8+
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
10+
import static org.junit.jupiter.api.Assertions.assertNotNull;
11+
12+
class NsdocFinderTest {
13+
private NsdocFinder finder;
14+
15+
@BeforeEach
16+
void setup() {
17+
finder = new NsdocFinder("./src/test/data/nsdoc");
18+
}
19+
20+
@Test
21+
void getNsdocFiles_WhenCalledWithConfiguredDirectory_ThenExpectCorrectNumberOfEntriesReturned() {
22+
var files = finder.getNsdocFiles();
23+
24+
assertNotNull(files);
25+
// 2 Files expected, because 1 file is invalid.
26+
assertEquals(2, files.size());
27+
28+
var fileList = new ArrayList<>(files);
29+
assertEquals("IEC 61850-7-3", fileList.get(0).getNsDocId());
30+
assertEquals("IEC 61850-7-4", fileList.get(1).getNsDocId());
31+
}
32+
33+
@Test
34+
void getNsdocFiles_WhenCalledWithNonExistingDirectory_ThenNoEntriesReturned() {
35+
finder = new NsdocFinder("./src/text/data/non-existing");
36+
var files = finder.getNsdocFiles();
37+
38+
assertNotNull(files);
39+
assertEquals(0, files.size());
40+
}
41+
42+
@Test
43+
void getNsdocFile_WhenUseTheIDsToRetrieveEntries_ThenContentIsReturned() {
44+
var files = finder.getNsdocFiles();
45+
var content = files.stream()
46+
.map(NsdocFile::getId)
47+
.map(id -> finder.getNsdocFile(id))
48+
.findFirst()
49+
.orElse(null);
50+
51+
assertNotNull(content);
52+
}
53+
}

service/src/test/java/org/lfenergy/compas/scl/validator/common/NsdocInfoTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,30 @@
33
// SPDX-License-Identifier: Apache-2.0
44
package org.lfenergy.compas.scl.validator.common;
55

6+
import org.junit.jupiter.api.Test;
7+
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
8+
9+
import java.io.File;
10+
11+
import static org.junit.jupiter.api.Assertions.*;
12+
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.DETERMINING_ID_FAILED;
13+
614
class NsdocInfoTest {
15+
@Test
16+
void getId_WhenCalledWithValidNsDocFile_ThenIdFromFileReturned() {
17+
var nsdocFile = new File(getClass().getResource("/nsdoc/testFile74.nsdoc").getFile());
18+
19+
var nsdocInfo = new NsdocInfo(nsdocFile);
20+
21+
assertNotNull(nsdocInfo.getId());
22+
assertEquals("IEC 61850-7-4", nsdocInfo.getId());
23+
}
24+
25+
@Test
26+
void getId_WhenCalledWithInvalidNsDocFile_ThenExceptionThrownDuringConstruction() {
27+
var nsdocFile = new File(getClass().getResource("/nsdoc/invalid.nsdoc").getFile());
728

29+
var exception = assertThrows(SclValidatorException.class, () -> new NsdocInfo(nsdocFile));
30+
assertNotNull(DETERMINING_ID_FAILED, exception.getErrorCode());
31+
}
832
}

0 commit comments

Comments
 (0)