public async Task ExecuteContextSetToArgument() { var progress = new DataProcessorProgress(); var mockProcessor = new MockCustomDataProcessor(); var fakeCustomDataSource = new MockCustomDataSource { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tables = new[] { Any.TableDescriptor(), }; var executionContext = new ExecutionContext( progress, _ => new NullLogger(), fakeCustomDataSource, dataSources, tables, Any.ProcessorEnvironment(), ProcessorOptions.Default); this.Sut.InitializeCustomDataProcessor(executionContext); var result = await this.Sut.ExecuteAsync(CancellationToken.None); Assert.AreEqual(executionContext, result.Context); }
public async Task ExecuteBuiltMetadataTablesReturned() { var progress = new DataProcessorProgress(); var mockProcessor = new MockCustomDataProcessor { MetadataTablesToBuild = new[] { Any.TableDescriptor(), Any.TableDescriptor(), Any.TableDescriptor(), } }; var fakeCustomDataSource = new MockCustomDataSource() { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tablesToEnable = new[] { Any.TableDescriptor(), Any.TableDescriptor(), Any.TableDescriptor(), }; var executionContext = new ExecutionContext( progress, _ => new NullLogger(), fakeCustomDataSource, dataSources, tablesToEnable, Any.ProcessorEnvironment(), ProcessorOptions.Default); this.Sut.InitializeCustomDataProcessor(executionContext); var result = await this.Sut.ExecuteAsync(CancellationToken.None); Assert.AreEqual(mockProcessor.MetadataTablesToBuild.Count(), result.BuiltMetadataTables.Count); foreach (var table in mockProcessor.MetadataTablesToBuild) { Assert.IsTrue(result.BuiltMetadataTables.Select(x => x.TableDescriptor).Contains(table)); } }
public async Task ExecuteFailureToBuildMetadataTablesNoted() { var progress = new DataProcessorProgress(); var mockProcessor = new MockCustomDataProcessor { MetadataTablesToBuild = new[] { Any.TableDescriptor(), Any.TableDescriptor(), Any.TableDescriptor(), }, BuildMetadataTableFailure = new Exception(), }; var fakeCustomDataSource = new MockCustomDataSource() { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tablesToEnable = new[] { Any.TableDescriptor(), Any.TableDescriptor(), Any.TableDescriptor(), }; var executionContext = new ExecutionContext( progress, _ => new NullLogger(), fakeCustomDataSource, dataSources, tablesToEnable, Any.ProcessorEnvironment(), ProcessorOptions.Default); this.Sut.InitializeCustomDataProcessor(executionContext); var result = await this.Sut.ExecuteAsync(CancellationToken.None); Assert.AreEqual(0, result.BuiltMetadataTables.Count); Assert.AreEqual(mockProcessor.BuildMetadataTableFailure, result.MetadataTableFailure); }
public async Task ExecuteEnableTableFailureNotedCorrectly() { var progress = new DataProcessorProgress(); var mockProcessor = new MockCustomDataProcessor(); var fakeCustomDataSource = new MockCustomDataSource() { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tables = new[] { Any.TableDescriptor(), Any.TableDescriptor(), Any.TableDescriptor(), }; mockProcessor.EnableFailures[tables[1]] = new ArithmeticException(); var executionContext = new ExecutionContext( progress, _ => new NullLogger(), fakeCustomDataSource, dataSources, tables, Any.ProcessorEnvironment(), ProcessorOptions.Default); this.Sut.InitializeCustomDataProcessor(executionContext); var result = await this.Sut.ExecuteAsync(CancellationToken.None); Assert.AreEqual(mockProcessor.EnableFailures.Count, result.EnableFailures.Count); foreach (var expectedFailure in mockProcessor.EnableFailures) { Assert.AreEqual( expectedFailure.Value, result.EnableFailures[expectedFailure.Key]); } }
public async Task ExecuteProcessorFailsSetsFaultProperties() { var progress = new DataProcessorProgress(); var mockProcessor = new MockCustomDataProcessor { ProcessFailure = new Exception(), }; var fakeCustomDataSource = new MockCustomDataSource { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tables = new[] { Any.TableDescriptor(), }; var executionContext = new ExecutionContext( progress, _ => new NullLogger(), fakeCustomDataSource, dataSources, tables, Any.ProcessorEnvironment(), ProcessorOptions.Default); this.Sut.InitializeCustomDataProcessor(executionContext); var result = await this.Sut.ExecuteAsync(CancellationToken.None); Assert.IsNotNull(result); Assert.AreEqual(DataSourceInfo.None, result.DataSourceInfo); Assert.AreEqual(mockProcessor.ProcessFailure, result.ProcessorFault); Assert.IsTrue(result.IsProcessorFaulted); }
public void ExecuteEnableTableFailureContinuesAnyway() { var progress = new DataProcessorProgress(); var mockProcessor = new MockCustomDataProcessor(); var fakeCustomDataSource = new MockCustomDataSource() { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tables = new[] { Any.TableDescriptor(), Any.TableDescriptor(), Any.TableDescriptor(), }; mockProcessor.EnableFailures[tables[1]] = new Exception(); var executionContext = new ExecutionContext( progress, _ => new NullLogger(), fakeCustomDataSource, dataSources, tables, Any.ProcessorEnvironment(), ProcessorOptions.Default); this.Sut.InitializeCustomDataProcessor(executionContext); Assert.AreEqual(tables.Length, mockProcessor.EnableTableCalls.Count); foreach (var table in tables) { Assert.IsTrue(mockProcessor.EnableTableCalls.Contains(table)); } }
public void ExecutePassesEnvironmentToProcessor() { var progress = new DataProcessorProgress(); var mockProcessor = new MockCustomDataProcessor(); var fakeCustomDataSource = new MockCustomDataSource() { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tables = new[] { Any.TableDescriptor(), Any.TableDescriptor(), Any.TableDescriptor(), }; var env = Any.ProcessorEnvironment(); var options = ProcessorOptions.Default; var executionContext = new ExecutionContext( progress, _ => new NullLogger(), fakeCustomDataSource, dataSources, tables, env, options); this.Sut.InitializeCustomDataProcessor(executionContext); Assert.AreEqual( env, fakeCustomDataSource.CreateProcessorCalls.Single().Item2); }
public async Task ExecuteRequestedtablesSetCorrectly() { var progress = new DataProcessorProgress(); var mockProcessor = new MockCustomDataProcessor(); var fakeCustomDataSource = new MockCustomDataSource() { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tables = new[] { Any.TableDescriptor(), Any.TableDescriptor(), Any.TableDescriptor(), }; var executionContext = new ExecutionContext( progress, _ => new NullLogger(), fakeCustomDataSource, dataSources, tables, Any.ProcessorEnvironment(), ProcessorOptions.Default); this.Sut.InitializeCustomDataProcessor(executionContext); var result = await this.Sut.ExecuteAsync(CancellationToken.None); Assert.AreEqual(tables.Length, result.RequestedTables.Count()); foreach (var table in tables) { Assert.IsTrue(result.RequestedTables.Contains(table)); } }
public async Task ExecuteCallsProcessCorrectly() { var progress = new DataProcessorProgress(); var logger = new NullLogger(); var mockProcessor = new MockCustomDataProcessor(); var fakeCustomDataSource = new MockCustomDataSource { DataProcessor = mockProcessor, }; var dataSources = new[] { Any.DataSource(), }; var tables = new[] { Any.TableDescriptor(), }; var executionContext = new ExecutionContext( progress, _ => logger, fakeCustomDataSource, dataSources, tables, Any.ProcessorEnvironment(), ProcessorOptions.Default); this.Sut.InitializeCustomDataProcessor(executionContext); var result = await this.Sut.ExecuteAsync(this.Cts.Token); Assert.AreEqual(1, mockProcessor.ProcessCalls.Count); Assert.AreEqual(progress, mockProcessor.ProcessCalls[0].Item1); Assert.AreEqual(this.Cts.Token, mockProcessor.ProcessCalls[0].Item2); }