public CsvImportCommand(Stream stream, string collection, long operationId, InValidCsvImportOptions inValidCsvConfiguration = null) { _stream = stream ?? throw new ArgumentNullException(nameof(stream)); _collection = collection; _operationId = operationId; _csvConfig = inValidCsvConfiguration; }
public async Task CannotImportCsvWithInvalidCsvConfigCharParams() { using (var store = GetDocumentStore()) { using (var session = store.OpenSession()) { session.Store(_testCompany, "companies/1"); session.Store(new { Query = "From companies" }, "queries/1"); session.SaveChanges(); } var client = new HttpClient(); var stream = await client.GetStreamAsync($"{store.Urls[0]}/databases/{store.Database}/streams/queries?fromDocument=queries%2F1&format=csv"); using (var commands = store.Commands()) { var getOperationIdCommand = new GetNextOperationIdCommand(); await commands.RequestExecutor.ExecuteAsync(getOperationIdCommand, commands.Context); var operationId = getOperationIdCommand.Result; var invalidCsvConfig = new InValidCsvImportOptions() { Delimiter = ",", Quote = " '", // 2 characters is invalid Comment = " #", // 2 characters is invalid AllowComments = true, TrimOptions = "None" }; var csvImportCommand = new CsvImportCommand(stream, null, operationId, invalidCsvConfig); var exception = await Assert.ThrowsAsync <Raven.Client.Exceptions.RavenException>(async() => { await commands.ExecuteAsync(csvImportCommand); var operation = new Operation(commands.RequestExecutor, () => store.Changes(), store.Conventions, operationId); await operation.WaitForCompletionAsync(); }); Assert.Contains("Please verify that only one character is used", exception.Message); } } }