public async Task NestedObjectShouldBeExportedAndImportedProperly() { const string id = "companies/1"; using (var store = GetDocumentStore()) { string cv; using (var session = store.OpenSession()) { session.Store(_testCompany, id); session.SaveChanges(); cv = session.Advanced.GetChangeVectorFor(_testCompany); } var client = new HttpClient(); var stream = await client.GetStreamAsync($"{store.Urls[0]}/databases/{store.Database}/streams/queries?query=From%20companies&format=csv"); using (var commands = store.Commands()) { var getOperationIdCommand = new GetNextOperationIdCommand(); await commands.RequestExecutor.ExecuteAsync(getOperationIdCommand, commands.Context); var operationId = getOperationIdCommand.Result; { var csvImportCommand = new CsvImportCommand(stream, null, operationId); await commands.ExecuteAsync(csvImportCommand); var operation = new Operation(commands.RequestExecutor, () => store.Changes(), store.Conventions, operationId); await operation.WaitForCompletionAsync(); } } using (var session = store.OpenSession()) { var res = session.Load <Company>(id); Assert.NotEqual(session.Advanced.GetChangeVectorFor(res), cv); try { Assert.Equal(res, _testCompany); } catch (Exception) { var sb = new StringBuilder(); sb.AppendLine("Expected:"); sb.AppendLine(JObject.FromObject(res).ToString(Formatting.Indented)); sb.AppendLine(); sb.AppendLine("Actual:"); sb.AppendLine(JObject.FromObject(_testCompany).ToString(Formatting.Indented)); Console.WriteLine(sb); throw; } } } }
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); } } }
public async Task NestedObjectShouldBeExportedAndImportedProperly() { var id = "companies/1"; string cv; using (var store = GetDocumentStore()) { using (var session = store.OpenSession()) { session.Store(_testCompany, id); session.SaveChanges(); cv = session.Advanced.GetChangeVectorFor(_testCompany); } var client = new HttpClient(); var stream = await client.GetStreamAsync($"{store.Urls[0]}/databases/{store.Database}/streams/queries?query=From%20companies&format=csv"); using (var commands = store.Commands()) { var getOperationIdCommand = new GetNextOperationIdCommand(); await commands.RequestExecutor.ExecuteAsync(getOperationIdCommand, commands.Context); var operationId = getOperationIdCommand.Result; { var csvImportCommand = new CsvImportCommand(stream, null, operationId); await commands.ExecuteAsync(csvImportCommand); var operation = new Operation(commands.RequestExecutor, () => store.Changes(), store.Conventions, operationId); await operation.WaitForCompletionAsync(); } } using (var session = store.OpenSession()) { var res = session.Load <Company>(id); Assert.NotEqual(session.Advanced.GetChangeVectorFor(res), cv); Assert.Equal(res, _testCompany); } } }
public async Task ExportingAndImportingCsvUsingQueryFromDocumentShouldWork() { using (var store = GetDocumentStore()) { using (var session = store.OpenSession()) { session.Store(_testCompany, "companies/1"); session.Store(new{ Query = "From%20companies" }, "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 csvImportCommand = new CsvImportCommand(stream, null, operationId); await commands.ExecuteAsync(csvImportCommand); var operation = new Operation(commands.RequestExecutor, () => store.Changes(), store.Conventions, operationId); await operation.WaitForCompletionAsync(); } } using (var session = store.OpenSession()) { var res = session.Query <Company>().ToList(); Assert.Equal(2, res.Count); Assert.Equal(res[0], res[1]); } } }