public void test_openCirDataControlUsingLocalWcfHost() { O2WcfUtils.createWcfHostForThisO2KernelProcess(); IO2WcfKernelMessage o2WcfProxy = O2WcfUtils.getClientProxyForThisO2KernelProcess(); var ascxControlName = "Cir Analysis"; Assert.That(o2WcfProxy.allOK(), "o2WcfProxy.allOK() returned false"); DI.log.info("o2WcfProxy.allOK() = {0}", o2WcfProxy.allOK()); Assert.That(Processes.getCurrentProcessID() == o2WcfProxy.getO2KernelProcessId(), "Processes ID should be the same"); o2WcfProxy.O2Messages("openAscxAsForm", new object[] { typeof(ascx_CirAnalysis).FullName, ascxControlName }); o2WcfProxy.O2Messages("executeOnAscxSync", new object[] { ascxControlName, "loadO2CirDataFile", new [] { DI.config.ExecutingAssembly } }); //o2WcfProxy.O2Messages("getAscxSync", new object[] {ascxControlName}); //var cirClasses = o2WcfProxy.O2Messages("executeOnAscxSync", new object[] { ascxControlName, "getClasses", new string[0]}); var cirClasses = o2WcfProxy.getStringListFromAscxControl(ascxControlName, "getClasses", new string[0]); Assert.That(cirClasses != null, "prob with fetched cirClasses object"); Assert.That(cirClasses.Count > 0, "There were no classes returned in cirClasses"); DI.log.info("There were {0} classes returned", cirClasses.Count); var cirFunctions = o2WcfProxy.getStringListFromAscxControl(ascxControlName, "getFunctions", new string[0]); Assert.That(cirFunctions != null && cirFunctions.Count > 0, "prob with fetched cirFunctions object"); DI.log.info("There were {0} functions returned", cirFunctions.Count); o2WcfProxy.O2Messages("closeAscxParent", new object[] { ascxControlName }); WCF_DI.o2WcfKernelMessage.stopHost(); //o2WcfProxy.closeO2KernelProcess(); }
public void runTestsViaWcfProxy(IO2WcfKernelMessage o2WcfProxy) { // first thing to do is to create a new AppDomain that has all the required dlls for the two main types we want to load ascx_CirAnalysis and O2AscxGUI var testAppDomain = "AppDomainWithCirData"; var targetAssemblies = new List <string> { typeof(ascx_CirAnalysis).Assembly.Location, typeof(O2AscxGUI).Assembly.Location }; var dependentAssemblies = new CecilAssemblyDependencies(targetAssemblies, new List <string> { DI.config.hardCodedO2LocalBuildDir }).calculateDependencies(); o2WcfProxy.createAppDomainWithDlls(testAppDomain, new List <string>(dependentAssemblies.Values)); // remote O2 Kernel is all set, now let's open the ascx_CirAnalyis control var ascxControlName = "Cir Analysis"; o2WcfProxy.invokeOnAppDomainObject(testAppDomain, typeof(O2AscxGUI).FullName, "openAscxAsForm", new object[] { typeof(ascx_CirAnalysis).FullName, ascxControlName }); // make sure it is there Assert.That((bool)o2WcfProxy.invokeOnAppDomainObject(testAppDomain, typeof(O2AscxGUI).FullName, "isAscxLoaded", new object[] { ascxControlName }), "isAscxLoaded should be true here"); Assert.That(false == (bool)o2WcfProxy.invokeOnAppDomainObject(testAppDomain, typeof(O2AscxGUI).FullName, "isAscxLoaded", new object[] { "dummyControlName" }), "isAscxLoaded should be false here"); // now load some CirData into it o2WcfProxy.O2Messages("executeOnAscxSync", new object[] { ascxControlName, "loadO2CirDataFile", new [] { DI.config.ExecutingAssembly } }); // and retrive the data as string lists var cirClasses = o2WcfProxy.getStringListFromAscxControl(ascxControlName, "getClasses", new string[0]); var cirFunctions = o2WcfProxy.getStringListFromAscxControl(ascxControlName, "getFunctions", new string[0]); Assert.That(cirClasses.Count > 0 && cirFunctions.Count > 0, "There were no classes or functions returned in cirClasses"); DI.log.info("There were {0} classes returned", cirClasses.Count); DI.log.info("There were {0} functions returned", cirFunctions.Count); // close the control and its parant form o2WcfProxy.invokeOnAppDomainObject(testAppDomain, typeof(O2AscxGUI).FullName, "closeAscxParent", new object[] { ascxControlName }); }
public void runTestsViaWcfProxy(IO2WcfKernelMessage o2WcfProxy) { // first thing to do is to create a new AppDomain that has all the required dlls for the two main types we want to load ascx_CirAnalysis and O2AscxGUI var testAppDomain = "AppDomainWithCirData"; var targetAssemblies = new List<string> { typeof(ascx_CirAnalysis).Assembly.Location, typeof(O2AscxGUI).Assembly.Location }; var dependentAssemblies = new CecilAssemblyDependencies(targetAssemblies, new List<string> { DI.config.hardCodedO2LocalBuildDir }).calculateDependencies(); o2WcfProxy.createAppDomainWithDlls(testAppDomain, new List<string>(dependentAssemblies.Values)); // remote O2 Kernel is all set, now let's open the ascx_CirAnalyis control var ascxControlName = "Cir Analysis"; o2WcfProxy.invokeOnAppDomainObject(testAppDomain, typeof(O2AscxGUI).FullName, "openAscxAsForm", new object[] { typeof(ascx_CirAnalysis).FullName, ascxControlName }); // make sure it is there Assert.That((bool)o2WcfProxy.invokeOnAppDomainObject(testAppDomain, typeof(O2AscxGUI).FullName, "isAscxLoaded", new object[] { ascxControlName }), "isAscxLoaded should be true here"); Assert.That(false == (bool)o2WcfProxy.invokeOnAppDomainObject(testAppDomain, typeof(O2AscxGUI).FullName, "isAscxLoaded", new object[] { "dummyControlName" }), "isAscxLoaded should be false here"); // now load some CirData into it o2WcfProxy.O2Messages("executeOnAscxSync", new object[] { ascxControlName, "loadO2CirDataFile", new [] { DI.config.ExecutingAssembly } }); // and retrive the data as string lists var cirClasses = o2WcfProxy.getStringListFromAscxControl(ascxControlName, "getClasses", new string[0]); var cirFunctions = o2WcfProxy.getStringListFromAscxControl(ascxControlName, "getFunctions", new string[0]); Assert.That(cirClasses.Count > 0 && cirFunctions.Count >0, "There were no classes or functions returned in cirClasses"); DI.log.info("There were {0} classes returned", cirClasses.Count); DI.log.info("There were {0} functions returned", cirFunctions.Count); // close the control and its parant form o2WcfProxy.invokeOnAppDomainObject(testAppDomain, typeof(O2AscxGUI).FullName, "closeAscxParent", new object[] { ascxControlName }); }