public async Task HighlightAsync_HighlightsCode(string dummyCode, string dummyLanguageName, string expectedResult) { // Arrange IHighlightJSService highlightJSService = CreateHighlightJSService(); // Act string?result = await highlightJSService.HighlightAsync(dummyCode, dummyLanguageName).ConfigureAwait(false); // Assert Assert.Equal(expectedResult, result, ignoreLineEndingDifferences: true); }
public async Task HighlightAsync_AppendsClassPrefixToClassesIfClassPrefixIsNotNullOtherwiseDoesNotAppendAnything(string dummyClassPrefix, string expectedResult) { // Arrange const string dummyCode = @"public string ExampleFunction(string arg) { // Example comment return arg + ""dummyString""; }"; const string dummyLanguageName = "csharp"; IHighlightJSService highlightJSService = CreateHighlightJSService(); // Act string?result = await highlightJSService.HighlightAsync(dummyCode, dummyLanguageName, dummyClassPrefix).ConfigureAwait(false); // Assert Assert.Equal(expectedResult, result); }
public void HighlightAsync_IsThreadSafe() { // Arrange const string dummyCode = @"public string ExampleFunction(string arg) { // Example comment return arg + ""dummyString""; }"; const string dummyLanguageAlias = "csharp"; IHighlightJSService testSubject = CreateHighlightJSService(); // Act var results = new ConcurrentQueue <string?>(); const int numThreads = 5; var threads = new List <Thread>(); for (int i = 0; i < numThreads; i++) { var thread = new Thread(() => results.Enqueue(testSubject.HighlightAsync(dummyCode, dummyLanguageAlias).GetAwaiter().GetResult())); threads.Add(thread); thread.Start(); } foreach (Thread thread in threads) { thread.Join(); } // Assert Assert.Equal(numThreads, results.Count); foreach (string?result in results) { Assert.Equal(@"<span class=""hljs-function""><span class=""hljs-keyword"">public</span> <span class=""hljs-built_in"">string</span> <span class=""hljs-title"">ExampleFunction</span>(<span class=""hljs-params""><span class=""hljs-built_in"">string</span> arg</span>)</span> { <span class=""hljs-comment"">// Example comment</span> <span class=""hljs-keyword"">return</span> arg + <span class=""hljs-string"">"dummyString"</span>; }", result); } }