public async Task HandleResponseAsync_ReturnsNotFoundSourceRepositoryReturnsNullServiceIndex() { using (var provider = new GetServiceIndexRequestHandler(Mock.Of <IPlugin>())) { var packageSource = new PackageSource("https://unit.test"); var sourceRepository = new SourceRepository(packageSource, Enumerable.Empty <INuGetResourceProvider>()); provider.AddOrUpdateSourceRepository(sourceRepository); var request = CreateRequest( MessageType.Request, new GetServiceIndexRequest(packageSource.Source)); var responseHandler = new Mock <IResponseHandler>(MockBehavior.Strict); responseHandler.Setup(x => x.SendResponseAsync( It.Is <Message>(r => r == request), It.Is <GetServiceIndexResponse>(r => r.ResponseCode == MessageResponseCode.NotFound), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(0)); await provider.HandleResponseAsync( Mock.Of <IConnection>(), request, responseHandler.Object, CancellationToken.None); responseHandler.Verify(); } }
public async Task HandleResponseAsync_ThrowsForNullRequest() { using (var provider = new GetServiceIndexRequestHandler(Mock.Of <IPlugin>())) { var exception = await Assert.ThrowsAsync <ArgumentNullException>( () => provider.HandleResponseAsync( Mock.Of <IConnection>(), request: null, responseHandler: Mock.Of <IResponseHandler>(), cancellationToken: CancellationToken.None)); Assert.Equal("request", exception.ParamName); } }
public async Task HandleResponseAsync_ThrowsIfCancelled() { using (var provider = new GetServiceIndexRequestHandler(Mock.Of <IPlugin>())) { var request = CreateRequest(MessageType.Request); await Assert.ThrowsAsync <OperationCanceledException>( () => provider.HandleResponseAsync( Mock.Of <IConnection>(), request, Mock.Of <IResponseHandler>(), new CancellationToken(canceled: true))); } }
public async Task HandleResponseAsync_ReturnsSuccessIfServiceIndexIsFound() { using (var provider = new GetServiceIndexRequestHandler(Mock.Of <IPlugin>())) { var packageSource = new PackageSource("https://unit.test"); var serviceIndex = JObject.Parse("{}"); var serviceIndexResource = new ServiceIndexResourceV3(serviceIndex, DateTime.UtcNow); var serviceIndexResourceProvider = new Mock <INuGetResourceProvider>(); serviceIndexResourceProvider.SetupGet(x => x.ResourceType) .Returns(typeof(ServiceIndexResourceV3)); serviceIndexResourceProvider.SetupGet(x => x.Name) .Returns(nameof(ServiceIndexResourceV3Provider)); serviceIndexResourceProvider.Setup(x => x.TryCreate( It.IsNotNull <SourceRepository>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new Tuple <bool, INuGetResource>(true, serviceIndexResource)); var sourceRepository = new SourceRepository( packageSource, new INuGetResourceProvider[] { serviceIndexResourceProvider.Object }); provider.AddOrUpdateSourceRepository(sourceRepository); var request = CreateRequest( MessageType.Request, new GetServiceIndexRequest(packageSource.Source)); var responseHandler = new Mock <IResponseHandler>(MockBehavior.Strict); responseHandler.Setup(x => x.SendResponseAsync( It.Is <Message>(r => r == request), It.Is <GetServiceIndexResponse>(r => r.ResponseCode == MessageResponseCode.Success && r.ServiceIndex.ToString(Formatting.None) == serviceIndex.ToString(Formatting.None)), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(0)); await provider.HandleResponseAsync( Mock.Of <IConnection>(), request, responseHandler.Object, CancellationToken.None); responseHandler.Verify(); } }
public async Task HandleResponseAsync_ReturnsNotFoundIfPackageSourceNotFound() { using (var provider = new GetServiceIndexRequestHandler(Mock.Of <IPlugin>())) { var request = CreateRequest( MessageType.Request, new GetServiceIndexRequest("https://unit.test")); var responseHandler = new Mock <IResponseHandler>(MockBehavior.Strict); responseHandler.Setup(x => x.SendResponseAsync( It.Is <Message>(r => r == request), It.Is <GetServiceIndexResponse>(r => r.ResponseCode == MessageResponseCode.NotFound), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(0)); await provider.HandleResponseAsync( Mock.Of <IConnection>(), request, responseHandler.Object, CancellationToken.None); responseHandler.Verify(); } }