Beispiel #1
0
        private Hashtable ExecuteScript(string businessName, string parameters, Hashtable report)
        {
            PowerShell powerShell = base.GetPowerShell();

            SetWorkingDirectory(powerShell, BusinessesFolder.GetFolder(businessName));
            powerShell.AddScript(@"foreach($i in $input) {$report = $i};. .\main.ps1;Main " + parameters);
            Collection <PSObject> results = Invoke(powerShell, new[] { report });

            return(GetObject <Hashtable>(powerShell, results));
        }
Beispiel #2
0
        public void TestGetInstance()
        {
            // when
            Business business = Business.GetInstance("xxx");

            // then
            Assert.AreEqual("xxx", business.Name);
            Assert.IsNull(business.Parameters);
            Assert.AreEqual(30, business.TimerInterval);
            Assert.IsFalse(Directory.Exists(BusinessesFolder.GetFolder("xxx")));
        }
        internal Hashtable ExecuteScript(string name)
        {
            string     folder     = BusinessesFolder.GetFolder(name);
            PowerShell powerShell = base.GetPowerShell();

            powerShell.Runspace.SessionStateProxy.Path.SetLocation(folder);
            powerShell.AddScript(Script);
            Collection <PSObject> results = Invoke(powerShell, null);

            return(results.Select(pso => (Hashtable)pso.BaseObject).First());
        }
 internal static BusinessInformation GetInstance(string name)
 {
     if (Directory.Exists(BusinessesFolder.GetFolder(name)))
     {
         return(BusinessInformationScriptEngine.Load(name));
     }
     else
     {
         return(new BusinessInformation()
         {
             Name = name
         });
     }
 }
        public void TestErrorTheScriptMustReturnObject()
        {
            // setup
            BusinessesFolder.Initialize(BusinessesFolder.TimeKeeping);
            string script = Path.Combine(BusinessesFolder.GetFolder(BusinessesFolder.TimeKeeping), "main.ps1");

            TestUtil.Replace(script, "    $newReport\r\n}", "}");

            try
            {
                // when
                BusinessScriptEngine.Execute(BusinessesFolder.TimeKeeping, null, new Hashtable());
                Assert.Fail("ここにはこない");
            }
            catch (ApplicationException e)
            {
                // then
                Console.WriteLine(e.Message);
                Assert.AreEqual("the script must return a instance of Hashtable", e.Message);
            }
        }