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 void AddOrUpdateSourceRepository_ThrowsForNullSourceRepository() { using (var provider = new GetServiceIndexRequestHandler(Mock.Of <IPlugin>())) { var exception = Assert.Throws <ArgumentNullException>( () => provider.AddOrUpdateSourceRepository(sourceRepository: null)); Assert.Equal("sourceRepository", exception.ParamName); } }
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(); } }