WriteVerbose() public method

public WriteVerbose ( PSCmdletBase cmdlet, object obj ) : void
cmdlet PSCmdletBase
obj object
return void
Example #1
0
        public void WriteVerbose(PSCmdletBase cmdlet, object obj)
        {
            if (UnitTestMode)
            {
                UnitTestOutput.CheckInitialized();
                UnitTestOutput.StartAddingOutput();
            }

            string cmdletName   = "? : ";
            string objectString = string.Empty;

            try {
                objectString = obj.ToString();
            }
            catch {}

            if (null != cmdlet)
            {
                try {
                    cmdletName =
                        CmdletSignature(cmdlet);

                    cmdlet.WriteVerbose(cmdletName + objectString);
                }
                catch {
                    cmdlet.WriteVerbose(cmdletName + "failed");
                }
            }
            else
            {
                cmdlet.WriteVerbose(cmdletName + objectString);
            }
        }
Example #2
0
        // temporary
        public void WriteVerbose(PSCmdletBase cmdlet, string text)
        {
            // 20140314
            return;

            // 20121117
            //if (!this.UnitTestMode) {
            if (!UnitTestMode)
            {
                try {
                    string cmdletName = "? : ";

                    if (null != cmdlet)
                    {
                        try {
                            cmdletName =
                                CmdletSignature(cmdlet);

                            cmdlet.WriteVerbose(cmdletName + text);
                        }
                        catch {
                            cmdlet.WriteVerbose(cmdletName + "failed");
                        }
                    }
                    else
                    {
                        try {
                            cmdlet.WriteVerbose(cmdletName + text);
                        }
                        catch {}
                    }

                    // WriteLog(reportString);

                    // 20130430
                    WriteLog(LogLevels.Trace, text);
                }
                catch (Exception) {
                    // ??
                }
            }
        }
Example #3
0
        void writeSingleObject(PSCmdletBase cmdlet, object outputObject)
        {
            if (CheckSingleObject(cmdlet, outputObject))
            {
                cmdlet.WriteVerbose(cmdlet, "the output object is not null");

//                WriteObjectMethod020Highlight(cmdlet, outputObject);
//
//                WriteObjectMethod030RunScriptBlocks(cmdlet, outputObject);
//
//                WriteObjectMethod040SetTestResult(cmdlet, outputObject);
//
//                WriteObjectMethod045OnSuccessScreenshot(cmdlet, outputObject);
//
//                WriteObjectMethod050OnSuccessDelay(cmdlet, outputObject);

                BeforeWriteSingleObject(cmdlet, outputObject);

                //WriteSingleObject(cmdlet, outputObject);

                try {
                    if (UnitTestMode)
                    {
                        UnitTestOutput.Add(outputObject);
                    }
                    else
                    {
//                        WriteObjectMethod060OutputResult(cmdlet, outputObject);
                        WriteSingleObject(cmdlet, outputObject);
                    }
                }
                catch {}

                //WriteObjectMethod060OutputResult(cmdlet, outputObject);

                AfterWriteSingleObject(cmdlet, outputObject);

//                WriteObjectMethod070Report(cmdlet, outputObject);

                //WriteObjectMethod080ReportFailure();
            }
            else
            {
            }
        }
Example #4
0
        private void writeSingleObject(PSCmdletBase cmdlet, object outputObject)
        {
            //if (WriteObjectMethod010CheckOutputObject(outputObject)) {
            if (CheckSingleObject(cmdlet, outputObject)) {

                cmdlet.WriteVerbose(cmdlet, "the output object is not null");

            //                WriteObjectMethod020Highlight(cmdlet, outputObject);
            //
            //                WriteObjectMethod030RunScriptBlocks(cmdlet, outputObject);
            //
            //                WriteObjectMethod040SetTestResult(cmdlet, outputObject);
            //
            //                WriteObjectMethod045OnSuccessScreenshot(cmdlet, outputObject);
            //
            //                WriteObjectMethod050OnSuccessDelay(cmdlet, outputObject);

                BeforeWriteSingleObject(cmdlet, outputObject);

                //WriteSingleObject(cmdlet, outputObject);

                try {

                    if (PSCmdletBase.UnitTestMode) {

                        UnitTestOutput.Add(outputObject);

                    } else {

            //                        WriteObjectMethod060OutputResult(cmdlet, outputObject);
                        WriteSingleObject(cmdlet, outputObject);

                    }
                }
                catch {}

                //WriteObjectMethod060OutputResult(cmdlet, outputObject);

                AfterWriteSingleObject(cmdlet, outputObject);

            //                WriteObjectMethod070Report(cmdlet, outputObject);

                //WriteObjectMethod080ReportFailure();

            } else {

            }
        }
Example #5
0
        private static void runSQLCommand(PSCmdletBase cmdlet, IDatabase database, string SQLCode)
        {
            if (null == database) {
                cmdlet.WriteError(
                    cmdlet,
                    "Could not find the database with name '" +
                    database.Name +
                    "' among registered databases",
                    "CouldNotFindDB",
                    ErrorCategory.InvalidArgument,
                    true);
            }

            if (null == database.Connection) {

                database.Connection =
                    new SQLiteConnection(database.ConnectionString);

            }
            if (database.Connection.State == ConnectionState.Closed) {
                database.Connection.Open();
            }

            using (SQLiteCommand cmd =
                   new SQLiteCommand(SQLCode)) {

                cmd.Connection = database.Connection;
                //cmdlet.WriteVerbose(cmdlet, cmd.ExecuteNonQuery().ToString());

                int result = cmd.ExecuteNonQuery();

                cmdlet.WriteVerbose(
                    cmdlet,
                    SQLCode +
                    ": " +
                    result.ToString());
            }
        }
