Skip to content

Commit 98d9f1c

Browse files
committed
feat(#405): Remove LDname limitation
Signed-off-by: gleizesDor <[email protected]>
1 parent 7161d87 commit 98d9f1c

File tree

2 files changed

+24
-48
lines changed

2 files changed

+24
-48
lines changed

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/scl/ldevice/LDeviceAdapter.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,15 +164,10 @@ public String getXPath() {
164164

165165
/**
166166
* Updates LDevice name by combining IED name and LDevice ldInst value
167-
*
168-
* @throws ScdException throws when renaming LDevice and new name has more than 33 caracteres
169167
*/
170-
public void updateLDName() throws ScdException {
168+
public void updateLDName() {
171169
String newLdName = parentAdapter.getCurrentElem().getName() + currentElem.getInst();
172-
if (newLdName.length() > 33) {
173-
throw new ScdException(newLdName + "(IED.name + LDevice.inst) has more than 33 characters");
174-
}
175-
// renaming ldName
170+
// renaming ldName; Carefull because the maximum ldevice name length is 64 based on xsd
176171
currentElem.setLdName(newLdName);
177172
}
178173

sct-commons/src/test/java/org/lfenergy/compas/sct/commons/scl/ldevice/LDeviceAdapterTest.java

Lines changed: 22 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -39,55 +39,36 @@
3939

4040
class LDeviceAdapterTest {
4141

42-
private IEDAdapter iAdapter;
42+
private IEDAdapter iedAdapter;
4343

4444
@BeforeEach
4545
public void init() {
4646
SCL scd = SclTestMarshaller.getSCLFromFile("/ied-test-schema-conf/ied_unit_test.xml");
4747
SclRootAdapter sclRootAdapter = new SclRootAdapter(scd);
48-
iAdapter = assertDoesNotThrow(() -> sclRootAdapter.getIEDAdapterByName("IED_NAME"));
48+
iedAdapter = assertDoesNotThrow(() -> sclRootAdapter.getIEDAdapterByName("IED_NAME"));
4949
}
5050

5151
@Test
52-
void updateLDName_when_ldName_pass_33_characters_should_throw_exception() {
52+
void updateLDName_when_ldName_should_update() {
5353
// Given
54-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.findLDeviceAdapterByLdInst("LD_INS1").get());
55-
lDeviceAdapter.updateLDName();
56-
assertThat(lDeviceAdapter.getLdName()).isEqualTo("IED_NAMELD_INS1");
57-
assertThat(lDeviceAdapter.getInst()).isEqualTo("LD_INS1");
58-
String iedName = new Random().ints(97, 122)
59-
.limit(27)
60-
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
61-
.toString();
62-
iAdapter.setIEDName(iedName);
63-
// When Then
64-
assertThatThrownBy(lDeviceAdapter::updateLDName)
65-
.isInstanceOf(ScdException.class)
66-
.hasMessageContaining("has more than 33 characters");
67-
}
54+
SCL std = SclTestMarshaller.getSCLFromFile("/std/std_sample.std");
55+
TIED tied = std.getIED().getFirst();
56+
TLDevice tlDevice = tied.getAccessPoint().getFirst().getServer().getLDevice().getFirst();
57+
LDeviceAdapter lDeviceAdapter = new LDeviceAdapter(new IEDAdapter(new SclRootAdapter(std), tied), tlDevice);
6858

69-
@Test
70-
void updateLDName_when_ldName_less_than_33_characters_should_not_throw_exception() {
71-
// Given
72-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.findLDeviceAdapterByLdInst("LD_INS1").get());
59+
//When
7360
lDeviceAdapter.updateLDName();
74-
assertThat(lDeviceAdapter.getLdName()).isEqualTo("IED_NAMELD_INS1");
75-
assertThat(lDeviceAdapter.getInst()).isEqualTo("LD_INS1");
76-
String iedName = new Random().ints(97, 122)
77-
.limit(26)
78-
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
79-
.toString();
80-
iAdapter.setIEDName(iedName);
81-
// When Then
82-
assertThatCode(lDeviceAdapter::updateLDName).doesNotThrowAnyException();
83-
assertThat(lDeviceAdapter.getLdName()).isEqualTo(iedName+"LD_INS1");
61+
62+
//When
63+
assertThat(lDeviceAdapter.getLdName()).isEqualTo("IED4d4fe1a8cda64cf88a5ee4176a1a0eefLDSUIED");
64+
assertThat(lDeviceAdapter.getInst()).isEqualTo("LDSUIED");
8465
}
8566

8667
@Test
8768
@Tag("issue-321")
8869
void testGetLNAdapters() {
8970
// Given
90-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.findLDeviceAdapterByLdInst("LD_INS2").get());
71+
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.findLDeviceAdapterByLdInst("LD_INS2").get());
9172
assertThat(lDeviceAdapter.getLNAdapters()).hasSize(1);
9273
// When Then
9374
assertDoesNotThrow(() -> lDeviceAdapter.getLNAdapter("ANCR","1",null));
@@ -99,7 +80,7 @@ void testGetLNAdapters() {
9980
@Test
10081
void findLnAdapter_shouldReturnAdapter(){
10182
// Given
102-
LDeviceAdapter lDeviceAdapter = iAdapter.findLDeviceAdapterByLdInst("LD_INS2").get();
83+
LDeviceAdapter lDeviceAdapter = iedAdapter.findLDeviceAdapterByLdInst("LD_INS2").get();
10384
// When
10485
Optional<LNAdapter> lnAdapter = lDeviceAdapter.findLnAdapter("ANCR", "1", null);
10586
// Then
@@ -110,7 +91,7 @@ void findLnAdapter_shouldReturnAdapter(){
11091
@Test
11192
void getExtRefBinders_whenExist_shouldReturnExtRefBindingInfo() {
11293
//Given
113-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.findLDeviceAdapterByLdInst("LD_INS2").get());
94+
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.findLDeviceAdapterByLdInst("LD_INS2").get());
11495
ExtRefSignalInfo signalInfo = DTO.createExtRefSignalInfo();
11596
signalInfo.setPDO("Do.sdo1");
11697
signalInfo.setPDA("da.bda1.bda2.bda3");
@@ -122,7 +103,7 @@ void getExtRefBinders_whenExist_shouldReturnExtRefBindingInfo() {
122103
@Test
123104
void getExtRefBinders_when_PLN_NotMatch_shouldReturnEmptyList() {
124105
//Given
125-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
106+
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
126107
ExtRefSignalInfo signalInfo = new ExtRefSignalInfo();
127108
signalInfo.setPLN("CSWI");
128109
//When Then
@@ -133,7 +114,7 @@ void getExtRefBinders_when_PLN_NotMatch_shouldReturnEmptyList() {
133114
@Test
134115
void getExtRefBinders_when_PLN_NotSet_shouldReturnEmptyList() {
135116
//Given
136-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
117+
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
137118
ExtRefSignalInfo signalInfo = new ExtRefSignalInfo();
138119
//When Then
139120
assertDoesNotThrow(()-> lDeviceAdapter.getExtRefBinders(signalInfo));
@@ -144,7 +125,7 @@ void getExtRefBinders_when_PLN_NotSet_shouldReturnEmptyList() {
144125
@Tag("issue-321")
145126
void getExtRefInfo_should_return_expected_list_of_ExtRefInfo() {
146127
// Given
147-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
128+
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
148129
// When
149130
List<ExtRefInfo> extRefInfoList = assertDoesNotThrow(lDeviceAdapter::getExtRefInfo);
150131
// Then
@@ -155,7 +136,7 @@ void getExtRefInfo_should_return_expected_list_of_ExtRefInfo() {
155136
@Tag("issue-321")
156137
void TestGetDAI() {
157138
// Given
158-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.getLDeviceAdapterByLdInst("LD_INS1"));
139+
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.getLDeviceAdapterByLdInst("LD_INS1"));
159140
// When
160141
var dataAttributeRefs = lDeviceAdapter.getDAI(new DataAttributeRef(),true);
161142
// Then
@@ -170,7 +151,7 @@ void TestGetDAI() {
170151
assertThat(dataAttributeRefs).hasSize(4);
171152

172153
// Given
173-
lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.findLDeviceAdapterByLdInst("LD_INS2").get());
154+
lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.findLDeviceAdapterByLdInst("LD_INS2").get());
174155
filter.setLnClass("ANCR");
175156
filter.setLnInst("1");
176157
// When
@@ -183,7 +164,7 @@ void TestGetDAI() {
183164
@Tag("issue-321")
184165
void addPrivate_with_type_and_source_should_create_Private() {
185166
// Given
186-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
167+
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
187168
TPrivate tPrivate = new TPrivate();
188169
tPrivate.setType("Private Type");
189170
tPrivate.setSource("Private Source");
@@ -230,7 +211,7 @@ void getLDeviceStatus_should_succeed() {
230211
@Test
231212
void getLNAdaptersIncludingLN0_should_return_expected_list_of_AbstractLNAdapter() {
232213
//Given
233-
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
214+
LDeviceAdapter lDeviceAdapter = assertDoesNotThrow(()-> iedAdapter.getLDeviceAdapterByLdInst("LD_INS2"));
234215
//When
235216
List<AbstractLNAdapter<?>> lnAdapters = lDeviceAdapter.getLNAdaptersIncludingLN0();
236217
//Then

0 commit comments

Comments
 (0)