Skip to content

Commit b7dc91a

Browse files
committed
added isUpdatable in DoLinkedToDa
Signed-off-by: Samir Romdhani <[email protected]>
1 parent 69d2959 commit b7dc91a

File tree

4 files changed

+162
-0
lines changed

4 files changed

+162
-0
lines changed

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/domain/DataAttribute.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,19 @@ public String toString(){
4646
return daName + (getBdaNames().isEmpty() ? StringUtils.EMPTY : "." + String.join(".", getBdaNames()));
4747
}
4848

49+
/**
50+
* Check if DA Object is updatable
51+
* @return boolean value of DA state
52+
*/
53+
public boolean isUpdatable(){
54+
return isValImport() &&
55+
(fc == TFCEnum.CF ||
56+
fc == TFCEnum.DC ||
57+
fc == TFCEnum.SG ||
58+
fc == TFCEnum.SP ||
59+
fc == TFCEnum.ST ||
60+
fc == TFCEnum.SE
61+
);
62+
}
4963

5064
}

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/domain/DoLinkedToDa.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77

88
import lombok.*;
99

10+
import static org.lfenergy.compas.sct.commons.util.CommonConstants.MOD_DO_NAME;
11+
import static org.lfenergy.compas.sct.commons.util.CommonConstants.STVAL_DA_NAME;
12+
1013

1114
@Getter
1215
@Setter
@@ -30,5 +33,22 @@ public String getDaRef() {
3033
return dataAttribute != null ? dataAttribute.toString() : "";
3134
}
3235

36+
/**
37+
* Checks if DA/DO is updatable
38+
*
39+
* @return true if updatable, false otherwise
40+
*/
41+
public boolean isUpdatable() {
42+
return isDOModDAstVal() || dataAttribute.isUpdatable();
43+
}
44+
45+
/**
46+
* Checks if DO is Mod and DA is stVal
47+
*
48+
* @return true if DO is "Mod" and DA is "stVal", false otherwise
49+
*/
50+
private boolean isDOModDAstVal() {
51+
return dataObject.getDoName().equals(MOD_DO_NAME) && dataAttribute.getDaName().equals(STVAL_DA_NAME);
52+
}
3353
}
3454

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// SPDX-FileCopyrightText: 2024 RTE FRANCE
2+
//
3+
// SPDX-License-Identifier: Apache-2.0
4+
5+
package org.lfenergy.compas.sct.commons.domain;
6+
7+
import org.junit.jupiter.api.Test;
8+
import org.junit.jupiter.params.ParameterizedTest;
9+
import org.junit.jupiter.params.provider.CsvSource;
10+
import org.lfenergy.compas.scl2007b4.model.TFCEnum;
11+
12+
import java.util.List;
13+
14+
import static org.assertj.core.api.Assertions.assertThat;
15+
16+
class DataAttributeTest {
17+
18+
@Test
19+
void isUpdatable_should_return_true_whenValImportIsTrue() {
20+
// Given
21+
DataAttribute dataAttribute = new DataAttribute();
22+
dataAttribute.setDaName("daName");
23+
dataAttribute.setBdaNames(List.of("bdaName1"));
24+
dataAttribute.setValImport(true);
25+
dataAttribute.setFc(TFCEnum.SE);
26+
// When Then
27+
assertThat(dataAttribute.isUpdatable()).isTrue();
28+
}
29+
30+
@Test
31+
void isUpdatable_should_return_false_whenValImportIsFalse() {
32+
// Given
33+
DataAttribute dataAttribute = new DataAttribute();
34+
dataAttribute.setDaName("daName");
35+
dataAttribute.setBdaNames(List.of("bdaName1"));
36+
dataAttribute.setValImport(false);
37+
dataAttribute.setFc(TFCEnum.SE);
38+
// When Then
39+
assertThat(dataAttribute.isUpdatable()).isFalse();
40+
}
41+
42+
43+
@Test
44+
void isUpdatable_should_return_true_whenFcIsNotAppropriate() {
45+
// Given
46+
DataAttribute dataAttribute = new DataAttribute();
47+
dataAttribute.setDaName("daName");
48+
dataAttribute.setBdaNames(List.of("bdaName1"));
49+
dataAttribute.setValImport(true);
50+
dataAttribute.setFc(TFCEnum.MX);
51+
// When Then
52+
assertThat(dataAttribute.isUpdatable()).isFalse();
53+
}
54+
55+
56+
@ParameterizedTest
57+
@CsvSource(value = {"MX:true:false", "CF:true:true", "CF:false:false",
58+
"DC:false:false", "DC:false:false",
59+
"SG:false:false", "SG:false:false",
60+
"SP:false:false", "SP:false:false",
61+
"ST:false:false", "ST:false:false",
62+
"SE:false:false", "SE:false:false"}, delimiter = ':')
63+
void isUpdatable_should_return_ExpectedValue(String fcVal, boolean valImport, boolean expected) {
64+
// Given
65+
DataAttribute dataAttribute = new DataAttribute();
66+
dataAttribute.setDaName("daName");
67+
dataAttribute.setBdaNames(List.of("bdaName1"));
68+
dataAttribute.setValImport(valImport);
69+
dataAttribute.setFc(TFCEnum.valueOf(fcVal));
70+
// When Then
71+
assertThat(dataAttribute.isUpdatable()).isEqualTo(expected);
72+
73+
}
74+
75+
}

