public async Task DownloadAndIndex_DeletesTempFile() { var package = new FakeDataServicePackage(new Uri("http://example.com/packages/Foo/1.0")); fileSystem.Setup(fs => fs.GetFullPath(It.IsAny <string>())).Returns <string>(n => Path.Combine(Environment.CurrentDirectory, n)); await repository.AddPackageAsync(package, CancellationToken.None); fileSystem.Verify(fs => fs.DeleteFile(It.IsRegex(@"\.tmp[\\/].+\.nupkg.tmp"))); }
public async Task DownloadAndIndex() { var package = new FakeDataServicePackage(new Uri("http://example.com/packages/Foo/1.0")); fileSystem.Setup(fs => fs.GetFullPath(It.IsAny <string>())).Returns <string>(n => Path.Combine(Environment.CurrentDirectory, n)); await repository.AddPackageAsync(package, CancellationToken.None); indexer.Verify(i => i.AddPackageAsync(It.IsAny <LucenePackage>(), It.IsAny <CancellationToken>()), Times.Once); }
public async Task CancelDuringGetDownloadStream() { var package = new FakeDataServicePackage(new Uri("http://example.com/packages/Foo/1.0")); packagePathResolver.Setup(r => r.GetInstallPath(package)).Returns("Foo"); packagePathResolver.Setup(r => r.GetPackageFileName(package)).Returns("Foo.1.0.nupkg"); var insideHandlerSignal = new ManualResetEventSlim(initialState: false); var proceedFromHandlerSignal = new ManualResetEventSlim(initialState: false); var exception = new TaskCanceledException("Fake"); repository.MessageHandler = new FakeHttpMessageHandler((req, token) => { insideHandlerSignal.Set(); Assert.True(proceedFromHandlerSignal.Wait(TimeSpan.FromMilliseconds(500)), "Timeout waiting for proceedFromHandlerSignal"); if (token.IsCancellationRequested) { throw exception; } }); var cts = new CancellationTokenSource(); var cancelTask = Task.Run(() => { Assert.True(insideHandlerSignal.Wait(TimeSpan.FromMilliseconds(500)), "Timeout waiting for MessageHandler.SendAsync"); cts.Cancel(); proceedFromHandlerSignal.Set(); }); try { await repository.AddPackageAsync(package, cts.Token); await cancelTask; Assert.Fail("Expected TaskCanceledException"); } catch (TaskCanceledException ex) { Assert.That(ex, Is.SameAs(exception), "Expected spcific instance of TaskCanceledException"); } }
public async Task CancelDuringGetDownloadStream() { var package = new FakeDataServicePackage(new Uri("http://example.com/packages/Foo/1.0")); packagePathResolver.Setup(r => r.GetInstallPath(package)).Returns("Foo"); packagePathResolver.Setup(r => r.GetPackageFileName(package)).Returns("Foo.1.0.nupkg"); var insideHandlerSignal = new ManualResetEventSlim(initialState: false); var proceedFromHandlerSignal = new ManualResetEventSlim(initialState: false); var exception = new TaskCanceledException("Fake"); repository.MessageHandler = new FakeHttpMessageHandler((req, token) => { insideHandlerSignal.Set(); Assert.True(proceedFromHandlerSignal.Wait(TimeSpan.FromMilliseconds(500)), "Timeout waiting for proceedFromHandlerSignal"); if (token.IsCancellationRequested) { throw exception; } }); var cts = new CancellationTokenSource(); var cancelTask = Task.Run(() => { Assert.True(insideHandlerSignal.Wait(TimeSpan.FromMilliseconds(500)), "Timeout waiting for MessageHandler.SendAsync"); cts.Cancel(); proceedFromHandlerSignal.Set(); }); try { await repository.AddPackageAsync(package, cts.Token); await cancelTask; Assert.Fail("Expected TaskCanceledException"); } catch (TaskCanceledException ex) { Assert.That(ex, Is.SameAs(exception), "Expected spcific instance of TaskCanceledException"); } }
public async Task DownloadAndIndex_DeletesTempFile() { var package = new FakeDataServicePackage(new Uri("http://example.com/packages/Foo/1.0")); fileSystem.Setup(fs => fs.GetFullPath(It.IsAny<string>())).Returns<string>(n => Path.Combine(Environment.CurrentDirectory, n)); await repository.AddPackageAsync(package, CancellationToken.None); fileSystem.Verify(fs => fs.DeleteFile(It.IsRegex(@"\.tmp[\\/].+\.nupkg.tmp"))); }
public async Task DownloadAndIndex() { var package = new FakeDataServicePackage(new Uri("http://example.com/packages/Foo/1.0")); fileSystem.Setup(fs => fs.GetFullPath(It.IsAny<string>())).Returns<string>(n => Path.Combine(Environment.CurrentDirectory, n)); await repository.AddPackageAsync(package, CancellationToken.None); indexer.Verify(i => i.AddPackageAsync(It.IsAny<LucenePackage>(), It.IsAny<CancellationToken>()), Times.Once); }