Example #1
0
            public CsvImportCommand(Stream stream, string collection, long operationId, InValidCsvImportOptions inValidCsvConfiguration = null)
            {
                _stream = stream ?? throw new ArgumentNullException(nameof(stream));

                _collection  = collection;
                _operationId = operationId;
                _csvConfig   = inValidCsvConfiguration;
            }
Example #2
0
        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);
                }
            }
        }