sct-commons/src/test/java/org/lfenergy/compas/sct/commons/domain/DoLinkedToDaTest.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,57 @@ void test_getDaRef() {
6767
assertThat(doLinkedToDa.getDaRef()).isEqualTo("daName.bdaName1");
6868
}
6969

70+
@Test
71+
void isUpdatable_should_return_true_whenIsDOModDAstVal() {
72+
// Given
73+
DataObject dataObject = new DataObject();
74+
dataObject.setDoName("Mod");
75+
DataAttribute dataAttribute = new DataAttribute();
76+
dataAttribute.setDaName("stVal");
77+
78+
DoLinkedToDa doLinkedToDa = new DoLinkedToDa();
79+
doLinkedToDa.setDataObject(dataObject);
80+
doLinkedToDa.setDataAttribute(dataAttribute);
81+
// When Then
82+
assertThat(doLinkedToDa.isUpdatable()).isTrue();
83+
}
84+
85+
@Test
86+
void isUpdatable_should_return_true_whenValImportIsTrue() {
87+
// Given
88+
DataObject dataObject = new DataObject();
89+
dataObject.setDoName("doName");
90+
dataObject.setSdoNames(List.of("sdoName1"));
91+
DataAttribute dataAttribute = new DataAttribute();
92+
dataAttribute.setDaName("daName");
93+
dataAttribute.setBdaNames(List.of("bdaName1"));
94+
dataAttribute.setValImport(true);
95+
dataAttribute.setFc(TFCEnum.SE);
96+
97+
DoLinkedToDa doLinkedToDa = new DoLinkedToDa();
98+
doLinkedToDa.setDataObject(dataObject);
99+
doLinkedToDa.setDataAttribute(dataAttribute);
100+
// When Then
101+
assertThat(doLinkedToDa.isUpdatable()).isTrue();
102+
}
103+
104+
@Test
105+
void isUpdatable_should_return_false_whenValImportIsFalse() {
106+
// Given
107+
DataObject dataObject = new DataObject();
108+
dataObject.setDoName("doName");
109+
dataObject.setSdoNames(List.of("sdoName1"));
110+
DataAttribute dataAttribute = new DataAttribute();
111+
dataAttribute.setDaName("daName");
112+
dataAttribute.setBdaNames(List.of("bdaName1"));
113+
dataAttribute.setValImport(false);
114+
dataAttribute.setFc(TFCEnum.SE);
115+
116+
DoLinkedToDa doLinkedToDa = new DoLinkedToDa();
117+
doLinkedToDa.setDataObject(dataObject);
118+
doLinkedToDa.setDataAttribute(dataAttribute);
119+
// When Then
120+
assertThat(doLinkedToDa.isUpdatable()).isFalse();
121+
}
122+
70123
}

0 commit comments

Comments
 (0)