Example #1
0
            public ConcreteOnceInitializedOnceDisposedUnderLockAsync(JoinableTaskContextNode joinableTaskContextNode, Func <Task>?disposed)
                : base(joinableTaskContextNode)
            {
                disposed ??= () => Task.CompletedTask;

                _disposed = disposed;
            }
Example #2
0
        public CompletionHandlerTest()
        {
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskContext = joinableTaskContext.Context;
            Uri = new Uri("C:/path/to/file.razor");
        }
        public SolutionRestoreWorker(
            IAsyncServiceProvider asyncServiceProvider,
            Lazy <IVsSolutionManager> solutionManager,
            Lazy <INuGetLockService> lockService,
            Lazy <Common.ILogger> logger,
            Lazy <INuGetErrorList> errorList,
            Lazy <IOutputConsoleProvider> outputConsoleProvider)
        {
            if (asyncServiceProvider == null)
            {
                throw new ArgumentNullException(nameof(asyncServiceProvider));
            }

            if (solutionManager == null)
            {
                throw new ArgumentNullException(nameof(solutionManager));
            }

            if (lockService == null)
            {
                throw new ArgumentNullException(nameof(lockService));
            }

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            if (errorList == null)
            {
                throw new ArgumentNullException(nameof(errorList));
            }

            if (outputConsoleProvider == null)
            {
                throw new ArgumentNullException(nameof(outputConsoleProvider));
            }

            _asyncServiceProvider = asyncServiceProvider;
            _solutionManager      = solutionManager;
            _lockService          = lockService;
            _logger                = logger;
            _errorList             = errorList;
            _outputConsoleProvider = outputConsoleProvider;

            var joinableTaskContextNode = new JoinableTaskContextNode(ThreadHelper.JoinableTaskContext);

            _joinableCollection = joinableTaskContextNode.CreateCollection();
            JoinableTaskFactory = joinableTaskContextNode.CreateFactory(_joinableCollection);

            _componentModel = new AsyncLazy <IComponentModel>(async() =>
            {
                return(await asyncServiceProvider.GetServiceAsync <SComponentModel, IComponentModel>());
            },
                                                              JoinableTaskFactory);
            _solutionLoadedEvent = new AsyncManualResetEvent();
            _isCompleteEvent     = new AsyncManualResetEvent();

            Reset();
        }
Example #4
0
        public DefaultRazorLanguageClientMiddleLayerTest()
        {
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskContext = joinableTaskContext.Context;
            Uri = new Uri("C:/path/to/file.razor");
        }
        public OnTypeFormattingHandlerTest()
        {
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskContext = joinableTaskContext.Context;
            Uri = new Uri("C:/path/to/file.razor");
        }
Example #6
0
 public TestableDependenciesGraphProvider(
     IDependenciesGraphProjectContextProvider projectContextProvider,
     SVsServiceProvider serviceProvider,
     JoinableTaskContextNode joinableTaskContextNode)
     : base(projectContextProvider, serviceProvider, joinableTaskContextNode)
 {
 }
        public DefaultProjectSnapshotManagerProxyTest()
        {
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskFactory = new JoinableTaskFactory(joinableTaskContext.Context);
            Workspace           = TestWorkspace.Create();
            var projectWorkspaceState1 = new ProjectWorkspaceState(new[]
            {
                TagHelperDescriptorBuilder.Create("test1", "TestAssembly1").Build(),
            }, default);

            ProjectSnapshot1 = new DefaultProjectSnapshot(
                ProjectState.Create(
                    Workspace.Services,
                    new HostProject("/host/path/to/project1.csproj", RazorConfiguration.Default, "project1"),
                    projectWorkspaceState1));
            var projectWorkspaceState2 = new ProjectWorkspaceState(new[]
            {
                TagHelperDescriptorBuilder.Create("test2", "TestAssembly2").Build(),
            }, default);

            ProjectSnapshot2 = new DefaultProjectSnapshot(
                ProjectState.Create(
                    Workspace.Services,
                    new HostProject("/host/path/to/project2.csproj", RazorConfiguration.Default, "project2"),
                    projectWorkspaceState2));
        }
Example #8
0
 public DependenciesGraphProvider(IDependenciesGraphProjectContextProvider projectContextProvider,
                                  SVsServiceProvider serviceProvider,
                                  JoinableTaskContextNode joinableTaskContextNode)
     : base(joinableTaskContextNode)
 {
     ProjectContextProvider = projectContextProvider;
     ServiceProvider        = serviceProvider;
 }