Example #6
0
        public static void OpenDatabase(
            PSCmdletBase cmdlet, 
            string fileName,
            bool structureDB,
            bool repositoryDB,
            bool resultsDB)
        {
            // check input

            try {
                string absolutePath =
                    System.IO.Path.GetFullPath(fileName);
                cmdlet.WriteVerbose(cmdlet, absolutePath);

                if (System.IO.File.Exists(absolutePath)) {
                    string connectionString =
                        "Data Source='" +
                        absolutePath +
                        "';Version=3;Max Pool Size=100;UseUTF16Encoding=True;";
                    cmdlet.WriteVerbose(cmdlet, connectionString);

                    using (SQLiteConnection conn = new SQLiteConnection(connectionString)) {

                        conn.Open();

                        IDatabase database =
                            new Database(
                                ((DatabaseFileCmdletBase)cmdlet).Name,
                                fileName,
                                conn);

                        // check structure DB

                        // check repository DB

                        // check data DB

                        conn.Close();

                        if (structureDB) {
                            TestData.CurrentStructureDB = database;
                        }
                        if (repositoryDB) {
                            TestData.CurrentRepositoryDB = database;
                        }
                        if (resultsDB) {
                            TestData.CurrentResultsDB = database;
                        }

                        SQLiteData.Databases.Add(database);

                        cmdlet.WriteObject(cmdlet, database);
                    }
                }
            }
            catch (Exception eOpenDB) {
                cmdlet.WriteError(
                    cmdlet,
                    "Unable to open the database. " +
                    eOpenDB.Message,
                    "OpenDBFailed",
                    ErrorCategory.InvalidOperation,
                    true);
            }
        }
Example #7
0
        public static void CreateConstant(
            PSCmdletBase cmdlet,
            //int testBucketId,
            ITestBucket bucket,
            string[] constantNames, 
            object[] constantValues,
            System.Type[] constantTypes)
        {
            try {
                checkConnection(TestData.CurrentStructureDB.Connection);

                DbProviderFactory factory = new SQLiteFactory();

                cmdlet.WriteVerbose(cmdlet, "begin transaction");
                using (DbTransaction dbTrans =
                       TestData.CurrentStructureDB.Connection.BeginTransaction()) {

                    cmdlet.WriteVerbose(cmdlet, "creating a data adapter");
                    using (DbDataAdapter adpConstant = factory.CreateDataAdapter()) {

                        cmdlet.WriteVerbose(cmdlet, "creating a command");
                        using (DbCommand cmd1 = TestData.CurrentStructureDB.Connection.CreateCommand()) {

                            cmd1.Transaction = dbTrans;
                            cmd1.CommandText = "SELECT * FROM TestConstants WHERE 1 = 2";
                            adpConstant.SelectCommand = cmd1;

                            using (DbCommandBuilder bldConstant = factory.CreateCommandBuilder()) {

                                bldConstant.DataAdapter = adpConstant;

                                using (DataTable tblConstant = new DataTable()) {

                                    adpConstant.Fill(tblConstant);

                                    for (int i = 0; i < constantNames.Length; i++) {
                                        DataRow rowConstant = tblConstant.NewRow();
                                        rowConstant["ConstantName"] = constantNames[i];
                                        //rowConstant["ConstantTag"] = constantTags[i];
                                        //rowConstant["Description"] = constantDescriptions[i];
                                        rowConstant["ConstantValue"] = constantValues[i];
                                        rowConstant["ConstantType"] = constantTypes[i];
                                        rowConstant["BucketId"] = bucket.BucketId;
                                        tblConstant.Rows.Add(rowConstant);

                                        ITestConstant constant =
                                            new TestConstant(
                                                constantNames[i],
                                                constantValues[i],
                                                constantTypes[i]);
                                        constant.BucketId = bucket.BucketId;
                                    }
                                    cmdlet.WriteVerbose(cmdlet, "12");
                                    cmdlet.WriteVerbose(cmdlet, tblConstant.Rows.Count.ToString() + " rows");
                                    adpConstant.Update(tblConstant);
                                    cmdlet.WriteVerbose(cmdlet, tblConstant.Rows.Count.ToString() + " rows");
                                    cmdlet.WriteVerbose(cmdlet, "14");
                                }
                            }
                        }
                    }
                    dbTrans.Commit();
                }
            }
            catch (Exception eCreateConstant) {
                cmdlet.WriteError(cmdlet,
                                  "Failed to create test constant(s). " +
                                  eCreateConstant.Message,
                                  "CreateConstantFailed",
                                  ErrorCategory.InvalidOperation,
                                  true);
            }
        }
Example #8
0
        protected internal void runTwoScriptBlockCollections(
            ScriptBlock[] scriptblocksSet1,
            ScriptBlock[] scriptblocksSet2,
            // 20130318
            //PSCmdletBase cmdlet)
            PSCmdletBase cmdlet,
            object[] parameters)
        {
            cmdlet.WriteVerbose(cmdlet, "preparing scriptblocks");

            System.Collections.Generic.List<ScriptBlock> scriptblocks =
                new System.Collections.Generic.List<ScriptBlock>();

            try {
                if (scriptblocksSet1 != null &&
                    scriptblocksSet1.Length > 0) {

                    foreach (ScriptBlock sb in scriptblocksSet1) {

                        scriptblocks.Add(sb);
                    }
                }

                if (scriptblocksSet2 != null &&
                    scriptblocksSet2.Length > 0) {

                    foreach (ScriptBlock sb in scriptblocksSet2) {

                        scriptblocks.Add(sb);
                    }
                }

            //                if (null == scriptblocks || 0 == scriptblocks.Count) {
            //
            //                    cmdlet.WriteVerbose(cmdlet, "there is no any StopAction scriptblock");
            //
            //                    //throw new Exception("There are no StopAction scriptblocks, define at least one");
            //                    cmdlet.WriteError(
            //                        cmdlet,
            //                        "There are no StopAction scriptblocks, define at least one",
            //                        "NoStopActionScriptblocks",
            //                        ErrorCategory.InvalidArgument,
            //                        true);
            //                }

                cmdlet.WriteVerbose(cmdlet, "scriptblocks were prepared");
            }
            catch (Exception eScriptblocksPreparation) {

                cmdlet.WriteVerbose(cmdlet, "Scriptblocks are not going to be run");

                cmdlet.WriteVerbose(cmdlet, eScriptblocksPreparation.Message);

                cmdlet.WriteError(
                    cmdlet,
                    eScriptblocksPreparation.Message,
                    "ScriptblocksNotPrepared",
                    ErrorCategory.InvalidOperation,
                    true);
            }

            // 20130318
            //runScriptBlocks(scriptblocks, cmdlet, false);
            // 20130319
            try {

                cmdlet.WriteVerbose(cmdlet, "running scriptblocks");

                runScriptBlocks(scriptblocks, cmdlet, false, parameters);

                cmdlet.WriteVerbose(cmdlet, "Scriptblocks finished successfully");
            }
            catch (Exception eScriptBlocks) {

                cmdlet.WriteVerbose(cmdlet, "Scriptblocks failed");

                cmdlet.WriteVerbose(cmdlet, eScriptBlocks.Message);

                cmdlet.WriteError(
                    cmdlet,
                    eScriptBlocks.Message,
                    "ScriptblocksFailed",
                    ErrorCategory.InvalidResult,
                    true);
            }
        }
