public void ParseForActivityDataItems_GivenEmptyPayLoad_ShouldReturnCorreclty() { //---------------Set up test pack------------------- var parser = new Dev2DataLanguageParser(); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var forActivityDataItems = parser.ParseForActivityDataItems(""); //---------------Test Result ----------------------- Assert.AreEqual(0, forActivityDataItems.Count); }
public void Dev2DataLanguageParser_ParseExpressionIntoParts() { //---------------Set up test pack------------------- var parser = new Dev2DataLanguageParser(); const string nullText = null; var emptyList = parser.MakeParts(nullText, true); Assert.AreEqual(0, emptyList.Count); var parts = parser.ParseForActivityDataItems(nullText); Assert.AreEqual(0, parts.Count); const string unclosed = "[[varName"; parts = parser.ParseForActivityDataItems(unclosed); Assert.AreEqual("varName", parts[0]); Assert.ThrowsException <Dev2DataLanguageParseError>(() => parser.MakeParts(unclosed, true)); }
public void ParseForActivityDataItems_GivenPayLoadWithTwoVariables_ShouldReturnCorreclty() { //---------------Set up test pack------------------- var parser = new Dev2DataLanguageParser(); const string datalist = "[[a]] and [[b]]"; //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var forActivityDataItems = parser.ParseForActivityDataItems(datalist); //---------------Test Result ----------------------- Assert.AreEqual(2, forActivityDataItems.Count); }
public IList <string> FormatDsfActivityField(string activityField) { IList <string> result = new List <string>(); var regions = DataListCleaningUtils.SplitIntoRegionsForFindMissing(activityField); foreach (var region in regions) { // Sashen: 09-10-2012 : Using the new parser var intellisenseParser = new SyntaxTreeBuilder(); var nodes = intellisenseParser.Build(region); // No point in continuing ;) if (nodes == null) { return(result); } if (intellisenseParser.EventLog.HasEventLogs) { var languageParser = new Dev2DataLanguageParser(); try { result = languageParser.ParseForActivityDataItems(region); } catch (Dev2DataLanguageParseError) { return(new List <string>()); } catch (NullReferenceException) { return(new List <string>()); } } var allNodes = new List <Node>(); result = FormatDsfActivityField(result, intellisenseParser, nodes, allNodes); } try { FsInteropFunctions.ParseLanguageExpressionWithoutUpdate(activityField); } catch (Exception) { return(result.Where(lang => activityField.Contains("[[" + lang + "]]")).ToList()); } return(result); }
private void RecordsetGroupName(ref int grpIdx, ref string displayExpression, string rawExpression, ref string groupName) { grpIdx++; groupName = rawExpression; var dataLanguageParser = new Dev2DataLanguageParser(); var vals = dataLanguageParser.ParseForActivityDataItems(_assignedToVariableName); if (vals != null) { foreach (var val in vals) { var repVal = DataListUtil.CreateRecordsetDisplayValue(DataListUtil.ExtractRecordsetNameFromValue(val), DataListUtil.ExtractFieldNameFromValue(val), grpIdx.ToString()); displayExpression = _assignedToVariableName.Replace(val, repVal); } } }
public void Dev2DataLanguageParser_ParseForActivityDataItems_PayloadIsEmpty_NoDataListParts() { //------------Setup for test-------------------------- var dev2LanuageParser = new Dev2DataLanguageParser(); //------------Execute Test--------------------------- var parts = dev2LanuageParser.ParseForActivityDataItems(""); //------------Assert Results------------------------- Assert.AreEqual(0, parts.Count); }
public void Dev2LanuageParser_Parse_WhenCommaDelimited_ExpectThreeValidParts() { //------------Setup for test-------------------------- var dev2LanuageParser = new Dev2DataLanguageParser(); const string data = @" [[rec().s]], [[rec().e]], [[rec().t]]"; //------------Execute Test--------------------------- var parts = dev2LanuageParser.ParseForActivityDataItems(data); //------------Assert Results------------------------- Assert.AreEqual(3, parts.Count); }
private void OldValueAtomListResult(List <IDebugItemResult> results) { var recSetResult = _oldValue as CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult; string groupName = null; int grpIdx = 0; if (recSetResult != null) { foreach (var item in recSetResult.Item) { string displayExpression = _assignedToVariableName; string rawExpression = _assignedToVariableName; if (displayExpression.Contains("().") || displayExpression.Contains("(*).")) { grpIdx++; groupName = rawExpression; Dev2DataLanguageParser dataLanguageParser = new Dev2DataLanguageParser(); var vals = dataLanguageParser.ParseForActivityDataItems(_assignedToVariableName); if (vals != null) { foreach (var val in vals) { var repVal = DataListUtil.CreateRecordsetDisplayValue(DataListUtil.ExtractRecordsetNameFromValue(val), DataListUtil.ExtractFieldNameFromValue(val), grpIdx.ToString()); displayExpression = _assignedToVariableName.Replace(val, repVal); } } } else { 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); grpIdx++; groupName = @group; } } var debugOperator = ""; var debugType = DebugItemResultType.Value; if (DataListUtil.IsEvaluated(displayExpression)) { debugOperator = "="; debugType = DebugItemResultType.Variable; if (_isCalculate) { displayExpression = groupName ?? displayExpression; } } else { displayExpression = null; } var debugItemResult = new DebugItemResult { Type = debugType, Label = _rightLabel, Variable = DataListUtil.IsEvaluated(displayExpression) ? displayExpression : null, Operator = debugOperator, GroupName = groupName, Value = ExecutionEnvironment.WarewolfAtomToString(item), GroupIndex = grpIdx, MockSelected = _mockSelected }; results.Add(debugItemResult); } } }