Exemplo n.º 1
0
        public void DebugTO_ValuesCorrect()
        {
            // bootstrap
            var dto = new Mock <DebugTO>();
            var dl  = new Mock <IBinaryDataList>();

            dto.CallBase = true;
            DebugTO to         = dto.Object;
            string  rootFolder = Path.GetTempPath() + Guid.NewGuid();

            to.RememberInputs = true;
            Assert.IsTrue(to.RememberInputs);
            to.BaseSaveDirectory = rootFolder;
            Assert.AreEqual(to.BaseSaveDirectory, rootFolder);
            to.DataList = "<DataList><scalar1 ColumnIODirection=\"Input\"/><persistantscalar ColumnIODirection=\"Input\"/><rs><f1 ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><field1/><field2/></recset></DataList>";
            Assert.AreEqual(to.DataList, "<DataList><scalar1 ColumnIODirection=\"Input\"/><persistantscalar ColumnIODirection=\"Input\"/><rs><f1 ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><field1/><field2/></recset></DataList>");
            to.XmlData = "<DataList><scalar1>s1</scalar1><persistantscalar>SomeValue</persistantscalar><rs><f1>f1Value</f1><f2>f2Value</f2></rs><recset><field1>somedata</field1><field2>moredata</field2></recset><recset><field1></field1><field2></field2></recset></DataList>";
            Assert.AreEqual(to.XmlData, "<DataList><scalar1>s1</scalar1><persistantscalar>SomeValue</persistantscalar><rs><f1>f1Value</f1><f2>f2Value</f2></rs><recset><field1>somedata</field1><field2>moredata</field2></recset><recset><field1></field1><field2></field2></recset></DataList>");
            to.ServiceName = "DummyService";
            Assert.AreEqual(to.ServiceName, "DummyService");
            to.WorkflowID     = "DummyService";
            to.BinaryDataList = dl.Object;
        }
Exemplo n.º 2
0
        public void NotPersistSessionWithSavedData_ExpectEmptyDataList()
        {
            // bootstrap
            DebugTO to = new DebugTO();
            IDev2StudioSessionBroker broker = Dev2StudioSessionFactory.CreateBroker();
            string rootFolder = Path.GetTempPath() + Guid.NewGuid();

            to.RememberInputs    = false;
            to.BaseSaveDirectory = rootFolder;
            to.DataList          = "<DataList><scalar1/><rs><f1/><f2/></rs></DataList>";
            to.XmlData           = "";
            to.ServiceName       = "DummyService";
            to.WorkflowID        = "DummyService";
            to         = broker.InitDebugSession(to);
            to.XmlData = "<DataList><scalar1>s1</scalar1><rs><f1>f1Value</f1><f2>f2Value</f2></rs></DataList>";
            to         = broker.PersistDebugSession(to);
            to.XmlData = "";
            to         = broker.InitDebugSession(to);

            Assert.AreEqual("<DataList><scalar1/><rs><f1/><f2/></rs></DataList>", to.XmlData);

            DeleteDir(rootFolder);
        }
Exemplo n.º 3
0
        public void InitSessionWithSingleScalar()
        {
            var to         = new DebugTO();
            var rootFolder = Path.GetTempPath() + Guid.NewGuid();
            var broker     = Dev2StudioSessionFactory.CreateBroker();

            to.RememberInputs    = true;
            to.BaseSaveDirectory = rootFolder;
            to.DataList          = "<DataList><scalar1/><rs><f1/><f2/></rs></DataList>";
            to.XmlData           = "<DataList><scalar1>s1</scalar1></DataList>";
            to.ServiceName       = "DummyService";
            to.WorkflowID        = "DummyService";
            broker.InitDebugSession(to);
            to = broker.PersistDebugSession(to);

            const string expected = "<DataList><scalar1>s1</scalar1></DataList>";

            // just ensure the operation worked successfully with no errors
            Assert.AreEqual(string.Empty, to.Error);
            Assert.AreEqual(expected, to.XmlData, "Got  [ " + to.XmlData + "] , but expected [ " + expected + " ]");

            DeleteDir(rootFolder);
        }