Example #9
0
        // temporary
        public void WriteVerbose(PSCmdletBase cmdlet, string text)
        {
            // 20121117
            //if (!this.UnitTestMode) {
            if (!UnitTestMode) {
                try {
                string cmdletName = "? : ";

                if (null != cmdlet) {

                    try {

                        cmdletName =
                            CmdletSignature(cmdlet);

                        cmdlet.WriteVerbose(cmdletName + text);

                    }
                    catch {
                        cmdlet.WriteVerbose(cmdletName + "failed");
                    }
                } else {
                    try {
                        cmdlet.WriteVerbose(cmdletName + text);
                    }
                    catch {}
                }

                // WriteLog(reportString);

                    // 20130430
                    WriteLog(LogLevels.Trace, text);
                }
                catch (Exception eNotUsed) {
                    // ??
                }
            }
        }
Example #10
0
        protected void runTwoScriptBlockCollections(
            ScriptBlock[] scriptblocksSet1,
            ScriptBlock[] scriptblocksSet2,
            // 20130318
            //PSCmdletBase cmdlet)
            PSCmdletBase cmdlet,
            object[] parameters)
        {
            cmdlet.WriteVerbose(cmdlet, "preparing scriptblocks");

            System.Collections.Generic.List<ScriptBlock> scriptblocks =
                new System.Collections.Generic.List<ScriptBlock>();

            try {
                if (scriptblocksSet1 != null &&
                    scriptblocksSet1.Length > 0) {

                    foreach (ScriptBlock sb in scriptblocksSet1) {

                        scriptblocks.Add(sb);
                    }
                }

                if (scriptblocksSet2 != null &&
                    scriptblocksSet2.Length > 0) {

                    foreach (ScriptBlock sb in scriptblocksSet2) {

                        scriptblocks.Add(sb);
                    }
                }

                cmdlet.WriteVerbose(cmdlet, "scriptblocks were prepared");
            }
            catch (Exception eScriptblocksPreparation) {

                cmdlet.WriteVerbose(cmdlet, "Scriptblocks are not going to be run");

                cmdlet.WriteVerbose(cmdlet, eScriptblocksPreparation.Message);

                cmdlet.WriteError(
                    cmdlet,
                    eScriptblocksPreparation.Message,
                    "ScriptblocksNotPrepared",
                    ErrorCategory.InvalidOperation,
                    true);
            }

            // 20130318
            //runScriptBlocks(scriptblocks, cmdlet, false);
            // 20130319
            try {

                cmdlet.WriteVerbose(cmdlet, "running scriptblocks");

                runScriptBlocks(scriptblocks, cmdlet, false, parameters);

                cmdlet.WriteVerbose(cmdlet, "Scriptblocks finished successfully");
            }
            catch (Exception eScriptBlocks) {

                cmdlet.WriteVerbose(cmdlet, "Scriptblocks failed");

                cmdlet.WriteVerbose(cmdlet, eScriptBlocks.Message);

                cmdlet.WriteError(
                    cmdlet,
                    eScriptBlocks.Message,
                    "ScriptblocksFailed",
                    ErrorCategory.InvalidResult,
                    true);
            }
        }
Example #11
0
        // 20120816
        public void runScriptBlocks(
            System.Collections.Generic.List<ScriptBlock> scriptblocks,
            PSCmdletBase cmdlet,
            // 20130318
            //bool eventHandlers)
            bool eventHandlers,
            object[] parameters)
        {
            try {

                if (scriptblocks != null &&
                    scriptblocks.Count > 0) {

                    foreach (ScriptBlock sb in scriptblocks) {

                        if (sb != null) {

                            try {
                                if (eventHandlers) {

                                    cmdlet.WriteVerbose(cmdlet, "run event handler");

                                    runScriptBlock runner = new runScriptBlock(runSBEvent);

                                    runner(sb, cmdlet.EventSource, cmdlet.EventArgs);

                                } else {

                                    cmdlet.WriteVerbose(cmdlet, "run action with parameters");

                                    // 20130318
                                    //runScriptBlock runner = new runScriptBlock(runSBAction);
                                    //runner(sb, cmdlet.EventSource, cmdlet.EventArgs);
                                    runScriptBlockWithParameters runnerWithParams = new runScriptBlockWithParameters(runSBActionWithParams);

                                    runnerWithParams(sb, parameters);

                                }
                            } catch (Exception eInner) {

                                // 20130318
            //                                ErrorRecord err =
            //                                    new ErrorRecord(
            //                                        eInner,
            //                                        "InvokeException",
            //                                        ErrorCategory.OperationStopped,
            //                                        sb);
            //                                err.ErrorDetails =
            //                                    new ErrorDetails("Error in " +
            //                                                     sb.ToString());
            //                                WriteError(this, err, false);

            //                                this.WriteError(
            //                                    this,
            //                                    "Error in " +
            //                                    sb.ToString() +
            //                                    ". " +
            //                                    eInner.Message,
            //                                    "InvokeException",
            //                                    ErrorCategory.OperationStopped,
            //                                    // 20130318
            //                                    //false);
            //                                    true);

                                    throw;
                            }
                        }
                    }
                }
            } catch (Exception eOuter) {
                // 20130318
            //                WriteError(this,
            //                           new ErrorRecord(eOuter, "runScriptBlocks", ErrorCategory.InvalidArgument, null),
            //                           true);

            //                this.WriteError(
            //                    this,
            //                    eOuter.Message,
            //                    "runScriptBlocks",
            //                    ErrorCategory.InvalidArgument,
            //                    true);

                throw;
            }
        }