Example #9
0
        public SolutionRestoreWorker(
            [Import(typeof(SVsServiceProvider))]
            IServiceProvider serviceProvider,
            Lazy <IVsSolutionManager> solutionManager,
            Lazy <INuGetLockService> lockService,
            [Import("VisualStudioActivityLogger")]
            Lazy <Common.ILogger> logger,
            Lazy <ErrorListTableDataSource> errorListTableDataSource)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (solutionManager == null)
            {
                throw new ArgumentNullException(nameof(solutionManager));
            }

            if (lockService == null)
            {
                throw new ArgumentNullException(nameof(lockService));
            }

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            if (errorListTableDataSource == null)
            {
                throw new ArgumentNullException(nameof(errorListTableDataSource));
            }

            _serviceProvider          = serviceProvider;
            _solutionManager          = solutionManager;
            _lockService              = lockService;
            _logger                   = logger;
            _errorListTableDataSource = errorListTableDataSource;

            var joinableTaskContextNode = new JoinableTaskContextNode(ThreadHelper.JoinableTaskContext);

            _joinableCollection = joinableTaskContextNode.CreateCollection();
            _joinableFactory    = joinableTaskContextNode.CreateFactory(_joinableCollection);

            _componentModel = new AsyncLazy <IComponentModel>(async() =>
            {
                await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
                return(serviceProvider.GetService <SComponentModel, IComponentModel>());
            },
                                                              _joinableFactory);
            _solutionLoadedEvent = new AsyncManualResetEvent();
            _isCompleteEvent     = new AsyncManualResetEvent();

            Reset();
        }
Example #10
0
 public DependenciesGraphProvider(IAggregateDependenciesSnapshotProvider aggregateSnapshotProvider,
                                  IAsyncServiceProvider serviceProvider,
                                  JoinableTaskContextNode joinableTaskContextNode)
     : base(joinableTaskContextNode)
 {
     AggregateSnapshotProvider = aggregateSnapshotProvider;
     ServiceProvider           = serviceProvider;
     GraphActionHandlers       = new OrderPrecedenceImportCollection <IDependenciesGraphActionHandler>(
         ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast);
 }
Example #11
0
            /// <summary>
            /// Removes the node from hang notifications.
            /// </summary>
            public void Dispose()
            {
                var node = this.node;

                if (node != null)
                {
                    lock (node.Context.hangNotifications)
                    {
                        Assumes.True(node.Context.hangNotifications.Remove(node));
                    }

                    this.node = null;
                }
            }
Example #12
0
        public ProjectSnapshotSynchronizationServiceTest()
        {
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskFactory = new JoinableTaskFactory(joinableTaskContext.Context);

            SessionContext = new TestCollaborationSession(isHost: false);

            ProjectSnapshotManager = new TestProjectSnapshotManager(Workspace);

            ProjectWorkspaceStateWithTagHelpers = new ProjectWorkspaceState(new[]
            {
                TagHelperDescriptorBuilder.Create("TestTagHelper", "TestAssembly").Build()
            });
        }
        public ProjectSnapshotSynchronizationServiceTest()
        {
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskFactory = new JoinableTaskFactory(joinableTaskContext.Context);

            var collabSession = new TestCollaborationSession(isHost: false);

            SessionAccessor = Mock.Of <LiveShareSessionAccessor>(accessor => accessor.IsGuestSessionActive == true && accessor.Session == collabSession);

            ProjectSnapshotManager = new TestProjectSnapshotManager(Workspace);

            ProjectWorkspaceStateWithTagHelpers = new ProjectWorkspaceState(new[]
            {
                TagHelperDescriptorBuilder.Create("TestTagHelper", "TestAssembly").Build()
            });
        }
Example #14
0
        public DefaultLSPDocumentManagerTest()
        {
            ChangeTriggers = Enumerable.Empty <LSPDocumentManagerChangeTrigger>();
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskContext = joinableTaskContext.Context;
            TextBuffer          = Mock.Of <ITextBuffer>();
            Uri                 = new Uri("C:/path/to/file.razor");
            UriProvider         = Mock.Of <FileUriProvider>(provider => provider.GetOrCreate(TextBuffer) == Uri);
            LSPDocumentSnapshot = Mock.Of <LSPDocumentSnapshot>();
            LSPDocument         = Mock.Of <LSPDocument>(document =>
                                                        document.Uri == Uri &&
                                                        document.CurrentSnapshot == LSPDocumentSnapshot &&
                                                        document.VirtualDocuments == new[] { new TestVirtualDocument() } &&
                                                        document.UpdateVirtualDocument <TestVirtualDocument>(It.IsAny <IReadOnlyList <ITextChange> >(), It.IsAny <long>()) == Mock.Of <LSPDocumentSnapshot>());
            LSPDocumentFactory = Mock.Of <LSPDocumentFactory>(factory => factory.Create(TextBuffer) == LSPDocument);
        }
            /// <summary>
            /// Removes the node from hang notifications.
            /// </summary>
            public void Dispose()
            {
                var node = this.node;

                if (node != null)
                {
                    using (node.Context.NoMessagePumpSynchronizationContext.Apply())
                    {
                        lock (node.Context.hangNotifications)
                        {
                            Assumes.True(node.Context.hangNotifications.Remove(node));
                        }
                    }

                    this.node = null;
                }
            }
