Skip to content

Commit ee3d176

Browse files
author
Dennis Labordus
committed
Some refactoring and added more tests.
Signed-off-by: Dennis Labordus <[email protected]>
1 parent dbc65f4 commit ee3d176

File tree

16 files changed

+272
-24
lines changed

16 files changed

+272
-24
lines changed

riseclipse/validator-riseclipse/src/main/java/org/lfenergy/compas/scl/validator/impl/OclFileLoader.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,6 @@ private void logErrorMessage(URI oclUri, List<Diagnostic> errors) {
9292

9393
public void prepareValidator(ComposedEValidator validator) {
9494
URI uri = URI.createFileURI(oclTempFile.toFile().getAbsolutePath());
95-
if (uri == null) {
96-
throw new SclValidatorException(PREPARE_OCL_TEMP_FILES_FAILED, "Unable to create URI for temporary file");
97-
}
9895
CompleteOCLEObjectValidator oclValidator = new CompleteOCLEObjectValidator(SclPackage.eINSTANCE, uri);
9996
validator.addChild(oclValidator);
10097
}

riseclipse/validator-riseclipse/src/main/java/org/lfenergy/compas/scl/validator/impl/SclRiseClipseValidator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.lfenergy.compas.scl.validator.collector.OclFileCollector;
2020
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
2121
import org.lfenergy.compas.scl.validator.model.ValidationError;
22+
import org.lfenergy.compas.scl.validator.util.OclFileUtil;
2223
import org.slf4j.Logger;
2324
import org.slf4j.LoggerFactory;
2425

@@ -27,7 +28,7 @@
2728
import java.util.List;
2829

2930
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.OCL_MODEL_PACKAGE_NOT_FOUND;
30-
import static org.lfenergy.compas.scl.validator.impl.MessageUtil.cleanupMessage;
31+
import static org.lfenergy.compas.scl.validator.util.MessageUtil.cleanupMessage;
3132

3233
public class SclRiseClipseValidator implements SclValidator {
3334
private static final Logger LOGGER = LoggerFactory.getLogger(SclRiseClipseValidator.class);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-FileCopyrightText: 2022 Alliander N.V.
22
//
33
// SPDX-License-Identifier: Apache-2.0
4-
package org.lfenergy.compas.scl.validator.impl;
4+
package org.lfenergy.compas.scl.validator.util;
55

66
public class MessageUtil {
77
MessageUtil() {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-FileCopyrightText: 2022 Alliander N.V.
22
//
33
// SPDX-License-Identifier: Apache-2.0
4-
package org.lfenergy.compas.scl.validator.impl;
4+
package org.lfenergy.compas.scl.validator.util;
55

66
import org.eclipse.emf.common.util.URI;
77
import org.lfenergy.compas.scl.extensions.model.SclFileType;

riseclipse/validator-riseclipse/src/test/data/ocl/Busbar.ocl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
// SPDX-FileCopyrightText: 2022 Alliander N.V.
2-
//
3-
// SPDX-License-Identifier: Apache-2.0
1+
/*
2+
SPDX-FileCopyrightText: 2022 Alliander N.V.
3+
4+
SPDX-License-Identifier: Apache-2.0
5+
*/
46

57
/*
68
*************************************************************************
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
// SPDX-FileCopyrightText: 2022 Alliander N.V.
2+
//
3+
// SPDX-License-Identifier: Apache-2.0
4+
package org.lfenergy.compas.scl.validator.impl;
5+
6+
import org.eclipse.emf.common.util.URI;
7+
import org.eclipse.ocl.pivot.validation.ComposedEValidator;
8+
import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLEObjectValidator;
9+
import org.junit.jupiter.api.AfterEach;
10+
import org.junit.jupiter.api.BeforeEach;
11+
import org.junit.jupiter.api.Test;
12+
import org.junit.jupiter.api.extension.ExtendWith;
13+
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
14+
import org.mockito.junit.jupiter.MockitoExtension;
15+
16+
import java.io.File;
17+
import java.io.IOException;
18+
import java.nio.file.Files;
19+
import java.nio.file.Path;
20+
21+
import static org.junit.jupiter.api.Assertions.assertEquals;
22+
import static org.junit.jupiter.api.Assertions.assertThrows;
23+
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.NO_URI_PASSED;
24+
import static org.lfenergy.compas.scl.validator.util.TestSupportUtil.createSclOcl;
25+
import static org.mockito.Mockito.*;
26+
27+
@ExtendWith(MockitoExtension.class)
28+
class OclFileLoaderTest {
29+
private OclFileLoader loader;
30+
private Path tempFile;
31+
32+
@BeforeEach
33+
void setup() throws IOException {
34+
var tempDirectory = "./target/data/temp";
35+
var tempDirectoryPath = Path.of(tempDirectory);
36+
loader = new OclFileLoader(createSclOcl(), tempDirectoryPath);
37+
tempFile = Files.walk(tempDirectoryPath)
38+
.filter(path -> path.toString().contains(File.separator + "allConstraints"))
39+
.findFirst()
40+
.orElseThrow();
41+
}
42+
43+
@Test
44+
void addOCLDocument_WhenCalledWithNull_ThenExceptionThrown() throws IOException {
45+
var exception = assertThrows(SclValidatorException.class,
46+
() -> loader.addOCLDocument(null));
47+
48+
assertEquals(NO_URI_PASSED, exception.getErrorCode());
49+
}
50+
51+
@Test
52+
void addOCLDocument_WhenCalledWithValidOcl_ThenOclFileIsAddedToTempFile() throws IOException {
53+
var oclFile = findOCL("example.ocl");
54+
55+
loader.addOCLDocument(oclFile);
56+
57+
assertEquals(1, Files.lines(tempFile).count());
58+
}
59+
60+
@Test
61+
void addOCLDocument_WhenCalledWithInvalidOcl_ThenOclFileIsNotAddedToTempFile() throws IOException {
62+
var oclFile = findOCL("invalid.ocl");
63+
64+
loader.addOCLDocument(oclFile);
65+
66+
assertEquals(0, Files.lines(tempFile).count());
67+
}
68+
69+
@Test
70+
void prepareValidator_whenCalledWithValidator_ThenValidatorIsAdded() {
71+
var validator = mock(ComposedEValidator.class);
72+
loader.prepareValidator(validator);
73+
74+
verify(validator, times(1)).addChild(any(CompleteOCLEObjectValidator.class));
75+
}
76+
77+
@AfterEach
78+
void cleanup() {
79+
loader.cleanup();
80+
}
81+
82+
private URI findOCL(String filename) {
83+
var url = getClass().getResource("/ocl/" + filename);
84+
if (url != null) {
85+
return URI.createFileURI(url.getPath());
86+
}
87+
throw new NullPointerException("File /ocl/" + filename + " not found!");
88+
}
89+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// SPDX-FileCopyrightText: 2022 Alliander N.V.
2+
//
3+
// SPDX-License-Identifier: Apache-2.0
4+
package org.lfenergy.compas.scl.validator.impl;
5+
6+
import org.junit.jupiter.api.BeforeEach;
7+
import org.junit.jupiter.api.Test;
8+
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
9+
10+
import java.io.IOException;
11+
12+
import static org.junit.jupiter.api.Assertions.*;
13+
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.LOADING_SCL_FILE_ERROR_CODE;
14+
import static org.lfenergy.compas.scl.validator.util.TestSupportUtil.createSclOcl;
15+
import static org.lfenergy.compas.scl.validator.util.TestSupportUtil.readSCL;
16+
17+
class SclModelLoaderTest {
18+
private SclModelLoader loader;
19+
20+
@BeforeEach
21+
void setup() {
22+
loader = new SclModelLoader(createSclOcl());
23+
}
24+
25+
@Test
26+
void load_WhenCalledWithValidSCXML_ThenResourceLoaded() throws IOException {
27+
var sclData = readSCL("example.scd");
28+
29+
var result = loader.load(sclData);
30+
31+
assertNotNull(result);
32+
}
33+
34+
@Test
35+
void load_WhenCalledWithInvalidSCXML_ThenExceptionThrown() throws IOException {
36+
var sclData = readSCL("invalid.scd");
37+
38+
var exception = assertThrows(SclValidatorException.class,
39+
() -> loader.load(sclData));
40+
41+
assertEquals(LOADING_SCL_FILE_ERROR_CODE, exception.getErrorCode());
42+
}
43+
}

riseclipse/validator-riseclipse/src/test/java/org/lfenergy/compas/scl/validator/impl/SclRiseClipseValidatorTest.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,16 @@
55

66
import org.junit.jupiter.api.BeforeEach;
77
import org.junit.jupiter.api.Test;
8-
import org.junit.jupiter.api.extension.ExtendWith;
98
import org.lfenergy.compas.scl.extensions.model.SclFileType;
109
import org.lfenergy.compas.scl.validator.collector.CompasOclFileCollector;
11-
import org.mockito.junit.jupiter.MockitoExtension;
1210

1311
import java.io.IOException;
1412
import java.nio.file.Path;
1513

1614
import static org.junit.jupiter.api.Assertions.assertEquals;
1715
import static org.junit.jupiter.api.Assertions.assertNotNull;
16+
import static org.lfenergy.compas.scl.validator.util.TestSupportUtil.readSCL;
1817

19-
@ExtendWith(MockitoExtension.class)
2018
class SclRiseClipseValidatorTest {
2119
private SclRiseClipseValidator sclValidator;
2220

@@ -29,18 +27,11 @@ public void setup() {
2927
@Test
3028
void validate_WhenCalled_ThenEmptyListReturned() throws IOException {
3129
var type = SclFileType.CID;
32-
var sclData = readSCL();
30+
var sclData = readSCL("example.scd");
3331

3432
var result = sclValidator.validate(type, sclData);
3533

3634
assertNotNull(result);
3735
assertEquals(15, result.size());
3836
}
39-
40-
private String readSCL() throws IOException {
41-
var inputStream = getClass().getResourceAsStream("/scl/scl_test_file.scd");
42-
assert inputStream != null;
43-
44-
return new String(inputStream.readAllBytes());
45-
}
4637
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// SPDX-FileCopyrightText: 2022 Alliander N.V.
22
//
33
// SPDX-License-Identifier: Apache-2.0
4-
package org.lfenergy.compas.scl.validator.impl;
4+
package org.lfenergy.compas.scl.validator.util;
55

66
import org.junit.jupiter.api.Test;
77

88
import static org.junit.jupiter.api.Assertions.*;
9-
import static org.lfenergy.compas.scl.validator.impl.MessageUtil.cleanupMessage;
9+
import static org.lfenergy.compas.scl.validator.util.MessageUtil.cleanupMessage;
1010

1111
class MessageUtilTest {
1212
@Test
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-FileCopyrightText: 2022 Alliander N.V.
22
//
33
// SPDX-License-Identifier: Apache-2.0
4-
package org.lfenergy.compas.scl.validator.impl;
4+
package org.lfenergy.compas.scl.validator.util;
55

66
import org.eclipse.emf.common.util.URI;
77
import org.junit.jupiter.api.Test;

0 commit comments

Comments
 (0)