|
24 | 24 | import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration;
|
25 | 25 | import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.Mode;
|
26 | 26 | import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.SkipSupport;
|
27 |
| -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.SubsystemFilter; |
28 | 27 | import com.github._1c_syntax.bsl.languageserver.context.DocumentContext;
|
29 | 28 | import com.github._1c_syntax.bsl.languageserver.context.FileType;
|
30 | 29 | import com.github._1c_syntax.bsl.languageserver.context.ServerContext;
|
31 | 30 | import com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure.DiagnosticsConfiguration;
|
32 | 31 | import com.github._1c_syntax.bsl.languageserver.util.CleanupContextBeforeClassAndAfterClass;
|
33 | 32 | import com.github._1c_syntax.bsl.languageserver.util.TestUtils;
|
34 | 33 | import com.github._1c_syntax.mdclasses.common.CompatibilityMode;
|
35 |
| -import com.github._1c_syntax.mdclasses.mdo.AbstractMDOForm; |
36 | 34 | import com.github._1c_syntax.mdclasses.mdo.support.ModuleType;
|
37 | 35 | import com.github._1c_syntax.mdclasses.supportconf.SupportConfiguration;
|
38 | 36 | import com.github._1c_syntax.mdclasses.supportconf.SupportVariant;
|
|
43 | 41 | import org.springframework.beans.factory.annotation.Autowired;
|
44 | 42 | import org.springframework.boot.test.context.SpringBootTest;
|
45 | 43 |
|
46 |
| -import java.util.ArrayList; |
47 | 44 | import java.util.Collections;
|
48 | 45 | import java.util.HashMap;
|
49 | 46 | import java.util.List;
|
50 | 47 | import java.util.Map;
|
51 |
| -import java.util.Optional; |
| 48 | +import java.util.TreeSet; |
52 | 49 |
|
53 | 50 | import static org.assertj.core.api.Assertions.assertThat;
|
54 | 51 | import static org.mockito.Mockito.doReturn;
|
55 | 52 | import static org.mockito.Mockito.mock;
|
56 | 53 | import static org.mockito.Mockito.spy;
|
57 |
| -import static org.mockito.Mockito.when; |
58 | 54 |
|
59 | 55 | @SpringBootTest
|
60 | 56 | @CleanupContextBeforeClassAndAfterClass
|
@@ -311,69 +307,102 @@ void testDiagnosticSubsystemsIncludeCheck() {
|
311 | 307 | .isNotEmpty();
|
312 | 308 |
|
313 | 309 | configuration.getDiagnosticsOptions().getSubsystemsFilter()
|
314 |
| - .setInclude(new ArrayList<>(List.of("ПодсистемаКотройНет"))); |
| 310 | + .setInclude(new TreeSet<>(List.of("ПодсистемаКотройНет"))); |
315 | 311 | assertThat(diagnosticsConfiguration.diagnostics(documentContext))
|
316 | 312 | .isEmpty();
|
317 | 313 |
|
318 | 314 | configuration.getDiagnosticsOptions().getSubsystemsFilter()
|
319 |
| - .setInclude(new ArrayList<>(List.of("Подсистема1"))); |
| 315 | + .setInclude(new TreeSet<>(List.of("Подсистема1"))); |
320 | 316 | assertThat(diagnosticsConfiguration.diagnostics(documentContext))
|
321 | 317 | .isNotEmpty();
|
322 | 318 |
|
323 | 319 | configuration.getDiagnosticsOptions().getSubsystemsFilter()
|
324 |
| - .setInclude(new ArrayList<>(List.of("Подсистема1_1"))); |
| 320 | + .setInclude(new TreeSet<>(List.of("Подсистема1_1"))); |
325 | 321 | assertThat(diagnosticsConfiguration.diagnostics(documentContext))
|
326 | 322 | .isNotEmpty();
|
327 | 323 |
|
328 | 324 | configuration.getDiagnosticsOptions().getSubsystemsFilter()
|
329 |
| - .setInclude(new ArrayList<>(List.of("Подсистема1_1_1"))); |
| 325 | + .setInclude(new TreeSet<>(List.of("Подсистема1_1_1"))); |
330 | 326 | assertThat(diagnosticsConfiguration.diagnostics(documentContext))
|
331 | 327 | .isNotEmpty();
|
332 | 328 |
|
333 | 329 | configuration.getDiagnosticsOptions().getSubsystemsFilter()
|
334 |
| - .setInclude(new ArrayList<>(List.of("Подсистема1_1_3"))); |
| 330 | + .setInclude(new TreeSet<>(List.of("Подсистема1_1_3"))); |
335 | 331 | assertThat(diagnosticsConfiguration.diagnostics(documentContext))
|
336 | 332 | .isEmpty();
|
337 | 333 |
|
338 | 334 | configuration.getDiagnosticsOptions().getSubsystemsFilter()
|
339 |
| - .setInclude(new ArrayList<>(List.of("Подсистема2"))); |
| 335 | + .setInclude(new TreeSet<>(List.of("Подсистема2"))); |
340 | 336 | assertThat(diagnosticsConfiguration.diagnostics(documentContext))
|
341 | 337 | .isNotEmpty();
|
342 | 338 |
|
343 | 339 | configuration.getDiagnosticsOptions().getSubsystemsFilter()
|
344 |
| - .setInclude(new ArrayList<>(List.of("Подсистема3"))); |
| 340 | + .setInclude(new TreeSet<>(List.of("Подсистема3"))); |
345 | 341 | assertThat(diagnosticsConfiguration.diagnostics(documentContext))
|
346 | 342 | .isEmpty();
|
347 | 343 |
|
348 | 344 | }
|
349 |
| -// |
350 |
| -// @Test |
351 |
| -// void testDiagnosticSubsystemsExcludeCheck() { |
352 |
| -// |
353 |
| -// var PATH_TO_METADATA = "src/test/resources/metadata/subSystemFilter"; |
354 |
| -// context.clear(); |
355 |
| -// context.setConfigurationRoot(Absolute.path(PATH_TO_METADATA)); |
356 |
| -// context.populateContext(); |
357 |
| -// |
358 |
| -// documentContext = spy(TestUtils.getDocumentContext("А = 0")); |
359 |
| -// |
360 |
| -// var mdObject = context.getConfiguration().getChildren().stream() |
361 |
| -// .filter(mdo -> mdo.getName().equalsIgnoreCase("ОбщийМодуль1")) |
362 |
| -// .findFirst(); |
363 |
| -// |
364 |
| -// doReturn(mdObject).when(documentContext).getMdObject(); |
365 |
| -// // Без фильтра |
366 |
| -// assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
367 |
| -// .isNotEmpty(); |
368 |
| -// |
369 |
| -// configuration.getDiagnosticsOptions().getSubsystemsFilter() |
370 |
| -// .setExclude(new ArrayList<>(List.of("ПодсистемаКотройНет"))); |
371 |
| -// assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
372 |
| -// .isNotNull(); |
373 |
| -// configuration.getDiagnosticsOptions().getSubsystemsFilter() |
374 |
| -// .setExclude(new ArrayList<>(List.of("Подсистема2"))); |
375 |
| -// assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
376 |
| -// .isNull(); |
377 |
| -// } |
| 345 | + |
| 346 | + // |
| 347 | + @Test |
| 348 | + void testDiagnosticSubsystemsExcludeCheck() { |
| 349 | + |
| 350 | + var PATH_TO_METADATA = "src/test/resources/metadata/subSystemFilter"; |
| 351 | + context.clear(); |
| 352 | + context.setConfigurationRoot(Absolute.path(PATH_TO_METADATA)); |
| 353 | + context.populateContext(); |
| 354 | + |
| 355 | + documentContext = spy(TestUtils.getDocumentContext("А = 0")); |
| 356 | + |
| 357 | + var mdObject = context.getConfiguration().getChildren().stream() |
| 358 | + .filter(mdo -> mdo.getName().equalsIgnoreCase("ОбщийМодуль1")) |
| 359 | + .findFirst(); |
| 360 | + |
| 361 | + doReturn(mdObject).when(documentContext).getMdObject(); |
| 362 | + // Без фильтра |
| 363 | + assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
| 364 | + .isNotEmpty(); |
| 365 | + |
| 366 | + configuration.getDiagnosticsOptions().getSubsystemsFilter() |
| 367 | + .setExclude(new TreeSet<>(List.of("ПодсистемаКотройНет"))); |
| 368 | + assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
| 369 | + .isNotEmpty(); |
| 370 | + configuration.getDiagnosticsOptions().getSubsystemsFilter() |
| 371 | + .setExclude(new TreeSet<>(List.of("Подсистема2"))); |
| 372 | + assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
| 373 | + .isEmpty(); |
| 374 | + } |
| 375 | + |
| 376 | + @Test |
| 377 | + void testDiagnosticSubsystemsIncludeExcludeCheck() { |
| 378 | + |
| 379 | + var PATH_TO_METADATA = "src/test/resources/metadata/subSystemFilter"; |
| 380 | + context.clear(); |
| 381 | + context.setConfigurationRoot(Absolute.path(PATH_TO_METADATA)); |
| 382 | + context.populateContext(); |
| 383 | + |
| 384 | + documentContext = spy(TestUtils.getDocumentContext("А = 0")); |
| 385 | + |
| 386 | + var mdObject = context.getConfiguration().getChildren().stream() |
| 387 | + .filter(mdo -> mdo.getName().equalsIgnoreCase("ОбщийМодуль1")) |
| 388 | + .findFirst(); |
| 389 | + |
| 390 | + doReturn(mdObject).when(documentContext).getMdObject(); |
| 391 | + // Без фильтра |
| 392 | + assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
| 393 | + .isNotEmpty(); |
| 394 | + |
| 395 | + configuration.getDiagnosticsOptions().getSubsystemsFilter() |
| 396 | + .setInclude(new TreeSet<>(List.of("Подсистема2"))); |
| 397 | + configuration.getDiagnosticsOptions().getSubsystemsFilter() |
| 398 | + .setExclude(new TreeSet<>(List.of("Подсистема2_2"))); |
| 399 | + assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
| 400 | + .isEmpty(); |
| 401 | + |
| 402 | + configuration.getDiagnosticsOptions().getSubsystemsFilter() |
| 403 | + .setExclude(new TreeSet<>(List.of("Подсистема2"))); |
| 404 | + assertThat(diagnosticsConfiguration.diagnostics(documentContext)) |
| 405 | + .isEmpty(); |
| 406 | + } |
378 | 407 |
|
379 | 408 | }
|
0 commit comments