Fix libpq parsing and refactors/code cleanup

This commit is contained in:
eelke 2025-08-31 13:11:59 +02:00
parent 0090f39910
commit 739d6bd65a
12 changed files with 234 additions and 543 deletions

View file

@ -1,9 +1,5 @@
using System;
using System.Linq;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Headless.XUnit;
using Avalonia.Threading;
using pgLabII.Model;
using pgLabII.ViewModels;
using pgLabII.Views;
@ -52,10 +48,10 @@ public class EditServerConfigurationWindowTests
{
var vm = new EditServerConfigurationViewModel(new ServerConfiguration());
// A semicolon-separated string that could be auto-detected as Npgsql
vm.InputConnectionString = "Host=server;Username=bob;Password=secret;Database=db1;SSL Mode=Require";
// Use a string with quoted values that libpq would struggle with due to incorrect quoting
vm.InputConnectionString = "Host=\"server with spaces\";Username=\"bob\";Password=\"secret\";Database=\"db1\"";
// Force interpret as libpq should fail to parse (libpq uses spaces) and keep defaults
// Force interpret as libpq should fail to parse (libpq expects single quotes, not double quotes for quoting)
vm.ForcedFormat = EditServerConfigurationViewModel.ForcedFormatOption.Libpq;
vm.ParseConnectionStringCommand.Execute().Subscribe();
@ -65,7 +61,7 @@ public class EditServerConfigurationWindowTests
// Now set to Auto and parse again -> should detect Npgsql and parse
vm.ForcedFormat = EditServerConfigurationViewModel.ForcedFormatOption.Auto;
vm.ParseConnectionStringCommand.Execute().Subscribe();
Assert.Equal("server", vm.Configuration.Host);
Assert.Equal("server with spaces", vm.Configuration.Host);
Assert.Equal("db1", vm.Configuration.InitialDatabase);
Assert.Equal("bob", vm.Configuration.User.Name);
}