Example #1
0
 public void CancellationToken_IsNone()
 {
     using (var provider = new GetServiceIndexRequestHandler(Mock.Of <IPlugin>()))
     {
         Assert.Equal(CancellationToken.None, provider.CancellationToken);
     }
 }
Example #2
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 #3
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 #4
0
        public void Dispose_DisposesDisposables()
        {
            var plugin = new Mock <IPlugin>(MockBehavior.Strict);

            plugin.Setup(x => x.Dispose());

            var provider = new GetServiceIndexRequestHandler(plugin.Object);

            provider.Dispose();

            plugin.Verify(x => x.Dispose(), Times.Once);
        }
Example #5
0
        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);
            }
        }
Example #6
0
        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)));
            }
        }
Example #7
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();
            }
        }
Example #8
0
        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();
            }
        }