public void Setup() { _logger = (UnitTestLogger <CPU6502>)_serviceProvider.GetService <ILogger <CPU6502> >(); _logger.GetOutput(); // Clear any buffered output mem = _serviceProvider.GetService <IAddressMap>(); mem.Install(new Ram(0x0000, 0x10000)); _display = _serviceProvider.GetService <IMemoryMappedDisplay>(); _display.Locate(DISPLAY_BASE_ADDR, DISPLAY_SIZE); mem.Install(_display); AsyncUtil.RunSync(mem.Initialise); _display.Clear(); _cpu = (CPU6502)_serviceProvider.GetService <IDebuggableCpu>(); _cpu.LogLevel = LogLevel.Trace; mem.WriteWord(_cpu.RESET_VECTOR, PROG_START); mem.Labels.Clear(); mem.Labels.Add("DISPLAY_CONTROL_ADDR", MemoryMappedDisplay.DISPLAY_CONTROL_BLOCK_ADDR); mem.Labels.Add("DISPLAY_BASE_ADDR", DISPLAY_BASE_ADDR); mem.Labels.Add("DISPLAY_SIZE", DISPLAY_SIZE); mem.Labels.Add("RESET_VECTOR", _cpu.RESET_VECTOR); mem.Labels.Add("IRQ_VECTOR", _cpu.IRQ_VECTOR); mem.Labels.Add("NMI_VECTOR", _cpu.NMI_VECTOR); _cpuHoldEvent = _serviceProvider.GetService <ICpuHoldEvent>(); _cpuStepEvent = _serviceProvider.GetService <ICpuStepEvent>(); _cancellationTokenWrapper = _serviceProvider.GetService <CancellationTokenWrapper>(); _cancellationTokenWrapper.Reset(); }
static async Task ImportAsync() { // Arrange var request = TestHelper.CreateImportDataRequest(); var cancellationToken = new CancellationToken(true); var cancellationTokenWrapper = new CancellationTokenWrapper(cancellationToken); var importer = GetCsvPagedPriceDataImporter(GetBlobStorageProvider(CsvHeader, CsvRecords)); // Act await importer.ImportAsync(request, ProgressCallbackMock, cancellationTokenWrapper); }
public async Task GetNextChangesBatch_TasksWithDifferentWorkPathAndOptions_UseDifferentValues() { // Arrange var blobContents = new List <BlobEntry>() { new BlobInfo() { Name = "Blob1.png", Url = "testPath1/Blob1.png", }, new BlobInfo() { Name = "Blob2.png", Url = "testPath2/Blob2.png", }, }; var changesProvider = GetBlobImagesChangesProvider(blobContents); var thumbnailOption = new ThumbnailOption() { FileSuffix = OptionSuffix }; var task1 = new ThumbnailTask() { Id = Guid.NewGuid().ToString(), LastRun = null, WorkPath = "testPath1", ThumbnailOptions = new List <ThumbnailOption>() { thumbnailOption }, }; var task2 = new ThumbnailTask() { Id = Guid.NewGuid().ToString(), LastRun = null, WorkPath = "testPath2", ThumbnailOptions = new List <ThumbnailOption>() { thumbnailOption }, }; var cancellationToken = new CancellationTokenWrapper(new CancellationToken()); // Act var changes1 = await changesProvider.GetNextChangesBatch(task1, null, 0, 10, cancellationToken); var changes2 = await changesProvider.GetNextChangesBatch(task2, null, 0, 10, cancellationToken); //Assert StorageProviderMock.Verify(x => x.SearchAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2)); Assert.Collection(changes1, x => Assert.Equal("Blob1.png", x.Name)); Assert.Collection(changes2, x => Assert.Equal("Blob2.png", x.Name)); }
public async Task GetNextChangesBatch_TasksWithOneWorkPathAndOptions_CacheIsWorking() { // Arrange var blobContents = new List <BlobEntry>() { new BlobInfo() { Name = "Blob1.png", Url = "testPath/Blob1.png", }, }; var changesProvider = GetBlobImagesChangesProvider(blobContents); var thumbnailOption = new ThumbnailOption() { FileSuffix = OptionSuffix }; var workPath = "testPath"; var task1 = new ThumbnailTask() { Id = Guid.NewGuid().ToString(), LastRun = null, WorkPath = workPath, ThumbnailOptions = new List <ThumbnailOption>() { thumbnailOption }, }; var task2 = new ThumbnailTask() { Id = Guid.NewGuid().ToString(), LastRun = null, WorkPath = workPath, ThumbnailOptions = new List <ThumbnailOption>() { thumbnailOption }, }; var cancellationToken = new CancellationTokenWrapper(new CancellationToken()); // Act var changes1 = await changesProvider.GetNextChangesBatch(task1, null, 0, 10, cancellationToken); var changes2 = await changesProvider.GetNextChangesBatch(task2, null, 0, 10, cancellationToken); //Assert StorageProviderMock.Verify(x => x.SearchAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once); Assert.Single(changes1); Assert.Single(changes2); for (var i = 0; i < changes1.Length; i++) { Assert.Same(changes1[i], changes2[i]); } }
public async void GenerateThumbnailsAsync_CancellationTokenNotNull_CancellationFired() { var options = new List <ThumbnailOption>(); CancellationToken token = new CancellationToken(true); var tokenWrapper = new CancellationTokenWrapper(token); var mockStorage = new Mock <IImageService>(); var mockResizer = new Mock <IImageResizer>(); var target = new DefaultThumbnailGenerator(mockStorage.Object, mockResizer.Object); await Assert.ThrowsAsync <OperationCanceledException>(async() => await target.GenerateThumbnailsAsync("http://pathToFile.bmp", "dest", options, tokenWrapper)); }
public async Task Start(string arguments, Action<string> processData, CancellationTokenWrapper token) { var tcs = new TaskCompletionSource<object>(); _act = (s, e) => { _output.AppendLine(e.Data); try { processData(e.Data); } catch (Exception ex) { tcs.TrySetException(ex); } }; var process = new Process(); process.Exited += (s, e) => ExitedMethod((Process)s, tcs); process.StartInfo = CreateStartInfo(arguments); process.EnableRaisingEvents = true; process.ErrorDataReceived += _act; process.OutputDataReceived += _act; _output.Clear(); try { process.Start(); process.BeginErrorReadLine(); process.BeginOutputReadLine(); token.Register(() => tcs.TrySetCanceled()); } catch (Exception ex) { tcs.TrySetException(ex); } try { await tcs.Task; } finally { TryKillProcess(process); process.Dispose(); } }
public async Task Start(string arguments, Action <string> processData, CancellationTokenWrapper token) { var tcs = new TaskCompletionSource <object>(); _act = (s, e) => { _output.AppendLine(e.Data); try { processData(e.Data); } catch (Exception ex) { tcs.TrySetException(ex); } }; var process = new Process(); process.Exited += (s, e) => ExitedMethod((Process)s, tcs); process.StartInfo = CreateStartInfo(arguments); process.EnableRaisingEvents = true; process.ErrorDataReceived += _act; process.OutputDataReceived += _act; _output.Clear(); try { process.Start(); process.BeginErrorReadLine(); process.BeginOutputReadLine(); token.Register(() => tcs.TrySetCanceled()); } catch (Exception ex) { tcs.TrySetException(ex); } try { await tcs.Task; } finally { TryKillProcess(process); process.Dispose(); } }
public ReplHost( ILabelMap labels, CancellationTokenWrapper cancellationToken, // CpuHoldEvent debuggerSyncEvent, IDebuggableCpu cpu, IAddressMap addressMap, IMemoryMappedKeyboard keyboard, IMemoryMappedDisplay memoryMappedDisplay) { Labels = labels; _cancellationToken = cancellationToken; // _debuggerSyncEvent = debuggerSyncEvent; _cpu = (CPU6502)cpu; mem = addressMap; _keyboard = keyboard; _display = memoryMappedDisplay; }
public ConsoleDebugger( IEmulatorHost host, IDebuggableCpu cpu, IAddressMap addressMap, ILogFormatter logFormatter, IParser parser, ILabelMap labels, CancellationTokenWrapper cancel, // CpuHoldEvent debuggerSyncEvent, ILogger <ConsoleDebugger> logger) { _host = host; _cpu = cpu; _addressMap = addressMap; _formatter = logFormatter; _parser = parser; _labels = labels; _cancel = cancel; // _debuggerSyncEvent = debuggerSyncEvent; _logger = logger; }
public async Task GetNextChangesBatch_TasksWithOneWorkPathAndOptions_CacheIsWorkingWithGetTotalChangesCount() { // Arrange var blobContents = new List <BlobEntry>() { new BlobInfo() { Name = "Blob1.png", Url = "testPath/Blob1.png", }, }; var changesProvider = GetBlobImagesChangesProvider(blobContents); var thumbnailOption = new ThumbnailOption() { FileSuffix = OptionSuffix }; var workPath = "testPath"; var task = new ThumbnailTask() { Id = Guid.NewGuid().ToString(), LastRun = null, WorkPath = workPath, ThumbnailOptions = new List <ThumbnailOption>() { thumbnailOption }, }; var cancellationToken = new CancellationTokenWrapper(new CancellationToken()); // Act var changes = await changesProvider.GetNextChangesBatch(task, null, 0, 10, cancellationToken); var count = await changesProvider.GetTotalChangesCount(task, null, cancellationToken); //Assert StorageProviderMock.Verify(x => x.SearchAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once); Assert.Collection(changes, x => Assert.Equal("Blob1.png", x.Name)); Assert.Equal(1, count); }
public async Task ProcessTasksAsync_BlobChangesProviderCache_ExpiredAfterExecution() { // Arrange var blobContents = new List <BlobEntry>() { new BlobInfo() { Name = "Blob1.png", Url = "testPath/Blob1.png", }, }; var imageChangesProvider = GetBlobImagesChangesProvider(blobContents); var thumbnailGenerationProcessor = new ThumbnailGenerationProcessor(_generator.Object, _settingsManager.Object, imageChangesProvider); var thumbnailOption = new ThumbnailOption() { FileSuffix = OptionSuffix }; var workPath = "testPath"; var task1 = new ThumbnailTask() { Id = Guid.NewGuid().ToString(), LastRun = null, WorkPath = workPath, ThumbnailOptions = new List <ThumbnailOption>() { thumbnailOption }, }; var cancellationToken = new CancellationTokenWrapper(new CancellationToken()); // Act await thumbnailGenerationProcessor.ProcessTasksAsync(new[] { task1 }, false, x => { }, cancellationToken); await thumbnailGenerationProcessor.ProcessTasksAsync(new[] { task1 }, false, x => { }, cancellationToken); //Assert StorageProviderMock.Verify(x => x.SearchAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2)); }