public void ProcessErrorRecord() { // Arrange bool fatal = true; string name = "name"; string description = "description"; long position = 12345; Dictionary <string, object> record = new Dictionary <string, object> { { Constants.QuickQuery.Fatal, fatal }, { Constants.QuickQuery.Name, name }, { Constants.QuickQuery.Description, description }, { Constants.QuickQuery.Position, position } }; BlobQueryError expectedError = new BlobQueryError { IsFatal = fatal, Name = name, Description = description, Position = position }; BlobQueryErrorHandler errorHandler = new BlobQueryErrorHandler(expectedError); BlobQuickQueryStream quickQueryStream = new BlobQuickQueryStream( new MemoryStream(),
public async Task QueryAsync_FatalError() { // Arrange await using DisposingContainer test = await GetTestContainerAsync(); BlockBlobClient blockBlobClient = InstrumentClient(test.Container.GetBlockBlobClient(GetNewBlobName())); Stream stream = CreateDataStream(Constants.KB); await blockBlobClient.UploadAsync(stream); string query = @"SELECT * from BlobStorage;"; BlobQueryJsonTextOptions jsonTextConfiguration = new BlobQueryJsonTextOptions { RecordSeparator = "\n" }; BlobQueryOptions options = new BlobQueryOptions { InputTextConfiguration = jsonTextConfiguration }; // Act - with no IBlobQueryErrorReceiver Response <BlobDownloadInfo> response = await blockBlobClient.QueryAsync( query, options); using StreamReader streamReader = new StreamReader(response.Value.Content); string s = await streamReader.ReadToEndAsync(); // Act - with IBlobQueryErrorReceiver BlobQueryError expectedBlobQueryError = new BlobQueryError { IsFatal = true, Name = "ParseError", Description = "Unexpected token ',' at [byte: 3]. Expecting tokens '{', or '['.", Position = 0 }; BlobQueryErrorHandler errorHandler = new BlobQueryErrorHandler(expectedBlobQueryError); options = new BlobQueryOptions { InputTextConfiguration = jsonTextConfiguration, }; options.ErrorHandler += errorHandler.Handle; response = await blockBlobClient.QueryAsync( query, options); using StreamReader streamReader2 = new StreamReader(response.Value.Content); s = await streamReader2.ReadToEndAsync(); }
public async Task QueryAsync_NonFatalError() { // Arrange await using DisposingContainer test = await GetTestContainerAsync(); BlockBlobClient blockBlobClient = InstrumentClient(test.Container.GetBlockBlobClient(GetNewBlobName())); byte[] data = Encoding.UTF8.GetBytes("100,pizza,300,400\n300,400,500,600\n"); using MemoryStream stream = new MemoryStream(data); await blockBlobClient.UploadAsync(stream); string query = @"SELECT _1 from BlobStorage WHERE _2 > 250;"; // Act - with no IBlobQueryErrorReceiver Response <BlobDownloadInfo> response = await blockBlobClient.QueryAsync(query); using StreamReader streamReader = new StreamReader(response.Value.Content); string s = await streamReader.ReadToEndAsync(); // Act - with IBlobQueryErrorReceiver BlobQueryError expectedBlobQueryError = new BlobQueryError { IsFatal = false, Name = "InvalidTypeConversion", Description = "Invalid type conversion.", Position = 0 }; BlobQueryErrorHandler errorHandler = new BlobQueryErrorHandler(expectedBlobQueryError); BlobQueryOptions options = new BlobQueryOptions(); options.ErrorHandler += errorHandler.Handle; response = await blockBlobClient.QueryAsync( query, options); using StreamReader streamReader2 = new StreamReader(response.Value.Content); s = await streamReader2.ReadToEndAsync(); }