Exemplo n.º 4
0
        public void DebugTO_Cleanup_DisposeExpectsClear()
        {
            // bootstrap
            var  dto      = new Mock <DebugTO>();
            var  dl       = new Mock <IBinaryDataList>();
            bool disposed = false;

            dto.CallBase = true;
            DebugTO to         = dto.Object;
            string  rootFolder = Path.GetTempPath() + Guid.NewGuid();

            to.RememberInputs    = true;
            to.BaseSaveDirectory = rootFolder;
            to.DataList          = "<DataList><scalar1 ColumnIODirection=\"Input\"/><persistantscalar ColumnIODirection=\"Input\"/><rs><f1 ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><field1/><field2/></recset></DataList>";
            to.XmlData           = "<DataList><scalar1>s1</scalar1><persistantscalar>SomeValue</persistantscalar><rs><f1>f1Value</f1><f2>f2Value</f2></rs><recset><field1>somedata</field1><field2>moredata</field2></recset><recset><field1></field1><field2></field2></recset></DataList>";
            to.ServiceName       = "DummyService";
            to.WorkflowID        = "DummyService";
            to.BinaryDataList    = dl.Object;
            dl.Setup(a => a.Dispose()).Callback(() => disposed = true);
            to.CleanUp();

            Assert.IsTrue(disposed);
        }
Exemplo n.º 5
0
        public void PersistSessionWithSavedData_SubtlyChangedDataList_Expect_MergedXmlData()
        {
            // bootstrap
            DebugTO to = new DebugTO();
            string rootFolder = Path.GetTempPath() + Guid.NewGuid();
            IDev2StudioSessionBroker broker = Dev2StudioSessionFactory.CreateBroker();
            to.RememberInputs = true;
            to.BaseSaveDirectory = rootFolder;
            to.DataList = "<DataList><rs><f1/><f2/></rs></DataList>";
            to.XmlData = "<DataList><rs><f1>f1Value</f1><f2>f2Value</f2></rs></DataList>";
            to.ServiceName = "DummyService";
            to.WorkflowID = "DummyService";
            to = broker.InitDebugSession(to);
            to = broker.PersistDebugSession(to);

            // just ensure the operation worked successfully with no errors
            to.DataList = "<DataList><rs><f2 ColumnIODirection=\"Input\"/></rs></DataList>";
            to = broker.InitDebugSession(to);

            Assert.AreEqual("<DataList><rs><f2>f2Value</f2></rs></DataList>", to.XmlData);

            DeleteDir(rootFolder);
        }
Exemplo n.º 6
0
        public void PersistSessionWithAlotOfSavedData_RadicallyChangedDataList_Expect_MergedXmlData()
        {
            // bootstrap
            DebugTO to = new DebugTO();
            string rootFolder = Path.GetTempPath() + Guid.NewGuid();
            IDev2StudioSessionBroker broker = Dev2StudioSessionFactory.CreateBroker();
            to.RememberInputs = true;
            to.BaseSaveDirectory = rootFolder;
            to.DataList = "<DataList><scalar1 ColumnIODirection=\"Input\"/><persistantscalar ColumnIODirection=\"Input\"/><rs><f1 ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><field1/><field2/></recset></DataList>";
            to.XmlData = "<DataList><scalar1>s1</scalar1><persistantscalar>SomeValue</persistantscalar><rs><f1>f1Value</f1><f2>f2Value</f2></rs><recset><field1>somedata</field1><field2>moredata</field2></recset><recset><field1></field1><field2></field2></recset></DataList>";
            to.ServiceName = "DummyService";
            to.WorkflowID = "DummyService";
            to = broker.InitDebugSession(to);
            to = broker.PersistDebugSession(to);

            // just ensure the operation worked successfully with no errors
            to.DataList = "<DataList><persistantscalar ColumnIODirection=\"Input\"/><rs><field ColumnIODirection=\"Input\"/><f2 ColumnIODirection=\"Input\"/></rs><recset><newfield ColumnIODirection=\"Input\"/><field1 ColumnIODirection=\"Input\"/><changedfieldname ColumnIODirection=\"Input\"/></recset></DataList>";
            to = broker.InitDebugSession(to);

            Assert.AreEqual("<DataList><persistantscalar>SomeValue</persistantscalar><rs><field></field><f2>f2Value</f2></rs><recset><newfield></newfield><field1>somedata</field1><changedfieldname></changedfieldname></recset><recset><newfield></newfield><field1></field1><changedfieldname></changedfieldname></recset></DataList>", to.XmlData);

            DeleteDir(rootFolder);
        }