Example #12
0
        protected override void WriteErrorMethod045OnErrorScreenshot(PSCmdletBase cmdlet)
        {
            WriteVerbose(this, "WriteErrorMethod045OnErrorScreenshot UIAutomation");

            if (UIAutomation.Preferences.OnErrorScreenShot) {
                //UIAHelper.GetScreenshotOfAutomationElement(
                //                UIAHelper.GetScreenshotOfCmdletInput(
                //                    (cmdlet as HasControlInputCmdletBase),
                //                    CmdletName(cmdlet), //string.Empty,
                //                    true,
                //                    0,
                //                    0,
                //                    0,
                //                    0,
                //                    string.Empty,
                //                    UIAutomation.Preferences.OnErrorScreenShotFormat);

                //                if (Preferences.HideHighlighterOnScreenShotTaking) {
                //                    UIAHelper.HideHighlighters();
                //                }

                AutomationElement elementToTakeScreenShot = null;
                try {
                    if (null != CurrentData.CurrentWindow) {
                        cmdlet.WriteVerbose(cmdlet, "taking screenshot of the current window");
                        elementToTakeScreenShot = CurrentData.CurrentWindow;
                    } else {
                        cmdlet.WriteVerbose(cmdlet, "taking screenshot of the desktop object");
                        elementToTakeScreenShot = AutomationElement.RootElement;
                    }
                }
                catch {
                    cmdlet.WriteVerbose(cmdlet, "taking screenshot of the desktop object (on fail)");
                    elementToTakeScreenShot = AutomationElement.RootElement;
                }

                cmdlet.WriteVerbose(cmdlet, "taking screenshot");
                UIAHelper.GetScreenshotOfAutomationElement(
                    // 20130322
                    //(cmdlet as HasControlInputCmdletBase),
                    cmdlet,
                    elementToTakeScreenShot,
                    CmdletName(cmdlet),
                    true,
                    0,
                    0,
                    0,
                    0,
                    string.Empty,
                    UIAutomation.Preferences.OnErrorScreenShotFormat);
                cmdlet.WriteVerbose(cmdlet, "done");
            }
        }
Example #13
0
        public void runScriptBlocks(
            List <ScriptBlock> scriptblocks,
            PSCmdletBase cmdlet,
            bool eventHandlers,
            object[] parameters)
        {
            try {
                if (scriptblocks != null && scriptblocks.Count > 0)
                {
//                    cmdlet.WriteVerbose(cmdlet, "there are " + scriptblocks.Count + " scriptblock(s) to run");

                    foreach (var sb in scriptblocks)
                    {
                        if (sb != null)
                        {
                            try {
                                if (eventHandlers)
                                {
//                                    cmdlet.WriteVerbose(cmdlet, "run event handler");

                                    var runner = new runScriptBlock(runSBEvent);

                                    runner(sb, cmdlet.EventSource, cmdlet.EventArgs);
                                }
                                else
                                {
//                                    cmdlet.WriteVerbose(cmdlet, "run action with parameters");

                                    //runScriptBlock runner = new runScriptBlock(runSBAction);
                                    //runner(sb, cmdlet.EventSource, cmdlet.EventArgs);
                                    var runnerWithParams = new runScriptBlockWithParameters(runSBActionWithParams);

//                                    cmdlet.WriteVerbose(cmdlet, "the scriptblock runner has been created");

                                    // 20130606
                                    try {
                                        cmdlet.WriteVerbose(cmdlet, "listing parameters");
                                        if (null == parameters || 0 == parameters.Length)
                                        {
                                            cmdlet.WriteVerbose(cmdlet, "there are no parameters");
                                        }
                                        else
                                        {
                                            foreach (var singleParam in parameters)
                                            {
                                                cmdlet.WriteVerbose(cmdlet, singleParam);
                                            }
                                        }
                                    }
                                    catch (Exception eListParameters) {
                                        cmdlet.WriteVerbose(cmdlet, eListParameters.Message);
                                    }

                                    runnerWithParams(sb, parameters);

//                                    cmdlet.WriteVerbose(cmdlet, "the scriptblock runner has finished");
                                }
                            } catch (Exception) {
                                // 20130318
//                                ErrorRecord err =
//                                    new ErrorRecord(
//                                        eInner,
//                                        "InvokeException",
//                                        ErrorCategory.OperationStopped,
//                                        sb);
//                                err.ErrorDetails =
//                                    new ErrorDetails("Error in " +
//                                                     sb.ToString());
//                                WriteError(this, err, false);

//                                this.WriteError(
//                                    this,
//                                    "Error in " +
//                                    sb.ToString() +
//                                    ". " +
//                                    eInner.Message,
//                                    "InvokeException",
//                                    ErrorCategory.OperationStopped,
//                                    // 20130318
//                                    //false);
//                                    true);

//                                    cmdlet.WriteVerbose(cmdlet, eInner.Message);
                                throw new Exception("Failed to run scriptblock");
                            }
                        }
                    }
                }
            } catch (Exception) {
//                WriteError(this,
//                           new ErrorRecord(eOuter, "runScriptBlocks", ErrorCategory.InvalidArgument, null),
//                           true);

//                this.WriteError(
//                    this,
//                    eOuter.Message,
//                    "runScriptBlocks",
//                    ErrorCategory.InvalidArgument,
//                    true);

//                cmdlet.WriteVerbose(cmdlet, eOuter.Message);
                throw new Exception("Failed to run scriptblocks");
            }
        }
Example #14
0
        // 20150915
        //protected string ConvertHashtableToString(Hashtable hashtable)
        //{
        //    string result = string.Empty;

        //    if (null == hashtable || 0 == hashtable.Count) {
        //        return result;
        //    }

        //    result += "@{";
        //    foreach (var key in hashtable.Keys)
        //        result += key + "=" + hashtable[key] + ";";
        //    result += "}";

        //    return result;
        //}

        // 20150915
        //protected string ConvertHashtablesArrayToString(Hashtable[] hashtables)
        //{
        //    string result = string.Empty;

        //    if (null == hashtables || 0 == hashtables.Length) {
        //        return result;
        //    }

        //    foreach (Hashtable hashtable in hashtables) {
        //        result += ",";
        //        // 20150915
        //        // result += ConvertHashtableToString(hashtable);
        //        result += hashtable.ConvertToString();
        //    }

        //    result = result.Substring(1);

        //    return result;
        //}
        #endregion utilities

