10
10
import com .powsybl .commons .reporter .Reporter ;
11
11
import com .powsybl .commons .reporter .ReporterModel ;
12
12
import com .powsybl .computation .ComputationManager ;
13
+ import com .powsybl .iidm .network .BusbarSection ;
13
14
import com .powsybl .iidm .network .Network ;
15
+ import com .powsybl .iidm .network .Terminal ;
16
+ import com .powsybl .iidm .network .Terminal .BusView ;
14
17
import com .powsybl .iidm .network .VariantManager ;
15
18
import com .powsybl .network .store .client .NetworkStoreService ;
16
19
import com .powsybl .network .store .client .PreloadingStrategy ;
17
- import com .powsybl .shortcircuit .*;
20
+ import com .powsybl .shortcircuit .Fault ;
21
+ import com .powsybl .shortcircuit .FaultParameters ;
22
+ import com .powsybl .shortcircuit .ShortCircuitAnalysis ;
23
+ import com .powsybl .shortcircuit .ShortCircuitAnalysisProvider ;
24
+ import com .powsybl .shortcircuit .ShortCircuitAnalysisResult ;
25
+ import com .powsybl .shortcircuit .ShortCircuitParameters ;
18
26
import io .micrometer .core .instrument .simple .SimpleMeterRegistry ;
19
27
import io .micrometer .observation .ObservationRegistry ;
20
28
import lombok .AllArgsConstructor ;
23
31
import org .gridsuite .shortcircuit .server .TestUtils ;
24
32
import org .gridsuite .shortcircuit .server .reports .AbstractReportMapper ;
25
33
import org .gridsuite .shortcircuit .server .repositories .ShortCircuitAnalysisResultRepository ;
34
+ import org .junit .jupiter .api .BeforeEach ;
26
35
import org .junit .jupiter .api .Test ;
27
36
import org .junit .jupiter .api .extension .ExtendWith ;
37
+ import org .mockito .Mock ;
28
38
import org .mockito .MockedStatic ;
29
39
import org .mockito .Mockito ;
30
40
import org .mockito .junit .jupiter .MockitoExtension ;
31
41
import org .springframework .messaging .Message ;
32
42
import org .springframework .messaging .support .GenericMessage ;
33
43
44
+ import java .util .Collections ;
34
45
import java .util .List ;
35
46
import java .util .UUID ;
36
47
import java .util .concurrent .CompletableFuture ;
37
48
import java .util .stream .Stream ;
38
49
39
- import static org .mockito .ArgumentMatchers .*;
50
+ import static org .mockito .ArgumentMatchers .any ;
51
+ import static org .mockito .ArgumentMatchers .anyList ;
52
+ import static org .mockito .ArgumentMatchers .eq ;
40
53
import static org .mockito .Mockito .atLeastOnce ;
54
+ import static org .mockito .Mockito .doReturn ;
55
+ import static org .mockito .Mockito .mock ;
56
+ import static org .mockito .Mockito .mockStatic ;
57
+ import static org .mockito .Mockito .spy ;
41
58
import static org .mockito .Mockito .times ;
59
+ import static org .mockito .Mockito .verify ;
60
+ import static org .mockito .Mockito .when ;
42
61
43
62
@ ExtendWith ({ MockitoExtension .class })
44
63
@ Slf4j
45
64
class ShortCircuitServiceTest implements WithAssertions {
65
+
66
+ @ Mock
67
+ private NetworkStoreService networkStoreService ;
68
+
69
+ @ Mock
70
+ private ReportService reportService ;
71
+
72
+ @ Mock
73
+ private ShortCircuitExecutionService shortCircuitExecutionService ;
74
+
75
+ @ Mock
76
+ private NotificationService notificationService ;
77
+
78
+ @ Mock
79
+ private ShortCircuitAnalysisResultRepository resultRepository ;
80
+
81
+ @ Mock
82
+ private ObjectMapper objectMapper ;
83
+
84
+ @ Mock
85
+ private AbstractReportMapper reportMapper ;
86
+
87
+ @ Mock
88
+ private Network network ;
89
+
90
+ @ Mock
91
+ private VariantManager variantManager ;
92
+
93
+ private ShortCircuitWorkerService workerService ;
94
+
95
+ @ BeforeEach
96
+ void init () {
97
+ workerService = new ShortCircuitWorkerService (
98
+ networkStoreService ,
99
+ reportService ,
100
+ shortCircuitExecutionService ,
101
+ notificationService ,
102
+ resultRepository ,
103
+ objectMapper ,
104
+ Collections .singletonList (reportMapper ),
105
+ new ShortCircuitObserver (ObservationRegistry .create (), new SimpleMeterRegistry ())
106
+ );
107
+ }
108
+
46
109
@ Test
47
110
void testLogsMappersIsCalled () throws Exception {
48
- final AbstractReportMapper reportMapperMocked = Mockito .mock (AbstractReportMapper .class );
49
- final NetworkStoreService networkStoreServiceMocked = Mockito .mock (NetworkStoreService .class );
50
- final ReportService reportServiceMocked = Mockito .mock (ReportService .class );
51
- final ShortCircuitExecutionService shortCircuitExecutionService = Mockito .mock (ShortCircuitExecutionService .class );
52
- final NotificationService notificationServiceMocked = Mockito .mock (NotificationService .class );
53
- final ShortCircuitAnalysisResultRepository resultRepositoryMocked = Mockito .mock (ShortCircuitAnalysisResultRepository .class );
54
- final ObjectMapper objectMapperMocked = Mockito .mock (ObjectMapper .class );
55
-
56
111
final ShortCircuitAnalysisResult analysisResult = new ShortCircuitAnalysisResult (List .of ());
57
- final ShortCircuitAnalysisProvider providerMock = Mockito . spy (new ShortCircuitAnalysisProviderMock (analysisResult ));
112
+ final ShortCircuitAnalysisProvider providerMock = spy (new ShortCircuitAnalysisProviderMock (analysisResult ));
58
113
final Message <String > message = new GenericMessage <>("test" );
59
114
final UUID networkUuid = UUID .fromString ("11111111-1111-1111-1111-111111111111" );
60
115
final UUID reportUuid = UUID .fromString ("22222222-2222-2222-2222-222222222222" );
@@ -63,29 +118,52 @@ void testLogsMappersIsCalled() throws Exception {
63
118
final ShortCircuitRunContext runContext = new ShortCircuitRunContext (networkUuid , null , null ,
64
119
new ShortCircuitParameters (), reportUuid , reporterId , "AllBusesShortCircuitAnalysis" , null , null );
65
120
final ShortCircuitResultContext resultContext = new ShortCircuitResultContext (resultUuid , runContext );
66
- final Network networkMocked = Mockito .mock (Network .class );
67
- final VariantManager variantManagerMocked = Mockito .mock (VariantManager .class );
68
121
final Network .BusView busViewMocked = Mockito .mock (Network .BusView .class );
69
122
final Reporter reporter = new ReporterModel ("test" , "test" );
70
- final ShortCircuitObserver shortCircuitObserver = new ShortCircuitObserver (ObservationRegistry .create (), new SimpleMeterRegistry ());
71
123
72
124
try (final MockedStatic <ShortCircuitAnalysis > shortCircuitAnalysisMockedStatic = TestUtils .injectShortCircuitAnalysisProvider (providerMock );
73
- final MockedStatic <ShortCircuitResultContext > shortCircuitResultContextMockedStatic = Mockito . mockStatic (ShortCircuitResultContext .class )) {
125
+ final MockedStatic <ShortCircuitResultContext > shortCircuitResultContextMockedStatic = mockStatic (ShortCircuitResultContext .class )) {
74
126
shortCircuitAnalysisMockedStatic .when (() -> ShortCircuitAnalysis .runAsync (any (), anyList (), any (), any (), anyList (), any ()))
75
127
.thenAnswer (invocation -> CompletableFuture .completedFuture (analysisResult ));
76
128
shortCircuitAnalysisMockedStatic .when (() -> ShortCircuitAnalysis .runAsync (any (), anyList (), any (), any (), anyList (), any ()))
77
129
.thenAnswer (invocation -> CompletableFuture .completedFuture (analysisResult ));
78
- shortCircuitResultContextMockedStatic .when (() -> ShortCircuitResultContext .fromMessage (message , objectMapperMocked )).thenReturn (resultContext );
79
- Mockito .when (networkStoreServiceMocked .getNetwork (eq (networkUuid ), any (PreloadingStrategy .class ))).thenReturn (networkMocked );
80
- Mockito .when (networkMocked .getVariantManager ()).thenReturn (variantManagerMocked );
81
- Mockito .when (networkMocked .getBusView ()).thenReturn (busViewMocked );
82
- Mockito .when (busViewMocked .getBusStream ()).thenAnswer (invocation -> Stream .empty ());
83
- Mockito .when (reportMapperMocked .processReporter (any (Reporter .class ))).thenReturn (reporter );
84
- final ShortCircuitWorkerService workerService = new ShortCircuitWorkerService (networkStoreServiceMocked , reportServiceMocked , shortCircuitExecutionService , notificationServiceMocked , resultRepositoryMocked , objectMapperMocked , List .of (reportMapperMocked ), shortCircuitObserver );
130
+ shortCircuitResultContextMockedStatic .when (() -> ShortCircuitResultContext .fromMessage (message , objectMapper )).thenReturn (resultContext );
131
+ when (networkStoreService .getNetwork (eq (networkUuid ), any (PreloadingStrategy .class ))).thenReturn (network );
132
+ when (network .getVariantManager ()).thenReturn (variantManager );
133
+ when (network .getBusView ()).thenReturn (busViewMocked );
134
+ when (busViewMocked .getBusStream ()).thenAnswer (invocation -> Stream .empty ());
135
+ when (reportMapper .processReporter (any (Reporter .class ))).thenReturn (reporter );
85
136
workerService .consumeRun ().accept (message );
86
137
shortCircuitAnalysisMockedStatic .verify (ShortCircuitAnalysis ::find , atLeastOnce ());
87
- Mockito .verify (reportMapperMocked , times (1 )).processReporter (any (ReporterModel .class ));
88
- Mockito .verify (reportServiceMocked , times (1 )).sendReport (reportUuid , reporter );
138
+ verify (reportMapper , times (1 )).processReporter (any (ReporterModel .class ));
139
+ verify (reportService , times (1 )).sendReport (reportUuid , reporter );
140
+ }
141
+ }
142
+
143
+ @ Test
144
+ void testGetBusFaultFromOutOfVoltageBus () throws Exception {
145
+ var analysisProvider = spy (new ShortCircuitAnalysisProviderMock (new ShortCircuitAnalysisResult (Collections .emptyList ())));
146
+ var message = new GenericMessage <>("test" );
147
+ var runContext = mock (ShortCircuitRunContext .class );
148
+ var resultContext = new ShortCircuitResultContext (UUID .randomUUID (), runContext );
149
+ var busbarSection = mock (BusbarSection .class );
150
+ var terminal = mock (Terminal .class );
151
+ var busView = mock (BusView .class );
152
+ var busId = "bus1" ;
153
+
154
+ when (runContext .getBusId ()).thenReturn (busId );
155
+ when (networkStoreService .getNetwork (any (), any ())).thenReturn (network );
156
+ doReturn (busbarSection ).when (network ).getIdentifiable (busId );
157
+ when (network .getVariantManager ()).thenReturn (variantManager );
158
+ when (busbarSection .getTerminal ()).thenReturn (terminal );
159
+ when (terminal .getBusView ()).thenReturn (busView );
160
+ when (busView .getBus ()).thenReturn (null );
161
+
162
+ try (var shortCircuitAnalysisMockedStatic = TestUtils .injectShortCircuitAnalysisProvider (analysisProvider );
163
+ var shortCircuitResultContextMockedStatic = mockStatic (ShortCircuitResultContext .class )) {
164
+ shortCircuitResultContextMockedStatic .when (() -> ShortCircuitResultContext .fromMessage (message , objectMapper )).thenReturn (resultContext );
165
+ workerService .consumeRun ().accept (message );
166
+ verify (notificationService ).publishFail (any (), any (), eq ("Selected bus is out of voltage" ), any (), eq (busId ));
89
167
}
90
168
}
91
169
0 commit comments