Exemplo n.º 7
0
        public void ExecuteWorkflow(IContextualResourceModel resourceModel)
        {
            if (resourceModel?.Environment == null)
            {
                return;
            }

            var debugTo = new DebugTO {
                XmlData = "<DataList></DataList>", SessionID = Guid.NewGuid(), IsDebugMode = true
            };

            EnsureEnvironmentConnected(resourceModel.Environment, EnvironmentConnectionTimeout);
            var clientContext = resourceModel.Environment.Connection;

            if (clientContext != null)
            {
                var dataList = XElement.Parse(debugTo.XmlData);
                dataList.Add(new XElement("BDSDebugMode", debugTo.IsDebugMode));
                dataList.Add(new XElement("DebugSessionID", debugTo.SessionID));
                dataList.Add(new XElement("EnvironmentID", resourceModel.Environment.EnvironmentID));
                WebServer.Send(resourceModel, dataList.ToString(), new SynchronousAsyncWorker());
                _resetEvt.WaitOne(3000);
            }
        }
        static void GetValue(IBinaryDataListEntry entry, DebugTO debugTo, string labelText, List <string> regions, List <IDebugItemResult> results)
        {
            ComplexExpressionAuditor auditor = entry.ComplexExpressionAuditor;

            if (auditor != null)
            {
                int grpIdx = 0;
                IList <ComplexExpressionAuditItem> complexExpressionAuditItems = auditor.FetchAuditItems();

                foreach (ComplexExpressionAuditItem item in complexExpressionAuditItems)
                {
                    string groupName         = null;
                    string displayExpression = item.Expression;
                    string rawExpression     = item.RawExpression;
                    if (regions != null && regions.Count > 0)
                    {
                        //
                    }

                    if (displayExpression.Contains("().") || displayExpression.Contains("(*)."))
                    {
                        grpIdx++;
                        groupName         = displayExpression;
                        displayExpression = rawExpression;
                    }
                    else
                    {
                        if (regions != null && regions.Count > 0)
                        {
                            string indexRegionFromRecordset = DataListUtil.ExtractIndexRegionFromRecordset(displayExpression);
                            int    indexForRecset;
                            int.TryParse(indexRegionFromRecordset, out indexForRecset);

                            if (indexForRecset > 0)
                            {
                                int    indexOfOpenningBracket = displayExpression.IndexOf("(", StringComparison.Ordinal) + 1;
                                string group = displayExpression.Substring(0, indexOfOpenningBracket) + "*" + displayExpression.Substring(indexOfOpenningBracket + indexRegionFromRecordset.Length);

                                if (regions.Contains(@group))
                                {
                                    grpIdx++;
                                    groupName = @group;
                                }
                            }
                        }
                    }

                    int count = complexExpressionAuditItems.Count(i => i.Expression.Equals(item.Expression));
                    if (count < 2)
                    {
                        groupName = "";
                    }

                    var debugOperator = "";
                    var debugType     = DebugItemResultType.Value;
                    if (DataListUtil.IsEvaluated(displayExpression))
                    {
                        debugOperator = "=";
                        debugType     = DebugItemResultType.Variable;
                    }
                    else
                    {
                        displayExpression = null;
                    }
                    results.Add(new DebugItemResult
                    {
                        Type       = debugType,
                        Label      = labelText,
                        Variable   = displayExpression,
                        Operator   = debugOperator,
                        GroupName  = groupName,
                        Value      = item.BoundValue,
                        GroupIndex = grpIdx
                    });
                }
            }
            else
            {
                //Could not evaluate
                results.Add(new DebugItemResult
                {
                    Type      = DebugItemResultType.Value,
                    Label     = labelText,
                    Variable  = debugTo.Expression,
                    Operator  = "=",
                    GroupName = "",
                    Value     = ""
                });
            }
        }
 public DebugItemVariableParams(DebugTO debugTO, List <string> regions = null)
 {
     _debugTO   = debugTO;
     _labelText = "";
     _regions   = regions;
 }