Skip to content

Commit

Permalink
падающий кейс для присванием с менеджерами объектов
Browse files Browse the repository at this point in the history
уточнил пред.тест
  • Loading branch information
artbear committed Jul 3, 2022
1 parent 6d10965 commit f32f949
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ void getReferencesToCommonModuleMethodFromAssignment() {
// when
final var referencesTo = referenceIndex.getReferencesTo(calledMethodSymbol).stream()
.filter(reference -> reference.getUri().equals(uri))
.filter(reference -> Ranges.containsRange(methodSymbol.getRange(), reference.toLocation().getRange()))
.collect(Collectors.toList());

// then
Expand All @@ -197,6 +198,44 @@ void getReferencesToCommonModuleMethodFromAssignment() {
assertThat(referencesTo).hasSize(3);
}

@Test
void getReferencesToFullPathModuleMethodFromAssignment() {
// given
var documentContext = TestUtils.getDocumentContextFromFile(PATH_TO_FILE);
var methodSymbol = documentContext.getSymbolTree().getMethodSymbol("Тест_ВызовЧерезПолноеИмяОбъекта").orElseThrow();
var commonModuleContext = serverContext.getDocument("InformationRegister.РегистрСведений1", ModuleType.ManagerModule).orElseThrow();
var calledMethodSymbol = commonModuleContext.getSymbolTree().getMethodSymbol("НеУстаревшаяФункция").orElseThrow();

var uri = documentContext.getUri();

// when
final var referencesTo = referenceIndex.getReferencesTo(calledMethodSymbol).stream()
.filter(reference -> reference.getUri().equals(uri))
.filter(reference -> Ranges.containsRange(methodSymbol.getRange(), reference.toLocation().getRange()))
.collect(Collectors.toList());

// then
var reference = referencesTo.get(0);
assertThat(reference.getFrom()).isEqualTo(methodSymbol);
assertThat(reference.getSymbol()).isEqualTo(calledMethodSymbol);
assertThat(reference.getSelectionRange()).isEqualTo(Ranges.create(22, 42, 61));
assertThat(reference.getUri()).isEqualTo(uri);

reference = referencesTo.get(1);
assertThat(reference.getFrom()).isEqualTo(methodSymbol);
assertThat(reference.getSymbol()).isEqualTo(calledMethodSymbol);
assertThat(reference.getSelectionRange()).isEqualTo(Ranges.create(23, 42, 61));
assertThat(reference.getUri()).isEqualTo(uri);

reference = referencesTo.get(2);
assertThat(reference.getFrom()).isEqualTo(methodSymbol);
assertThat(reference.getSymbol()).isEqualTo(calledMethodSymbol);
assertThat(reference.getSelectionRange()).isEqualTo(Ranges.create(24, 38, 57));
assertThat(reference.getUri()).isEqualTo(uri);

assertThat(referencesTo).hasSize(3);
}

@Test
void getReferencesToCommonModuleMethodWithEqualNameWitMethodParam() {

Expand Down
8 changes: 7 additions & 1 deletion src/test/resources/references/ReferenceIndex.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,10 @@
ПервыйОбщийМодуль.НеУстаревшаяФункция().Добавить(); // ошибка
ПервыйОбщийМодуль.НеУстаревшаяФункция().Реквизит = 10; // ошибка
Б = ПервыйОбщийМодуль.НеУстаревшаяФункция().Добавить(); // ошибка
КонецПроцедуры
КонецПроцедуры

Процедура Тест_ВызовЧерезПолноеИмяОбъекта()
А = РегистрыСведений.РегистрСведений1.НеУстаревшаяФункция();
Б = РегистрыСведений.РегистрСведений1.НеУстаревшаяФункция().Добавить();
РегистрыСведений.РегистрСведений1.НеУстаревшаяФункция().Реквизит = 10;
КонецПроцедуры

0 comments on commit f32f949

Please sign in to comment.