private static Table GetMockedBasicSampleTable() { return(Substitute.ForPartsOf <MockableTable>( new Header(DateTime.Now, 0, 0, new List <IColumn> { new BooleanColumn("LOGICAL", 0, 1) }), Samples.GetBasicTableStream())); }
private async Task Action_CancellationToken_ReadsAllBytesUsingTheToken(Func <Stream, CancellationToken, Task> action) { var cts = new CancellationTokenSource(); var streamSpy = Spy.OnStream(Samples.GetBasicTableStream()); await action(streamSpy, cts.Token); await streamSpy.DidNotReceive().ReadAsync(Arg.Any <byte[]>(), Arg.Any <int>(), Arg.Any <int>(), Arg.Is <CancellationToken>(t => t != cts.Token)); }
public void Open_CustomHeaderLoader_LoadsHeaderWithTheLoader() { // Arrange var headerLoader = Substitute.ForPartsOf <HeaderLoader>(); // Act using (var table = Table.Open(Samples.GetBasicTableStream(), headerLoader)) { } // Assert headerLoader.Received().Load(Arg.Any <Stream>()); }
public async Task Dispose_LoadedFromStream_DisposesTheStream(bool useAsync) { // Arrange var streamSpy = Spy.OnStream(Samples.GetBasicTableStream()); var table = await this.Exec(() => Table.Open(streamSpy), useAsync); // Act table.Dispose(); // Assert streamSpy.Received().Dispose(); }
public async Task Dispose_DisposedInstance_DoesNotDisposeTheBaseStream(bool useAsync) { // Arrange var streamSpy = Spy.OnStream(Samples.GetBasicTableStream()); var table = await this.Exec(() => Table.Open(streamSpy), useAsync); // Act table.Dispose(); table.Dispose(); // Assert streamSpy.Received(requiredNumberOfCalls: 1).Dispose(); }
public async Task OpenAsync_CustomHeaderLoader_LoadsHeaderWithTheLoader() { // Arrange var headerLoader = Substitute.ForPartsOf <HeaderLoader>(); // Act using (var table = await Table.OpenAsync(Samples.GetBasicTableStream(), headerLoader)) { } #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed // Assert headerLoader.Received().LoadAsync(Arg.Any <Stream>()); #pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed }
public async Task StreamWithPartialReads_ReadsTheTableProperly(bool useAsync) { using (var tableStream = Samples.GetBasicTableStream().EmulatePartialReads()) using (var table = await this.Exec(() => Table.Open(tableStream), useAsync)) { var reader = table.OpenReader(); var actualTableContent = new Dictionary <string, List <object> >(); foreach (var column in table.Columns) { actualTableContent.Add(column.Name, new List <object>()); } while (await reader.Exec(r => r.Read(), useAsync)) { foreach (var column in table.Columns) { actualTableContent[column.Name].Add(reader.GetValue(column)); } } actualTableContent.ShouldAllBeEquivalentTo(Samples.BasicTableContent); } }