/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/VisualStudio/Core/Test/Diagnostics/TestTableManagerProvider.vb
152 строки
7 KB
Cyrus Najmabadi
Organize VB imports
27 июн 2025, 21:53
27 июн 2025, 21:53
e9c47fd
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports System.Collections.Immutable Imports Microsoft.VisualStudio.Shell.TableManager Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.Diagnostics Friend Class TestTableManagerProvider Implements ITableManagerProvider Public Function GetTableManager(identifier As String) As ITableManager Implements ITableManagerProvider.GetTableManager Return New TestTableManager(identifier) End Function Public Class TestTableManager Implements ITableManager Private ReadOnly _identifier As String Private ReadOnly _sources As Dictionary(Of ITableDataSource, String()) Private ReadOnly _sinks As Dictionary(Of ITableDataSink, IDisposable) Public Sub New(identifier As String) Me._identifier = identifier Me._sources = New Dictionary(Of ITableDataSource, String())() Me._sinks = New Dictionary(Of ITableDataSink, IDisposable)() End Sub Public ReadOnly Property Identifier As String Implements ITableManager.Identifier Get Return _identifier End Get End Property Public ReadOnly Property Sources As IReadOnlyList(Of ITableDataSource) Implements ITableManager.Sources Get Return _sources.Keys.ToImmutableArray() End Get End Property Public Event SourcesChanged As EventHandler Implements ITableManager.SourcesChanged Public Function AddSource(source As ITableDataSource, ParamArray columns() As String) As Boolean Implements ITableManager.AddSource _sources.Add(source, columns) Dim sink = New TestSink() Dim subscription = source.Subscribe(sink) _sinks.Add(sink, subscription) Return True End Function Public Function AddSource(source As ITableDataSource, columns As IReadOnlyCollection(Of String)) As Boolean Implements ITableManager.AddSource Return AddSource(source, columns.ToArray()) End Function Public Function GetColumnsForSources(sources As IEnumerable(Of ITableDataSource)) As IReadOnlyList(Of String) Implements ITableManager.GetColumnsForSources Dim list = New List(Of String) For Each source In _sources.Keys Dim columns As String() = Nothing If _sources.TryGetValue(source, columns) Then list.AddRange(columns) End If Next Return list End Function Public Function RemoveSource(source As ITableDataSource) As Boolean Implements ITableManager.RemoveSource Return _sources.Remove(source) End Function Public ReadOnly Property Sinks_TestOnly As IEnumerable(Of KeyValuePair(Of ITableDataSink, IDisposable)) Get Return _sinks End Get End Property Public Class TestSink Implements ITableDataSink Public ReadOnly Entries As HashSet(Of ITableEntriesSnapshotFactory) Public Sub New() Me.Entries = New HashSet(Of ITableEntriesSnapshotFactory)() End Sub Public Sub AddFactory(newFactory As ITableEntriesSnapshotFactory, Optional removeEverything As Boolean = False) Implements ITableDataSink.AddFactory Me.Entries.Add(newFactory) End Sub Public Sub RemoveFactory(oldFactory As ITableEntriesSnapshotFactory) Implements ITableDataSink.RemoveFactory Me.Entries.Remove(oldFactory) End Sub Public Sub ReplaceFactory(oldFactory As ITableEntriesSnapshotFactory, newFactory As ITableEntriesSnapshotFactory) Implements ITableDataSink.ReplaceFactory Me.Entries.Remove(oldFactory) Me.Entries.Add(newFactory) End Sub Public Sub FactorySnapshotChanged(factory As ITableEntriesSnapshotFactory) Implements ITableDataSink.FactorySnapshotChanged End Sub Public Sub AddEntries(newEntries As IReadOnlyList(Of ITableEntry), Optional removeEverything As Boolean = False) Implements ITableDataSink.AddEntries Throw New NotImplementedException() End Sub Public Sub AddSnapshot(newSnapshot As ITableEntriesSnapshot, Optional removeEverything As Boolean = False) Implements ITableDataSink.AddSnapshot Throw New NotImplementedException() End Sub Public Sub RemoveEntries(oldEntries As IReadOnlyList(Of ITableEntry)) Implements ITableDataSink.RemoveEntries Throw New NotImplementedException() End Sub Public Sub RemoveSnapshot(oldSnapshot As ITableEntriesSnapshot) Implements ITableDataSink.RemoveSnapshot Throw New NotImplementedException() End Sub Public Sub ReplaceEntries(oldEntries As IReadOnlyList(Of ITableEntry), newEntries As IReadOnlyList(Of ITableEntry)) Implements ITableDataSink.ReplaceEntries Throw New NotImplementedException() End Sub Public Sub ReplaceSnapshot(oldSnapshot As ITableEntriesSnapshot, newSnapshot As ITableEntriesSnapshot) Implements ITableDataSink.ReplaceSnapshot Throw New NotImplementedException() End Sub Public Sub RemoveAllEntries() Implements ITableDataSink.RemoveAllEntries Throw New NotImplementedException() End Sub Public Sub RemoveAllSnapshots() Implements ITableDataSink.RemoveAllSnapshots Throw New NotImplementedException() End Sub Public Sub RemoveAllFactories() Implements ITableDataSink.RemoveAllFactories Throw New NotImplementedException() End Sub Public Property IsStable As Boolean Implements ITableDataSink.IsStable Get Return True End Get Set(value As Boolean) End Set End Property End Class End Class End Class End Namespace