//        // 20130318
//        //protected System.Collections.Generic.Dictionary<string, string> ConvertHashtableToDictionary(
//        protected System.Collections.Generic.Dictionary<string, object> ConvertHashtableToDictionary(
//            Hashtable hashtable)
//        {
//            // 20130318
//            //System.Collections.Generic.Dictionary<string, string> dict =
//            //    new System.Collections.Generic.Dictionary<string, string>();
//            System.Collections.Generic.Dictionary<string, object> dict =
//                new System.Collections.Generic.Dictionary<string, object>();
//
//            this.WriteVerbose(this, hashtable.Keys.Count.ToString());
//
//            foreach (string key1 in hashtable.Keys) {
//
//                string keyUpper = key1.ToUpper();
//
//                this.WriteVerbose(this, "found key: " + keyUpper);
//
//                // 20130318
//                //dict.Add(keyUpper, hashtable[key1].ToString());
//                // 20130506
//                //dict.Add(keyUpper, hashtable[key1]);
//                var rawData = hashtable[key1];
//                dict.Add(keyUpper, rawData);
//
//                this.WriteVerbose(
//                    this,
//                    "added to the dictionary: " +
//                    keyUpper +
//                    " = " +
//                    dict[keyUpper].ToString());
//            }
//
////            foreach (string key2 in hashtable.Keys.Cast<string>().ToList().Any<string>(k => dict.Add(k.ToUpper(), hashtable[k.ToUpper()]))) {
////
////            }
//
//            return dict;
//        }

        protected internal void runTwoScriptBlockCollections(
            ScriptBlock[] scriptblocksSet1,
            ScriptBlock[] scriptblocksSet2,
            PSCmdletBase cmdlet,
            object[] parameters)
        {
            cmdlet.WriteVerbose(cmdlet, "preparing scriptblocks");

            var scriptblocks = new List <ScriptBlock>();

            try {
                if (scriptblocksSet1 != null && scriptblocksSet1.Length > 0)
                {
                    foreach (var sb in scriptblocksSet1)
                    {
                        scriptblocks.Add(sb);
                    }
                }

                if (scriptblocksSet2 != null && scriptblocksSet2.Length > 0)
                {
                    foreach (var sb in scriptblocksSet2)
                    {
                        scriptblocks.Add(sb);
                    }
                }

//                if (null == scriptblocks || 0 == scriptblocks.Count) {
//
//                    cmdlet.WriteVerbose(cmdlet, "there is no any StopAction scriptblock");
//
//                    //throw new Exception("There are no StopAction scriptblocks, define at least one");
//                    cmdlet.WriteError(
//                        cmdlet,
//                        "There are no StopAction scriptblocks, define at least one",
//                        "NoStopActionScriptblocks",
//                        ErrorCategory.InvalidArgument,
//                        true);
//                }

//                cmdlet.WriteVerbose(cmdlet, "scriptblocks were prepared");
            }
            catch (Exception eScriptblocksPreparation) {
//                cmdlet.WriteVerbose(cmdlet, "Scriptblocks are not going to be run");
//
//                cmdlet.WriteVerbose(cmdlet, eScriptblocksPreparation.Message);

                cmdlet.WriteError(
                    cmdlet,
                    eScriptblocksPreparation.Message,
                    "ScriptblocksNotPrepared",
                    ErrorCategory.InvalidOperation,
                    true);
            }

            //runScriptBlocks(scriptblocks, cmdlet, false);
            try {
//                cmdlet.WriteVerbose(cmdlet, "running scriptblocks");

                //runScriptBlocks(scriptblocks, cmdlet, false, parameters);
                if (null != scriptblocks && 0 < scriptblocks.Count)
                {
                    runScriptBlocks(scriptblocks, cmdlet, false, parameters);
                }

//                cmdlet.WriteVerbose(cmdlet, "Scriptblocks finished successfully");
            }
            catch (Exception eScriptBlocks) {
//                cmdlet.WriteVerbose(cmdlet, "Scriptblocks failed");
//
//                cmdlet.WriteVerbose(cmdlet, eScriptBlocks.Message);

                cmdlet.WriteError(
                    cmdlet,
                    eScriptBlocks.Message,
                    "ScriptblocksFailed",
                    ErrorCategory.InvalidResult,
                    true);
            }
        }
Example #15
0
        // 20120816
        public void runScriptBlocks(
            System.Collections.Generic.List<ScriptBlock> scriptblocks,
            PSCmdletBase cmdlet,
            // 20130318
            //bool eventHandlers)
            bool eventHandlers,
            object[] parameters)
        {
            try {

                if (scriptblocks != null &&
                    scriptblocks.Count > 0) {

                    cmdlet.WriteVerbose(cmdlet, "there are " + scriptblocks.Count.ToString() + " scriptblock(s) to run");

                    foreach (ScriptBlock sb in scriptblocks) {

                        if (sb != null) {

                            try {
                                if (eventHandlers) {

                                    cmdlet.WriteVerbose(cmdlet, "run event handler");

                                    runScriptBlock runner = new runScriptBlock(runSBEvent);

                                    runner(sb, cmdlet.EventSource, cmdlet.EventArgs);

                                } else {

                                    cmdlet.WriteVerbose(cmdlet, "run action with parameters");

                                    // 20130318
                                    //runScriptBlock runner = new runScriptBlock(runSBAction);
                                    //runner(sb, cmdlet.EventSource, cmdlet.EventArgs);
                                    runScriptBlockWithParameters runnerWithParams = new runScriptBlockWithParameters(runSBActionWithParams);

                                    cmdlet.WriteVerbose(cmdlet, "the scriptblock runner has been created");

                                    // 20130606
                                    try {
                                        cmdlet.WriteVerbose(cmdlet, "listing parameters");
                                        if (null == parameters || 0 == parameters.Length) {
                                            cmdlet.WriteVerbose(cmdlet, "there are no parameters");
                                        } else {
                                            foreach (var singleParam in parameters) {
                                                cmdlet.WriteVerbose(cmdlet, singleParam);
                                            }
                                        }
                                    }
                                    catch (Exception eListParameters) {
                                        cmdlet.WriteVerbose(cmdlet, eListParameters.Message);
                                    }

                                    runnerWithParams(sb, parameters);

                                    cmdlet.WriteVerbose(cmdlet, "the scriptblock runner has finished");
                                }
                            } catch (Exception eInner) {

                                // 20130318
            //                                ErrorRecord err =
            //                                    new ErrorRecord(
            //                                        eInner,
            //                                        "InvokeException",
            //                                        ErrorCategory.OperationStopped,
            //                                        sb);
            //                                err.ErrorDetails =
            //                                    new ErrorDetails("Error in " +
            //                                                     sb.ToString());
            //                                WriteError(this, err, false);

            //                                this.WriteError(
            //                                    this,
            //                                    "Error in " +
            //                                    sb.ToString() +
            //                                    ". " +
            //                                    eInner.Message,
            //                                    "InvokeException",
            //                                    ErrorCategory.OperationStopped,
            //                                    // 20130318
            //                                    //false);
            //                                    true);

                                    // 20130606
                                    cmdlet.WriteVerbose(cmdlet, eInner.Message);
                                    //throw;
                                    throw new Exception("Failed to run scriptblock");
                            }
                        }
                    }
                }
            } catch (Exception eOuter) {
                // 20130318
            //                WriteError(this,
            //                           new ErrorRecord(eOuter, "runScriptBlocks", ErrorCategory.InvalidArgument, null),
            //                           true);

            //                this.WriteError(
            //                    this,
            //                    eOuter.Message,
            //                    "runScriptBlocks",
            //                    ErrorCategory.InvalidArgument,
            //                    true);

                // 20130606
                cmdlet.WriteVerbose(cmdlet, eOuter.Message);
                //throw;
                throw new Exception("Failed to run scriptblocks");
            }
        }