Example #16
0
        static NuGetLockServiceTests()
        {
            // ThreadHelper in VS requires a persistent dispatcher thread.  Because
            // each unit test executes on a new thread, we create our own
            // persistent thread that acts like a UI thread. This will be invoked just
            // once for the module.
            DispatchThread = new DispatchThread();

            DispatchThread.Invoke(() =>
            {
                // Internally this calls ThreadHelper.SetUIThread(), which
                // causes ThreadHelper to remember this thread for the
                // lifetime of the process as the dispatcher thread.
                var serviceProvider = ServiceProvider.GlobalProvider;
            });

            JoinableTaskContext = new JoinableTaskContextNode(
                new JoinableTaskContext(DispatchThread.Thread, DispatchThread.SyncContext));
        }
        public DispatcherThreadFixture()
        {
            // ThreadHelper in VS requires a persistent dispatcher thread.  Because
            // each unit test executes on a new thread, we create our own
            // persistent thread that acts like a UI thread. This will be invoked just
            // once for the module.
            _dispatcherThread = new DispatcherThread();

            _dispatcherThread.Invoke(() =>
            {
                // Internally this calls ThreadHelper.SetUIThread(), which
                // causes ThreadHelper to remember this thread for the
                // lifetime of the process as the dispatcher thread.
#pragma warning disable VSTHRD010 // Invoke single-threaded types on Main thread
                var serviceProvider = ServiceProvider.GlobalProvider;
#pragma warning restore VSTHRD010 // Invoke single-threaded types on Main thread
            });

            _joinableTaskContextNode = new JoinableTaskContextNode(
#pragma warning disable VSSDK005 // Avoid instantiating JoinableTaskContext
                new JoinableTaskContext(_dispatcherThread.Thread, _dispatcherThread.SyncContext));
#pragma warning restore VSSDK005 // Avoid instantiating JoinableTaskContext
        }
Example #18
0
        public LSPRazorProjectHostTest()
        {
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskContext = joinableTaskContext.Context;
        }
 protected OnceInitializedOnceDisposedUnderLockAsync(JoinableTaskContextNode joinableTaskContextNode)
     : base(joinableTaskContextNode)
 {
     _semaphore = ReentrantSemaphore.Create(1, joinableTaskContextNode.Context, ReentrantSemaphore.ReentrancyMode.Stack);
 }
Example #20
0
 public ProjectDynamicLoadComponentInstance(JoinableTaskContextNode joinableTaskContextNode)
     : base(joinableTaskContextNode)
 {
 }
Example #21
0
 public ProjectDynamicLoadComponent(JoinableTaskContextNode joinableTaskContextNode)
     : base(joinableTaskContextNode)
 {
     _joinableTaskContextNode = joinableTaskContextNode;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="HangNotificationRegistration"/> class.
 /// </summary>
 internal HangNotificationRegistration(JoinableTaskContextNode node)
 {
     Requires.NotNull(node, nameof(node));
     this.node = node;
 }
 public TestThreadingService()
 {
     JoinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());
     JoinableTaskFactory = new JoinableTaskFactory(JoinableTaskContext.Context);
 }
 public MockProjectThreadingService()
 {
     _context             = new JoinableTaskContextNode(new JoinableTaskContext());
     _joinableTaskFactory = _context.Factory;
 }
Example #25
0
        public DefaultRazorLanguageServerCustomMessageTargetTest()
        {
            var joinableTaskContext = new JoinableTaskContextNode(new JoinableTaskContext());

            JoinableTaskContext = joinableTaskContext.Context;
        }
        public JoinableTaskQueue(JoinableTaskContextNode joinableTaskContextNode)
        {
            Requires.NotNull(joinableTaskContextNode, nameof(joinableTaskContextNode));

            _joinableTaskContextNode = joinableTaskContextNode;
        }
#pragma warning restore CA2213

        protected AbstractProjectDynamicLoadComponent(JoinableTaskContextNode joinableTaskContextNode)
            : base(joinableTaskContextNode)
        {
        }
 protected AbstractMultiLifetimeComponent(JoinableTaskContextNode joinableTaskContextNode)
     : base(joinableTaskContextNode)
 {
 }
Example #29
0
 public JoinableTaskContextNodeTests(ITestOutputHelper logger)
     : base(logger)
 {
     this.defaultNode = new JoinableTaskContextNode(this.context);
     this.derivedNode = new DerivedNode(this.context);
 }
 public MultiLifetimeComponent(JoinableTaskContextNode joinableTaskContextNode)
     : base(joinableTaskContextNode)
 {
 }