Example #1
0
        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();
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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();
            }
        }