[InlineData("{ version: \"3.0.0.0\" } ")] // not strict semver public async Task TryCreate_ReturnsFalse_IfSourceLocationDoesNotReturnValidJson(string content) { // Arrange var source = "https://fake.server/users.json"; var handlerProvider = StaticHttpHandler.CreateHttpHandler(new Dictionary <string, string> { { source, content } }); var provider = new ServiceIndexResourceV3Provider(); var sourceRepository = new SourceRepository(new PackageSource(source), new INuGetResourceProvider[] { handlerProvider, provider }); // Act var result = await provider.TryCreate(sourceRepository, default(CancellationToken)); // Assert Assert.False(result.Item1); Assert.Null(result.Item2); }
public async Task TryCreate_ReturnsFalse_IfSourceLocationReturnsFailureCode() { // Arrange var source = "https://does-not-exist.server/does-not-exist.json"; // This will return a 404 - NotFound. var handlerProvider = StaticHttpHandler.CreateHttpHandler(new Dictionary <string, string> { { source, string.Empty } }); var provider = new ServiceIndexResourceV3Provider(); var sourceRepository = new SourceRepository(new PackageSource(source), new INuGetResourceProvider[] { handlerProvider, provider }); // Act var result = await provider.TryCreate(sourceRepository, default(CancellationToken)); // Assert Assert.False(result.Item1); Assert.Null(result.Item2); }
public async Task TryCreate_ReturnsTrue_IfSourceLocationReturnsValidJson() { // Arrange var source = "https://some-site.org/test.json"; var content = @"{ version: '3.1.0-beta' }"; var handlerProvider = StaticHttpHandler.CreateHttpHandler(new Dictionary <string, string> { { source, content } }); var provider = new ServiceIndexResourceV3Provider(); var sourceRepository = new SourceRepository(new PackageSource(source), new INuGetResourceProvider[] { handlerProvider, provider }); // Act var result = await provider.TryCreate(sourceRepository, default(CancellationToken)); // Assert Assert.True(result.Item1); var resource = Assert.IsType <ServiceIndexResourceV3>(result.Item2); Assert.NotNull(resource.Index); }