private static string resolveAssemblyDllFromBaseDirectory(string name, string baseDirectory) { progress("dllFromBase: Resolve [" + name + "] from " + baseDirectory); // Resolve name to the dll as if .exe in baseDirectory was executed AppDomainSetup setup = new AppDomainSetup(); setup.ApplicationBase = baseDirectory; setup.DisallowApplicationBaseProbing = false; AppDomain dtest = AppDomain.CreateDomain("temp" + Guid.NewGuid(), null, setup); progress("dllFromBase: Domain created"); try { System.Runtime.Remoting.ObjectHandle v = Activator.CreateInstanceFrom(dtest, Assembly.GetExecutingAssembly().Location, typeof(AppDomainWorker).FullName); if (v != null) { AppDomainWorker appDomainWorker = v.Unwrap() as AppDomainWorker; progress("dllFromBase: Resolver created"); if (appDomainWorker != null) { string s = appDomainWorker.ResolveDllFromAssemblyName(name); progress("dllFromBase: " + name + " >> " + s); return(s); } } progress("dllFromBase: Resolve " + name + " failed"); return(null); } finally { AppDomain.Unload(dtest); } }
private static IList <Type> ReturnCmdletTypesAndAssemblyName(string[] cmdlets) { var assemblyPath = typeof(TestDummyCommand).Assembly.Location; string assembyName; var types = AppDomainWorker.GetCmdletTypes(assemblyPath, cmdlets, out assembyName); Assert.Equal($"{ExpectedAssemblyName}", assembyName); Assert.True(types.Count >= 1); Assert.Contains(types, t => t.FullName == $"{ExpectedAssemblyName}.TestDummyCommand"); if (cmdlets != null && cmdlets?.Length == 1) { Assert.DoesNotContain(types, t => t.FullName == $"{ExpectedAssemblyName}.TestDummyTwoCommand"); } return(types); }
public void BuildConfiguration() { var cmdlets = new[] { "Test-Dummy" }; var types = ReturnCmdletTypesAndAssemblyName(cmdlets); var conf = new AppDomainWorker().BuildXmlConfiguration(types); Assert.Equal(4, conf.ViewDefinitions.Views.Length); var view0 = conf.ViewDefinitions.Views[0]; Assert.Equal($"{ExpectedAssemblyName}.Models.PsDummyOutput1", view0?.ViewSelectedBy?.TypeName); var expecterProps1 = new[] { "RequestId", "StatusCode", "Id", "Name", "Type" }; var columnItems = view0?.TableControl?.TableRowEntries[0]?.TableColumnItems; Assert.NotNull(columnItems); Assert.Equal(expecterProps1.Length, columnItems.Length); foreach (var expectedProp in expecterProps1) { Assert.Contains(columnItems, ci => ci.PropertyName == expectedProp); } }