Example #16
0
        public void WriteObject(PSCmdletBase cmdlet, object outputObject)
        {
            if (PSCmdletBase.UnitTestMode) {

                UnitTestOutput.CheckInitialized();

                UnitTestOutput.StartAddingOutput();

            }

            cmdlet.WriteVerbose(cmdlet, "outputting the object");

            this.writeSingleObject(cmdlet, outputObject);
        }
Example #17
0
        public void WriteVerbose(PSCmdletBase cmdlet, object obj)
        {
            // 20131113
            if (PSCmdletBase.UnitTestMode) {
                
                UnitTestOutput.CheckInitialized();

                UnitTestOutput.StartAddingOutput();

            }
            
            string cmdletName = "? : ";
            string objectString = string.Empty;
            try {
                objectString = obj.ToString();
            }
            catch {}

            if (null != cmdlet) {

                try {

                    cmdletName = 
                        CmdletSignature(cmdlet);

                    cmdlet.WriteVerbose(cmdletName + objectString);
                }
                catch {
                    cmdlet.WriteVerbose(cmdletName + "failed");
                }
            } else {
                cmdlet.WriteVerbose(cmdletName + objectString);
            }
        }
Example #18
0
        public void WriteVerbose(PSCmdletBase cmdlet, object obj)
        {
            string cmdletName = "? : ";
            string objectString = string.Empty;
            try {
                objectString = obj.ToString();
            }
            catch {}

            if (null != cmdlet) {

                try {

                    cmdletName =
                        CmdletSignature(cmdlet);

                    cmdlet.WriteVerbose(cmdletName + objectString);
                }
                catch {
                    cmdlet.WriteVerbose(cmdletName + "failed");
                }
            } else {
                cmdlet.WriteVerbose(cmdletName + objectString);
            }
        }
Example #19
0
        public static void CloseDatabase(
            PSCmdletBase cmdlet, 
            string databaseName)
        {
            // check input

            try {

                cmdlet.WriteVerbose(cmdlet, "enumerating registered databases");

                for (int i = 0; i < SQLiteData.Databases.Count; i++) {

                    cmdlet.WriteVerbose(cmdlet, "check the database name");

                    if (databaseName == SQLiteData.Databases[i].Name) {

                        cmdlet.WriteVerbose(cmdlet, "close the database");

                        try {
                            if (null != SQLiteData.Databases[i].Connection &&
                                SQLiteData.Databases[i].Connection.State == ConnectionState.Open) {
                                SQLiteData.Databases[i].Connection.Close();
                            }
                        }
                        catch {}

                        if (SQLiteData.Databases[i].IsResultsDB) {
                            TestData.CurrentResultsDB = null;
                        }
                        if (SQLiteData.Databases[i].IsRepositoryDB) {
                            TestData.CurrentRepositoryDB = null;
                        }
                        if (SQLiteData.Databases[i].IsStructureDB) {
                            TestData.CurrentStructureDB = null;
                        }
                        //SQLiteData.Databases[i].Connection.Close();

                        SQLiteData.Databases.RemoveAt(i);

                        break;
                    }
                }

            }
            catch (Exception eOpenDB) {
                cmdlet.WriteError(
                    cmdlet,
                    "Unable to open the database. " +
                    eOpenDB.Message,
                    "OpenDBFailed",
                    ErrorCategory.InvalidOperation,
                    true);
            }
        }
Example #20
0
        protected override void WriteErrorMethod045OnErrorScreenshot(PSCmdletBase cmdlet)
        {
            WriteVerbose(this, "WriteErrorMethod045OnErrorScreenshot UIAutomation");

            if (!Preferences.OnErrorScreenShot) return;
            
            IUiElement elementToTakeScreenShot = null;
            
            try {
                    
                if (null != CurrentData.CurrentWindow) {
                        
                    cmdlet.WriteVerbose(cmdlet, "taking screenshot of the current window");
                    elementToTakeScreenShot = CurrentData.CurrentWindow;
                } else {
                        
                    cmdlet.WriteVerbose(cmdlet, "taking screenshot of the desktop object");
                    elementToTakeScreenShot = UiElement.RootElement;
                }
            }
            catch {
                    
                cmdlet.WriteVerbose(cmdlet, "taking screenshot of the desktop object (on fail)");
                elementToTakeScreenShot = UiElement.RootElement;
            }
                
            cmdlet.WriteVerbose(cmdlet, "taking screenshot");
            UiaHelper.GetScreenshotOfAutomationElement(
                cmdlet,
                elementToTakeScreenShot,
                CmdletName(cmdlet),
                true,
                new ScreenshotRect(),
                string.Empty,
                Preferences.OnErrorScreenShotFormat);
                
            cmdlet.WriteVerbose(cmdlet, "done");
        }
