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; }
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); }
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); }
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); }
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); }
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); }
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; }