21
21
*/
22
22
package com .github ._1c_syntax .bsl .languageserver .diagnostics ;
23
23
24
+ import com .github ._1c_syntax .bsl .languageserver .context .DocumentContext ;
25
+ import com .github ._1c_syntax .bsl .languageserver .context .ServerContext ;
24
26
import com .github ._1c_syntax .bsl .languageserver .util .CleanupContextBeforeClassAndAfterEachTestMethod ;
25
27
import com .github ._1c_syntax .bsl .types .MDOType ;
26
28
import com .github ._1c_syntax .bsl .types .MdoReference ;
30
32
import com .github ._1c_syntax .utils .Absolute ;
31
33
import org .junit .jupiter .api .Test ;
32
34
35
+ import java .io .File ;
33
36
import java .util .Collections ;
34
37
import java .util .Optional ;
35
38
import java .util .Set ;
@@ -45,15 +48,36 @@ class DenyIncompleteValuesDiagnosticTest extends AbstractDiagnosticTest<DenyInco
45
48
}
46
49
47
50
private static final String PATH_TO_METADATA = "src/test/resources/metadata/designer" ;
51
+ private static final String PATH_TO_MANAGER_MODULE_FILE = "InformationRegisters/РегистрСведений1/Ext/ManagerModule.bsl" ;
52
+ private static final String PATH_TO_OBJECT_MODULE_FILE = "InformationRegisters/РегистрСведений1/Ext/RecordSetModule.bsl" ;
48
53
49
54
@ Test
50
- void testMdoWithModule () {
51
- checkMockHandler (ModuleType .RecordSetModule , false );
55
+ void testMdoWithoutModule () {
56
+ checkMockHandler (ModuleType .SessionModule , true );
52
57
}
53
58
54
59
@ Test
55
- void testMdoWithoutModule () {
56
- checkMockHandler (ModuleType .SessionModule , true );
60
+ void testMdoWithOneModule () {
61
+ checkMockHandler (ModuleType .ManagerModule , false );
62
+ }
63
+
64
+ @ Test
65
+ void testMdoWithModules () {
66
+ var path = Absolute .path (PATH_TO_METADATA );
67
+ context .setConfigurationRoot (path );
68
+
69
+ var managerDocumentContext = addDocumentContext (context , PATH_TO_MANAGER_MODULE_FILE );
70
+ var recordSetDocumentContext = addDocumentContext (context , PATH_TO_OBJECT_MODULE_FILE );
71
+
72
+ final var diagnostics = getDiagnostics (managerDocumentContext );
73
+
74
+ assertThat (diagnostics , true )
75
+ .hasMessageOnRange ("Не указан флаг \" Запрет незаполненных значений\" у измерения \" Справочник1\" метаданного \" РегистрСведений.РегистрСведений1\" " ,
76
+ 0 , 0 , 9 )
77
+ .hasSize (1 );
78
+
79
+ final var diagnostics2 = getDiagnostics (recordSetDocumentContext );
80
+ assertThat (diagnostics2 , true ).isEmpty ();
57
81
}
58
82
59
83
private void checkMockHandler (ModuleType type , boolean noneModules ) {
@@ -88,4 +112,12 @@ private void checkMockHandler(ModuleType type, boolean noneModules) {
88
112
0 , 0 , 9 )
89
113
.hasSize (1 );
90
114
}
115
+
116
+ private DocumentContext addDocumentContext (ServerContext serverContext , String path ) {
117
+ var file = new File (PATH_TO_METADATA , path );
118
+ var uri = Absolute .uri (file );
119
+ var documentContext = serverContext .addDocument (uri );
120
+ serverContext .rebuildDocument (documentContext );
121
+ return documentContext ;
122
+ }
91
123
}
0 commit comments