|
4 | 4 |
|
5 | 5 | package org.lfenergy.compas.sct.commons;
|
6 | 6 |
|
7 |
| -import org.assertj.core.api.SoftAssertions; |
8 | 7 | import org.junit.jupiter.api.BeforeEach;
|
9 | 8 | import org.junit.jupiter.api.Tag;
|
10 | 9 | import org.junit.jupiter.api.Test;
|
|
22 | 21 | import org.lfenergy.compas.sct.commons.util.PrivateEnum;
|
23 | 22 |
|
24 | 23 | import java.util.List;
|
25 |
| -import java.util.Optional; |
26 | 24 | import java.util.stream.Stream;
|
27 | 25 |
|
28 | 26 | import static org.assertj.core.api.Assertions.assertThat;
|
@@ -595,37 +593,40 @@ void epfPostProcessing_when_exist_unused_channel_should_update_setSrcRef() {
|
595 | 593 | // When
|
596 | 594 | extRefEditorService.epfPostProcessing(scd);
|
597 | 595 | // Then
|
598 |
| - SoftAssertions softly = new SoftAssertions(); |
599 |
| - |
600 |
| - Optional<TDAI> setSrcRefInInRef1 = findDai(scd, "IED_NAME1", "LDEPF", "InRef1", "setSrcRef"); |
601 |
| - Optional<TDAI> purposeInInRef1 = findDai(scd, "IED_NAME1", "LDEPF", "InRef1", "purpose"); |
602 |
| - assertThat(purposeInInRef1).isPresent(); |
603 |
| - softly.assertThat(purposeInInRef1.get().getVal().getFirst().getValue()).doesNotStartWith("DYN_LDEPF_DIGITAL CHANNEL"); |
604 |
| - softly.assertThat(purposeInInRef1.get().getVal().getFirst().getValue()).doesNotStartWith("DYN_LDEPF_ANALOG CHANNEL"); |
605 |
| - assertThat(setSrcRefInInRef1).isPresent(); |
606 |
| - softly.assertThat(setSrcRefInInRef1.get().isSetVal()).isFalse(); |
607 |
| - |
608 |
| - Optional<TDAI> setSrcRefInInRef2 = findDai(scd, "IED_NAME1", "LDEPF", "InRef2", "setSrcRef"); |
609 |
| - Optional<TDAI> purposeInInRef2 = findDai(scd, "IED_NAME1", "LDEPF", "InRef2", "purpose"); |
610 |
| - assertThat(purposeInInRef2).isPresent(); |
611 |
| - softly.assertThat(purposeInInRef2.get().getVal().getFirst().getValue()).startsWith("DYN_LDEPF_DIGITAL CHANNEL"); |
612 |
| - assertThat(setSrcRefInInRef2).isPresent(); |
613 |
| - softly.assertThat(setSrcRefInInRef2.get().getVal().getFirst().getValue()).isEqualTo("IED_NAME1LDEPF/LPHD0.Proxy"); |
614 |
| - |
615 |
| - Optional<TDAI> setSrcRefInInRef3 = findDai(scd, "IED_NAME1", "LDEPF", "InRef3", "setSrcRef"); |
616 |
| - Optional<TDAI> purposeInInRef3 = findDai(scd, "IED_NAME1", "LDEPF", "InRef3", "purpose"); |
617 |
| - assertThat(purposeInInRef3).isPresent(); |
618 |
| - softly.assertThat(purposeInInRef3.get().getVal().getFirst().getValue()).startsWith("DYN_LDEPF_DIGITAL CHANNEL"); |
619 |
| - assertThat(setSrcRefInInRef3).isPresent(); |
620 |
| - softly.assertThat(setSrcRefInInRef3.get().getVal().getFirst().getValue()).isEqualTo("IED_NAME1LDEPF/LPHD0.Proxy"); |
621 |
| - |
622 |
| - Optional<TDAI> setSrcRefInInRef4 = findDai(scd, "IED_NAME1", "LDEPF", "InRef4", "setSrcRef"); |
623 |
| - Optional<TDAI> purposeInInRef4 = findDai(scd, "IED_NAME1", "LDEPF", "InRef4", "purpose"); |
624 |
| - assertThat(purposeInInRef4).isPresent(); |
625 |
| - softly.assertThat(purposeInInRef4.get().getVal().getFirst().getValue()).startsWith("DYN_LDEPF_ANALOG CHANNEL"); |
626 |
| - assertThat(setSrcRefInInRef4).isPresent(); |
627 |
| - softly.assertThat(setSrcRefInInRef4.get().getVal().getFirst().getValue()).isEqualTo("IED_NAME1LDEPF/LPHD0.Proxy"); |
628 |
| - softly.assertAll(); |
| 596 | + assertThat(scd.getIED()) |
| 597 | + .filteredOn(tied -> tied.getName().equals("IED_NAME1")) |
| 598 | + .flatExtracting(TIED::getAccessPoint) |
| 599 | + .extracting(TAccessPoint::getServer) |
| 600 | + .flatExtracting(TServer::getLDevice) |
| 601 | + .filteredOn(tlDevice -> tlDevice.getInst().equals(LDEVICE_LDEPF)) |
| 602 | + .extracting(tlDevice -> tlDevice.getLN0().getDOI()) |
| 603 | + .allSatisfy(tdois -> { |
| 604 | + assertThat(tdois) |
| 605 | + .filteredOn(tdoi -> tdoi.getName().equals("InRef1")) |
| 606 | + .allSatisfy(tdoi -> { |
| 607 | + assertThat(getDai(tdoi,"purpose").getVal().getFirst().getValue()).doesNotStartWith("DYN_LDEPF_DIGITAL CHANNEL"); |
| 608 | + assertThat(getDai(tdoi,"purpose").getVal().getFirst().getValue()).doesNotStartWith("DYN_LDEPF_ANALOG CHANNEL"); |
| 609 | + assertThat(getDai(tdoi, "setSrcRef").isSetVal()).isFalse(); |
| 610 | + }); |
| 611 | + assertThat(tdois) |
| 612 | + .filteredOn(tdoi -> tdoi.getName().equals("InRef2")) |
| 613 | + .allSatisfy(tdoi -> { |
| 614 | + assertThat(getDaiValue(tdoi,"purpose")).startsWith("DYN_LDEPF_DIGITAL CHANNEL"); |
| 615 | + assertThat(getDaiValue(tdoi, "setSrcRef")).isEqualTo("IED_NAME1LDEPF/LPHD0.Proxy"); |
| 616 | + }); |
| 617 | + assertThat(tdois) |
| 618 | + .filteredOn(tdoi -> tdoi.getName().equals("InRef3")) |
| 619 | + .allSatisfy(tdoi -> { |
| 620 | + assertThat(getDaiValue(tdoi,"purpose")).startsWith("DYN_LDEPF_DIGITAL CHANNEL"); |
| 621 | + assertThat(getDaiValue(tdoi, "setSrcRef")).isEqualTo("IED_NAME1LDEPF/LPHD0.Proxy"); |
| 622 | + }); |
| 623 | + assertThat(tdois) |
| 624 | + .filteredOn(tdoi -> tdoi.getName().equals("InRef4")) |
| 625 | + .allSatisfy(tdoi -> { |
| 626 | + assertThat(getDaiValue(tdoi,"purpose")).startsWith("DYN_LDEPF_ANALOG CHANNEL"); |
| 627 | + assertThat(getDaiValue(tdoi, "setSrcRef")).isEqualTo("IED_NAME1LDEPF/LPHD0.Proxy"); |
| 628 | + }); |
| 629 | + }); |
629 | 630 | }
|
630 | 631 |
|
631 | 632 | @ParameterizedTest()
|
@@ -996,4 +997,23 @@ void manageBindingForLDEPF_should_update_binding_properties_when_external_bindin
|
996 | 997 | });
|
997 | 998 | }
|
998 | 999 |
|
| 1000 | + @Test |
| 1001 | + void epfPostProcessing_when_exist_unused_channel_and_ldepf_off_should_not_update_Inref_setSrcRef() { |
| 1002 | + // Given |
| 1003 | + SCL scd = SclTestMarshaller.getSCLFromFile("/scd-ldepf/scd_ldepf_postProcessing_when_ln0_off.xml"); |
| 1004 | + // When |
| 1005 | + extRefEditorService.epfPostProcessing(scd); |
| 1006 | + // Then |
| 1007 | + assertThat(scd.getIED()) |
| 1008 | + .filteredOn(tied -> tied.getName().equals("IED_NAME1")) |
| 1009 | + .flatExtracting(TIED::getAccessPoint) |
| 1010 | + .extracting(TAccessPoint::getServer) |
| 1011 | + .flatExtracting(TServer::getLDevice) |
| 1012 | + .filteredOn(tlDevice -> tlDevice.getInst().equals(LDEVICE_LDEPF)) |
| 1013 | + .flatExtracting(tlDevice -> tlDevice.getLN0().getDOI()) |
| 1014 | + .filteredOn(tdoi -> tdoi.getName().startsWith("InRef")) |
| 1015 | + .extracting(tdoi -> getDai(tdoi, "setSrcRef")) |
| 1016 | + .filteredOn(TDAI::isSetVal) |
| 1017 | + .allSatisfy(tdai -> assertThat(tdai.getVal().getFirst().getValue()).isNotEqualTo("IED_NAME1LDEPF/LPHD0.Proxy")); |
| 1018 | + } |
999 | 1019 | }
|
0 commit comments