Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/new features #27

Merged
merged 4 commits into from
Jan 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,35 @@ public static class WireMockServerExtensions
/// <remarks>
/// The current thread will be blocked until WireMockInspector process exits.
/// </remarks>
public static void Inspect(this IWireMockServer wireMock, [CallerMemberName] string title = "")
public static void Inspect(this IWireMockServer wireMock, [CallerMemberName] string title = "", string requestFilters = "")
{
if (wireMock.IsStarted == false)
throw new InvalidOperationException("WireMock server is not started");

if (wireMock.IsStartedWithAdminInterface == false)
throw new InvalidOperationException("WireMock service is not started with Admin interface");

Inspect(wireMock.Url!, title);
Inspect(wireMock.Url!, title, requestFilters);
}

/// <summary>
/// Run WireMockInspector dotnet tool and attach it to existing WireMockServer listening under given url
/// </summary>
public static void Inspect(string wireMockUrl, [CallerMemberName] string title = "")
public static void Inspect(string wireMockUrl, [CallerMemberName] string title = "", string requestFilters = "")
{
//request.header.traceparent:*0fd18063ed68b122d3e659ecbb4e6f0d*
try
{
var arguments = $"attach --adminUrl {wireMockUrl} --autoLoad --instanceName \"{title}\"";
if (string.IsNullOrWhiteSpace(requestFilters) == false)
{
arguments += $" --requestFilters \"{requestFilters}\"";
}

var inspectorProcess = Process.Start(new ProcessStartInfo
{
FileName = "wiremockinspector",
Arguments = $"attach --adminUrl {wireMockUrl} --autoLoad --instanceName {title}",
Arguments = arguments,
UseShellExecute = false
});

Expand Down
11 changes: 8 additions & 3 deletions src/WireMockInspector/App.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,20 @@ public override void OnFrameworkInitializationCompleted()
attachCommand.AddOption(autoLoadOption);
var instanceNameOption = new Option<string>("--instanceName") { IsRequired = false };
attachCommand.AddOption(instanceNameOption);

var requestFiltersOption = new Option<string>("--requestFilters") { IsRequired = false };
attachCommand.AddOption(requestFiltersOption);

attachCommand.SetHandler((adminUrl, autoLoad, instanceName) =>
attachCommand.SetHandler((adminUrl, autoLoad, instanceName, requestFilters) =>
{
mainWindow.Settings = new StartupSettings
{
AdminUrl = adminUrl,
InstanceName = instanceName,
AutoLoad = autoLoad
AutoLoad = autoLoad,
RequestFilters = requestFilters
};
}, adminUrlOption, autoLoadOption, instanceNameOption);
}, adminUrlOption, autoLoadOption, instanceNameOption, requestFiltersOption);
rootCommand.AddCommand(attachCommand);
rootCommand.SetHandler(() => { });
rootCommand.Invoke(args);
Expand All @@ -63,5 +67,6 @@ public class StartupSettings
public string AdminUrl { get; set; }
public bool AutoLoad { get; set; }
public string InstanceName { get; set; }
public string RequestFilters { get; set; }
}
}
6 changes: 5 additions & 1 deletion src/WireMockInspector/Views/MainWindow.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,13 @@ public MainWindow()
if (Settings != null)
{
ViewModel.AdminUrl = Settings.AdminUrl;

if (Settings.AutoLoad)
{
ViewModel.LoadRequestsCommand.Execute().Subscribe().DisposeWith(disposables);
ViewModel.LoadRequestsCommand.Execute().ObserveOn(RxApp.MainThreadScheduler).Subscribe(_ =>
{
ViewModel.RequestSearchTerm = Settings.RequestFilters;
}).DisposeWith(disposables);
}

if (string.IsNullOrWhiteSpace(Settings.InstanceName) == false)
Expand Down
16 changes: 11 additions & 5 deletions src/WireMockInspector/Views/RequestDetails.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -258,13 +258,19 @@
<Label DockPanel.Dock="Left" VerticalAlignment="Center" >Diff</Label>
</DockPanel>
</Border>
<Grid IsVisible="{Binding Diff, Converter={x:Static ObjectConverters.IsNotNull}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
<Grid IsVisible="{Binding Diff, Converter={x:Static ObjectConverters.IsNotNull}}" >
<Grid.ColumnDefinitions >
<ColumnDefinition Width="0.5*"></ColumnDefinition>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<views:CodeBlockViewer Margin="0,5,0,0" Code="{Binding Diff.Left }" />
<views:CodeBlockViewer Grid.Column="1" Margin="0,5,0,0" Code="{Binding Diff.Right }" />
<Grid.RowDefinitions >
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" TextAlignment="Center" HorizontalAlignment="Stretch" Background="#ff6674ff" Margin="0,0,1,0" >EXPECTED</TextBlock>
<TextBlock Grid.Row="0" Grid.Column="1" TextAlignment="Center" HorizontalAlignment="Stretch" Background="#ff6674ff" Margin="1,0,0,0">ACTUAL</TextBlock>
<views:CodeBlockViewer Grid.Row="1" Margin="0,5,1,0" Code="{Binding Diff.Left }" />
<views:CodeBlockViewer Grid.Row="1" Grid.Column="1" Margin="1,5,0,0" Code="{Binding Diff.Right }" />
</Grid>
</StackPanel>
</Expander>
Expand Down
30 changes: 15 additions & 15 deletions src/WireMockInspector/WireMockInspector.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -40,27 +40,27 @@
<ItemGroup>
<PackageReference Include="AutomaticGraphLayout" Version="1.1.12" />
<PackageReference Include="AutomaticGraphLayout.Drawing" Version="1.1.12" />
<PackageReference Include="Avalonia" Version="11.0.0" />
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.0.0" />
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.0.0" />
<PackageReference Include="Avalonia.Desktop" Version="11.0.0" />
<PackageReference Include="Avalonia.Svg" Version="11.0.0" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.0" />
<PackageReference Include="Avalonia" Version="11.0.6" />
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.0.5" />
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.0.6" />
<PackageReference Include="Avalonia.Desktop" Version="11.0.6" />
<PackageReference Include="Avalonia.Svg" Version="11.0.0.9" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.6" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.0" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.0" />
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.0.0" />
<PackageReference Include="DiffPlex" Version="1.7.1" />
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.6" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.6" />
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.0.5" />
<PackageReference Include="DiffPlex" Version="1.7.2" />
<PackageReference Include="JsonDiffPatch.Net" Version="2.3.0" />
<PackageReference Include="Lucene.Net" Version="4.8.0-beta00016" />
<PackageReference Include="Lucene.Net.Analysis.Common" Version="4.8.0-beta00016" />
<PackageReference Include="Lucene.Net.QueryParser" Version="4.8.0-beta00016" />
<PackageReference Include="Markdown.Avalonia" Version="11.0.0" />
<PackageReference Include="Markdown.Avalonia.SyntaxHigh" Version="11.0.0" />
<PackageReference Include="MessageBox.Avalonia" Version="3.0.0" />
<PackageReference Include="Markdown.Avalonia" Version="11.0.2" />
<PackageReference Include="Markdown.Avalonia.SyntaxHigh" Version="11.0.2" />
<PackageReference Include="MessageBox.Avalonia" Version="3.1.5.1" />
<PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
<PackageReference Include="TextMateSharp.Grammars" Version="1.0.55" />
<PackageReference Include="WireMock.Net.RestClient" Version="1.5.23" />
<PackageReference Include="TextMateSharp.Grammars" Version="1.0.56" />
<PackageReference Include="WireMock.Net.RestClient" Version="1.5.46" />
<!--<PackageReference Include="XamlNameReferenceGenerator" Version="1.6.1" />-->
</ItemGroup>

Expand Down
Loading