Skip to content

Commit

Permalink
SLVS-1592 Update TaintStore with taints from SLCore (#5821)
Browse files Browse the repository at this point in the history
  • Loading branch information
georgii-borovinskikh-sonarsource authored and vnaskos-sonar committed Nov 18, 2024
1 parent c4e925c commit 97546b3
Show file tree
Hide file tree
Showing 14 changed files with 945 additions and 1,319 deletions.
6 changes: 3 additions & 3 deletions src/Core/ThreadHandlingExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ public static Task RunOnBackgroundThread(this IThreadHandling threadHandling, Ac
syncMethod();
return Task.CompletedTask;
});
public static Task RunOnBackgroundThread(this IThreadHandling threadHandling, Func<Task> asyncMethod) => Task.FromResult(threadHandling.RunOnBackgroundThread(async () =>

public static Task RunOnBackgroundThread(this IThreadHandling threadHandling, Func<Task> asyncMethod) => threadHandling.RunOnBackgroundThread(async () =>
{
await asyncMethod();
return 0;
}));
});
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*
* SonarLint for Visual Studio
* Copyright (C) 2016-2024 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

using SonarLint.VisualStudio.IssueVisualization.Security.Taint;
using SonarLint.VisualStudio.SLCore.State;

namespace SonarLint.VisualStudio.IssueVisualization.Security.UnitTests.Taint;

[TestClass]
public class TaintIssuesConfigurationScopeMonitorTests
{
private TaintIssuesConfigurationScopeMonitor testSubject;
private IActiveConfigScopeTracker activeConfigScopeTracker;
private ITaintIssuesSynchronizer taintIssuesSynchronizer;

[TestInitialize]
public void TestInitialize()
{
activeConfigScopeTracker = Substitute.For<IActiveConfigScopeTracker>();
taintIssuesSynchronizer = Substitute.For<ITaintIssuesSynchronizer>();
testSubject = new TaintIssuesConfigurationScopeMonitor(activeConfigScopeTracker, taintIssuesSynchronizer);
}

[TestMethod]
public void Ctor_SubscribesToConfigurationScopeEvents() =>
activeConfigScopeTracker.Received().CurrentConfigurationScopeChanged += Arg.Any<EventHandler>();

[TestMethod]
public void Dispose_UnsubscribesToConfigurationScopeEvents()
{
testSubject.Dispose();

activeConfigScopeTracker.Received().CurrentConfigurationScopeChanged -= Arg.Any<EventHandler>();
}

[TestMethod]
public void ConfigScopeChangedEvent_CallsTaintSynchronizer()
{
var configurationScope = new ConfigurationScope("config scope");
activeConfigScopeTracker.Current.Returns(configurationScope);

activeConfigScopeTracker.CurrentConfigurationScopeChanged += Raise.Event<EventHandler>();

taintIssuesSynchronizer.Received(1).UpdateTaintVulnerabilitiesAsync(configurationScope);
}
}
Loading

0 comments on commit 97546b3

Please sign in to comment.