Example #21
0
        //public static void BackupTestResults(PSCmdletBase cmdlet, SQLiteConnection connection)
        public static void BackupTestResults(PSCmdletBase cmdlet, string databaseName)
        {
            // 20120920
            SQLiteConnection connection = ConnectionMakeAlive(cmdlet, databaseName);

            DbProviderFactory factory = new SQLiteFactory();

            cmdlet.WriteVerbose(cmdlet, "begin transaction");
            using (DbTransaction dbTrans = connection.BeginTransaction()) {

                cmdlet.WriteVerbose(cmdlet, "creating a data adapter");
                using (DbDataAdapter adp1 = factory.CreateDataAdapter()) {

                    cmdlet.WriteVerbose(cmdlet, "creating a command");
                    using (DbCommand cmd1 = connection.CreateCommand()) {

                        cmdlet.WriteVerbose(cmdlet, "1");
                        cmd1.Transaction = dbTrans;

                        cmdlet.WriteVerbose(cmdlet, "2");
                        cmd1.CommandText = "SELECT * FROM TestSuites WHERE 1 = 2";
                        cmdlet.WriteVerbose(cmdlet, "3");
                        adp1.SelectCommand = cmd1;

                        cmdlet.WriteVerbose(cmdlet, "4");
                        using (DbCommandBuilder bld1 = factory.CreateCommandBuilder()) {

                            cmdlet.WriteVerbose(cmdlet, "5");
                            bld1.DataAdapter = adp1;

                            cmdlet.WriteVerbose(cmdlet, "6");
                            using (DataTable tbl1 = new DataTable()) {

                                cmdlet.WriteVerbose(cmdlet, "7");
                                adp1.Fill(tbl1);
                                //for (int n = 0; n < 10000; n++) {
                                cmdlet.WriteVerbose(cmdlet, "8");
                                for (int suiteCounter = 0; suiteCounter < TestData.TestSuites.Count; suiteCounter++) {
                                    cmdlet.WriteVerbose(cmdlet, "9");
                                    DataRow row1 = tbl1.NewRow();
                                    //row[1] = n;
                                    //(Id INTEGER PRIMARY KEY, SuiteId TEXT, SuiteName TEXT, StatusId NUMERIC, Description TEXT);");
                                    row1["SuiteId"] = SQLiteHelper.PrepareEscapedString(TestData.TestSuites[suiteCounter].Id);
                                    row1["SuiteName"] = SQLiteHelper.PrepareEscapedString(TestData.TestSuites[suiteCounter].Name);
                                    row1["StatusId"] = (int)TestData.TestSuites[suiteCounter].enStatus;
                                    row1["Description"] = SQLiteHelper.PrepareEscapedString(TestData.TestSuites[suiteCounter].Description);
                                    tbl1.Rows.Add(row1);
                                }
                                cmdlet.WriteVerbose(cmdlet, "12");
                                cmdlet.WriteVerbose(cmdlet, tbl1.Rows.Count.ToString() + " rows");
                                adp1.Update(tbl1);
                                cmdlet.WriteVerbose(cmdlet, tbl1.Rows.Count.ToString() + " rows");
                                cmdlet.WriteVerbose(cmdlet, "14");
                                //dbTrans.Commit();
                            }
                        }
                    }
                }

                cmdlet.WriteVerbose(cmdlet, "15");
                using (DbDataAdapter adp2 = factory.CreateDataAdapter()) {

                    cmdlet.WriteVerbose(cmdlet, "16");
                    using (DbCommand cmd2 = connection.CreateCommand()) {

                        cmdlet.WriteVerbose(cmdlet, "17");
                        cmd2.Transaction = dbTrans;
                        cmd2.CommandText = "SELECT * FROM TestScenarios WHERE 1 = 2";
                        cmdlet.WriteVerbose(cmdlet, "19");
                        adp2.SelectCommand = cmd2;
                        cmdlet.WriteVerbose(cmdlet, "20");
                        using (DbCommandBuilder bld2 = factory.CreateCommandBuilder()) {

                            cmdlet.WriteVerbose(cmdlet, "21");
                            bld2.DataAdapter = adp2;
                            cmdlet.WriteVerbose(cmdlet, "22");
                            using (DataTable tbl2 = new DataTable()) {

                                cmdlet.WriteVerbose(cmdlet, "23");
                                adp2.Fill(tbl2);
                                //for (int n = 0; n < 10000; n++) {
                                foreach (TestSuite testSuite in TestData.TestSuites) {
                                    for (int scenarioCounter = 0; scenarioCounter < testSuite.TestScenarios.Count; scenarioCounter++) {
                                        DataRow row2 = tbl2.NewRow();
                                        //row[1] = n;
                                        //Id INTEGER PRIMARY KEY, SuiteId TEXT, ScenarioId TEXT, ScenarioName TEXT, StatusId NUMERIC, Description TEXT);");
                                        row2["SuiteId"] = SQLiteHelper.PrepareEscapedString(testSuite.TestScenarios[scenarioCounter].SuiteId);
                                        row2["ScenarioId"] = SQLiteHelper.PrepareEscapedString(testSuite.TestScenarios[scenarioCounter].Id);
                                        row2["ScenarioName"] = SQLiteHelper.PrepareEscapedString(testSuite.TestScenarios[scenarioCounter].Name);
                                        //row["StatusId"] = (int)testSuite.TestScenarios[scenarioCounter].
                                        row2["Description"] = SQLiteHelper.PrepareEscapedString(testSuite.TestScenarios[scenarioCounter].Description);
                                        tbl2.Rows.Add(row2);
                                    }
                                }
                                cmdlet.WriteVerbose(cmdlet, "27");
                                adp2.Update(tbl2);
                                cmdlet.WriteVerbose(cmdlet, "28");
                                //dbTrans.Commit();
                            }
                        }
                    }
                }

                cmdlet.WriteVerbose(cmdlet, "29");
                using (DbDataAdapter adp3 = factory.CreateDataAdapter()) {

                    cmdlet.WriteVerbose(cmdlet, "30");
                    using (DbCommand cmd3 = connection.CreateCommand()) {

                        cmdlet.WriteVerbose(cmdlet, "31");
                        cmd3.Transaction = dbTrans;
                        cmd3.CommandText = "SELECT * FROM TestResults WHERE 1 = 2";
                        adp3.SelectCommand = cmd3;

                        cmdlet.WriteVerbose(cmdlet, "34");
                        using (DbCommandBuilder bld3 = factory.CreateCommandBuilder()) {

                            cmdlet.WriteVerbose(cmdlet, "35");
                            bld3.DataAdapter = adp3;

                            cmdlet.WriteVerbose(cmdlet, "36");
                            using (DataTable tbl3 = new DataTable()) {

                                cmdlet.WriteVerbose(cmdlet, "37");
                                adp3.Fill(tbl3);
                                //for (int n = 0; n < 10000; n++) {
                                foreach (TestSuite testSuite in TestData.TestSuites) {
                                    foreach (TestScenario testScenario in testSuite.TestScenarios) {
                                        for (int trCounter = 0; trCounter < testScenario.TestResults.Count; trCounter++) {
                                            DataRow row3= tbl3.NewRow();
                                            //row[1] = n;
                                            //Id INTEGER PRIMARY KEY, TestResultId TEXT, TestResultName TEXT, " +
                            //"StatusId NUMERIC, Description TEXT, ScriptName TEXT, LineNumber NUMERIC, " +
                            //"Position NUMERIC, Error BLOB, Code TEXT, Description TEXT, Parameters BLOB, " +
                            //"SuiteId TEXT, ScenarioId TEXT, Timestamp TEXT, TimeSpent NUMERIC, Generated NUMERIC, Screenshot TEXT);");
                                            row3["SuiteId"] = SQLiteHelper.PrepareEscapedString(testScenario.TestResults[trCounter].SuiteId);
                                            row3["ScenarioId"] = SQLiteHelper.PrepareEscapedString(testScenario.TestResults[trCounter].ScenarioId);

                                            row3["TestResultId"] = SQLiteHelper.PrepareEscapedString(testScenario.TestResults[trCounter].Id);
                                            row3["TestResultName"] = SQLiteHelper.PrepareEscapedString(SQLiteHelper.PrepareEscapedString(testScenario.TestResults[trCounter].Name));
                                            row3["ScriptName"] = SQLiteHelper.PrepareEscapedString(testScenario.TestResults[trCounter].ScriptName);
                                            row3["LineNumber"] = testScenario.TestResults[trCounter].LineNumber.ToString();
                                            row3["Position"] = testScenario.TestResults[trCounter].Position.ToString();
                                            if (null != testScenario.TestResults[trCounter].Error) {
                                                row3["Error"] = testScenario.TestResults[trCounter].Error;
                                            }
                                            row3["Code"] = SQLiteHelper.PrepareEscapedString(testScenario.TestResults[trCounter].Code);
                                            row3["Parameters"] = testScenario.TestResults[trCounter].Parameters;
                                            row3["Timestamp"] = testScenario.TestResults[trCounter].Timestamp;
                                            row3["TimeSpent"] = testScenario.TestResults[trCounter].TimeSpent;
                                            row3["Generated"] = Convert.ToInt32(testScenario.TestResults[trCounter].Generated);
                                            //row3["Screenshot"] = testScenario.TestResults[trCounter].Screenshot;
                                            if (null != testScenario.TestResults[trCounter].Screenshot) {
                                                byte[] screenshot =
                                                    GetScreenshotFromFileSystem(
                                                        testScenario.TestResults[trCounter].Screenshot);
                                                row3["Screenshot"] = screenshot;
                                            }
                                            row3["StatusId"] = (int)testScenario.TestResults[trCounter].enStatus;

                                            row3["Description"] = SQLiteHelper.PrepareEscapedString(testScenario.TestResults[trCounter].Description);

                                            tbl3.Rows.Add(row3);
                                        }
                                    }
                                }
                                cmdlet.WriteVerbose(cmdlet, "38");
                                adp3.Update(tbl3);
                                cmdlet.WriteVerbose(cmdlet, "39");
                                //dbTrans.Commit();
                                cmdlet.WriteVerbose(cmdlet, "40");
                            }
                        }
                    }
                }

                cmdlet.WriteVerbose(cmdlet, "41");
                using (DbDataAdapter adp4 = factory.CreateDataAdapter()) {

                    cmdlet.WriteVerbose(cmdlet, "42");
                    using (DbCommand cmd4 = connection.CreateCommand()) {

                        cmdlet.WriteVerbose(cmdlet, "43");
                        cmd4.Transaction = dbTrans;
                        cmd4.CommandText = "SELECT * FROM TestResultDetails WHERE 1 = 2";
                        cmdlet.WriteVerbose(cmdlet, "45");
                        adp4.SelectCommand = cmd4;

                        cmdlet.WriteVerbose(cmdlet, "46");
                        using (DbCommandBuilder bld4 = factory.CreateCommandBuilder()) {

                            bld4.DataAdapter = adp4;

                            cmdlet.WriteVerbose(cmdlet, "48");
                            using (DataTable tbl4 = new DataTable()) {

                                cmdlet.WriteVerbose(cmdlet, "49");
                                adp4.Fill(tbl4);
                                //for (int n = 0; n < 10000; n++) {
                                foreach (TestSuite testSuite in TestData.TestSuites) {
                                    foreach (TestScenario testScenario in testSuite.TestScenarios) {
                                        foreach (TestResult testResult in testScenario.TestResults) {
                                            for (int trdCounter = 0; trdCounter < testResult.Details.Count; trdCounter++) {
                                                DataRow row4 = tbl4.NewRow();
                                                //Id INTEGER PRIMARY KEY, TestResultId TEXT, TestResultDetailName TEXT, " +
                                                //"TestResultDetail BLOB);"
                                                row4["TestResultId"] = SQLiteHelper.PrepareEscapedString(testResult.Id);
                                                row4["TestResultDetailName"] = SQLiteHelper.PrepareEscapedString(testResult.Details[trdCounter].Name);
                                                row4["Timestamp"] = testResult.Details[trdCounter].Timestamp;
                                                row4["TestResultDetail"] = SQLiteHelper.PrepareEscapedString(testResult.Details[trdCounter].GetDetail().ToString());
                                                tbl4.Rows.Add(row4);
                                            }
                                        }
                                    }
                                }
                                adp4.Update(tbl4);
                                dbTrans.Commit();
                            }
                        }
                    }
                }
            }
        }