aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.TestPackage/WixRunner.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core.TestPackage/WixRunner.cs')
-rw-r--r--src/WixToolset.Core.TestPackage/WixRunner.cs35
1 files changed, 9 insertions, 26 deletions
diff --git a/src/WixToolset.Core.TestPackage/WixRunner.cs b/src/WixToolset.Core.TestPackage/WixRunner.cs
index 679956bd..940b55a8 100644
--- a/src/WixToolset.Core.TestPackage/WixRunner.cs
+++ b/src/WixToolset.Core.TestPackage/WixRunner.cs
@@ -6,6 +6,8 @@ namespace WixToolset.Core.TestPackage
6 using System.Collections.Generic; 6 using System.Collections.Generic;
7 using System.Threading; 7 using System.Threading;
8 using System.Threading.Tasks; 8 using System.Threading.Tasks;
9 using WixToolset.Core.Burn;
10 using WixToolset.Core.WindowsInstaller;
9 using WixToolset.Data; 11 using WixToolset.Data;
10 using WixToolset.Extensibility.Data; 12 using WixToolset.Extensibility.Data;
11 using WixToolset.Extensibility.Services; 13 using WixToolset.Extensibility.Services;
@@ -26,40 +28,21 @@ namespace WixToolset.Core.TestPackage
26 return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() }; 28 return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() };
27 } 29 }
28 30
29 public static Task<int> Execute(string[] args, IWixToolsetServiceProvider serviceProvider, out List<Message> messages) 31 public static Task<int> Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List<Message> messages)
30 { 32 {
33 coreProvider.AddWindowsInstallerBackend()
34 .AddBundleBackend();
35
31 var listener = new TestMessageListener(); 36 var listener = new TestMessageListener();
32 37
33 messages = listener.Messages; 38 messages = listener.Messages;
34 39
35 var messaging = serviceProvider.GetService<IMessaging>(); 40 var messaging = coreProvider.GetService<IMessaging>();
36 messaging.SetListener(listener); 41 messaging.SetListener(listener);
37 42
38 var arguments = serviceProvider.GetService<ICommandLineArguments>(); 43 var commandLine = coreProvider.GetService<ICommandLine>();
39 arguments.Populate(args); 44 var command = commandLine.CreateCommand(args);
40
41 var commandLine = serviceProvider.GetService<ICommandLine>();
42 commandLine.ExtensionManager = CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions);
43 commandLine.Arguments = arguments;
44 var command = commandLine.ParseStandardCommandLine();
45 return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1); 45 return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1);
46 } 46 }
47
48 private static IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, string[] extensions)
49 {
50 var extensionManager = serviceProvider.GetService<IExtensionManager>();
51
52 foreach (var type in new[] { typeof(WixToolset.Core.Burn.WixToolsetStandardBackend), typeof(WixToolset.Core.WindowsInstaller.WixToolsetStandardBackend) })
53 {
54 extensionManager.Add(type.Assembly);
55 }
56
57 foreach (var extension in extensions)
58 {
59 extensionManager.Load(extension);
60 }
61
62 return extensionManager;
63 }
64 } 47 }
65} 48}