public void SonarQubeServiceWrapper_TryGetPlugins() { using (var testSubject = new TestableSonarQubeServiceWrapper(this.serviceProvider)) { // Setup var connectionInfo = new ConnectionInformation(new Uri("http://servername")); var plugin1 = new ServerPlugin { Key = "plugin1" }; var plugin2 = new ServerPlugin { Key = "plugin2" }; var expectedPlugins = new[] { plugin1, plugin2 }; // Setup test server RequestHandler handler = testSubject.RegisterRequestHandler( SonarQubeServiceWrapper.ServerPluginsInstalledAPI, ctx => ServiceServerPlugins(ctx, expectedPlugins) ); // Act ServerPlugin[] actualPlugins; Assert.IsTrue(testSubject.TryGetPlugins(connectionInfo, CancellationToken.None, out actualPlugins), "TryGetPlugins failed unexpectedly"); // Verify CollectionAssert.AreEqual(expectedPlugins.Select(x => x.Key).ToArray(), actualPlugins.Select(x => x.Key).ToArray(), "Unexpected server plugins"); handler.AssertHandlerCalled(1); } }
public void SonarQubeServiceWrapper_TryGetPlugins_ArgChecks() { using (var testSubject = new TestableSonarQubeServiceWrapper(this.serviceProvider, timeoutInMilliseconds: 1)) { ServerPlugin[] plugins; // Null connection information Exceptions.Expect <ArgumentNullException>(() => testSubject.TryGetPlugins(null, CancellationToken.None, out plugins)); // Those are API usage issue which we don't report to the output pane this.outputWindowPane.AssertOutputStrings(0); } }