private string AssertSemanticTokenEdits(string txt, SemanticTokensOrSemanticTokensEdits expectedEdits, bool isRazor, string previousResultId, out RazorSemanticTokensInfoService outService, RazorSemanticTokensInfoService service = null)
        {
            // Arrange
            if (service is null)
            {
                service = GetDefaultRazorSemanticTokenInfoService();
            }
            outService = service;

            RazorCodeDocument codeDocument;

            if (isRazor)
            {
                codeDocument = CreateRazorDocument(txt, DefaultTagHelpers);
            }
            else
            {
                codeDocument = CreateCodeDocument(txt, DefaultTagHelpers);
            }

            // Act
            var edits = service.GetSemanticTokensEdits(codeDocument, previousResultId);

            // Assert
            if (expectedEdits.IsSemanticTokensEdits)
            {
                for (var i = 0; i < expectedEdits.SemanticTokensEdits.Edits.Count; i++)
                {
                    Assert.Equal(expectedEdits.SemanticTokensEdits.Edits[i], edits.SemanticTokensEdits.Edits[i]);
                }

                return(edits.SemanticTokensEdits.ResultId);
            }
            else
            {
                Assert.Equal(expectedEdits.SemanticTokens.Data, edits.SemanticTokens.Data);

                return(edits.SemanticTokens.ResultId);
            }
        }
예제 #2
0
        private string AssertSemanticTokenEdits(string txt, SemanticTokensFullOrDelta expectedEdits, bool isRazor, string previousResultId, out RazorSemanticTokensInfoService outService, RazorSemanticTokensInfoService service = null)
        {
            // Arrange
            if (service is null)
            {
                service = GetDefaultRazorSemanticTokenInfoService();
            }
            outService = service;

            RazorCodeDocument codeDocument;

            if (isRazor)
            {
                codeDocument = CreateRazorDocument(txt, DefaultTagHelpers);
            }
            else
            {
                codeDocument = CreateCodeDocument(txt, DefaultTagHelpers);
            }

            // Act
            var edits = service.GetSemanticTokensEdits(codeDocument, previousResultId);

            // Assert
            if (expectedEdits.IsDelta)
            {
                for (var i = 0; i < expectedEdits.Delta.Edits.Count(); i++)
                {
                    Assert.Equal(expectedEdits.Delta.Edits.ElementAt(i), edits.Delta.Edits.ElementAt(i), SemanticEditComparer.Instance);
                }

                return(edits.Delta.ResultId);
            }
            else
            {
                Assert.Equal(expectedEdits.Full.Data, edits.Full.Data, ImmutableArrayIntComparer.Instance);

                return(edits.Full.ResultId);
            }
        }
예제 #3
0
        private string AssertSemanticTokens(string txt, IEnumerable <int> expectedData, bool isRazor, out RazorSemanticTokensInfoService outService, RazorSemanticTokensInfoService service = null, OmniSharpRange location = null)
        {
            // Arrange
            if (service is null)
            {
                service = GetDefaultRazorSemanticTokenInfoService();
            }
            outService = service;

            RazorCodeDocument codeDocument;

            if (isRazor)
            {
                codeDocument = CreateRazorDocument(txt, DefaultTagHelpers);
            }
            else
            {
                codeDocument = CreateCodeDocument(txt, DefaultTagHelpers);
            }

            // Act
            var tokens = service.GetSemanticTokens(codeDocument, location);

            // Assert

            Assert.Equal(expectedData, tokens.Data);

            return(tokens.ResultId);
        }