public void DsfDotNetMultiAssignObjectActivity_ToNewRecordset_DebugModeAddsDebugItems() { var env = new ExecutionEnvironment(); env.AssignJson(new AssignValue("[[@names(1).Name]]", "Mary"), 0); env.AssignJson(new AssignValue("[[@names(2).Name]]", "Jane"), 0); env.Assign("[[list().name]]", "asdf", 0); var data = new Mock <IDSFDataObject>(); data.Setup(o => o.Environment).Returns(() => env); data.Setup(o => o.IsDebugMode()).Returns(() => true); var ob = new DsfDotNetMultiAssignObjectActivity { FieldsCollection = new List <AssignObjectDTO> { new AssignObjectDTO("[[list().name]]", "[[list().name]]", 0) } }; ob.Execute(data.Object, 0); var a = ob.GetDebugOutputs(env, 0); Assert.AreEqual("asdf", a[0].ResultsList[1].Value); Assert.AreEqual("[[list(1).name]]", a[0].ResultsList[1].Variable); }
public static DataStorage.WarewolfEnvironment CreateEnvironmentWithData() { var env = new ExecutionEnvironment(); env.Assign("[[Rec(1).a]]", "1", 0); env.Assign("[[Rec(2).a]]", "2", 0); env.Assign("[[Rec(3).a]]", "3", 0); env.Assign("[[Rec(4).a]]", "2", 0); env.Assign("[[Rec(1).b]]", "a", 0); env.Assign("[[Rec(2).b]]", "b", 0); env.Assign("[[Rec(3).b]]", "c", 0); env.Assign("[[Rec(4).b]]", "c", 0); env.Assign("[[x]]", "1", 0); env.Assign("[[y]]", "y", 0); env.Assign("[[r]]", "s", 0); env.Assign("[[s]]", "s", 0); env.AssignJson(new AssignValue("[[@Person.Name]]", "bob"), 0); env.AssignJson(new AssignValue("[[@Person.Age]]", "22"), 0); env.AssignJson(new AssignValue("[[@Person.Spouse.Name]]", "dora"), 0); env.AssignJson(new AssignValue("[[@Person.Children(1).Name]]", "Mary"), 0); env.AssignJson(new AssignValue("[[@Person.Children(2).Name]]", "Jane"), 0); env.AssignJson(new AssignValue("[[@Person.Score(1)]]", "2"), 0); env.AssignJson(new AssignValue("[[@Person.Score(2)]]", "3"), 0); env.AssignJson(new AssignValue("[[array(1)]]", "bob"), 0); env.AssignJson(new AssignValue("[[arrayObj(1).Name]]", "bob"), 0); env.AssignJson(new AssignValue("[[arrayObj(2).Name]]", "bobe"), 0); var p = new PrivateObject(env); return((DataStorage.WarewolfEnvironment)p.GetFieldOrProperty("_env")); }
public void CommonFunctions_atomtoString_GivenCircularJson_ExpectCorrectJson() { //------------Setup for test-------------------------- var eEnv = new ExecutionEnvironment(); eEnv.AssignJson(new AssignValue("[[@a]]", "{\"aa\":1}"), 0); eEnv.AssignJson(new AssignValue("[[@a.b()]]", "{\"bb\":2}"), 0); eEnv.AssignJson(new AssignValue("[[@a.c(1).a1]]", "[[@a]]"), 0); eEnv.AssignJson(new AssignValue("[[@a.c(1).a1.aa]]", "55"), 0); var env = ExtractEnvironment(eEnv); var result = EvaluationFunctions.eval(env, 0, false, "[[@a]]"); var a = CommonFunctions.evalResultToString(result); var json = (JObject)JsonConvert.DeserializeObject(a); Assert.AreEqual(1, json["aa"]); Assert.AreEqual(1, ((JArray)json["b"]).Count); Assert.AreEqual(2, json["b"][0]["bb"]); var c1 = ((JArray)json["c"])[0]; Assert.AreEqual(55, c1["a1"]["aa"]); Assert.AreEqual(2, c1["a1"]["b"][0]["bb"]); Assert.IsFalse(((JObject)c1["a1"]).ContainsKey("c")); //Assert.AreEqual(1, ((JArray)c1["a1"]["c"]).Count); // this should not exist, it is an artifact of the assign in progress when c(1).a1 is being assigned its parent @a }
public void AssignJobjectAndJArray_MultipleJValues_EvalCorreclty() { //------------Setup for test-------------------------- var environment = new ExecutionEnvironment(); var jObject = "{\"PolicyNo\":\"A0003\",\"DateId\":32,\"SomeVal\":\"Bob\"}"; var values = new List <IAssignValue>() { new AssignValue("[[@Person()]]", jObject), new AssignValue("[[@Person()]]", jObject), new AssignValue("[[@Person()]]", jObject), new AssignValue("[[@Person()]]", jObject), }; //------------Execute Test--------------------------- environment.AssignJson(new AssignValue("[[@Person()]]", "{\"PolicyNo\":\"NNNN\",\"DateId\":32,\"SomeVal\":\"Bob\"}"), 0); environment.AssignJson(values, 0); //------------Assert Results------------------------- var data = GetFromEnv(environment); var warewolfEvalResult = environment.Eval("[[@Person()]]", 0); var isWarewolfAtomListresult = warewolfEvalResult.IsWarewolfAtomListresult; var isWarewolfAtomresult = warewolfEvalResult.IsWarewolfAtomResult; Assert.IsFalse(isWarewolfAtomListresult); Assert.IsTrue(isWarewolfAtomresult); var container = data.JsonObjects["Person"]; var obj = container as JArray; Assert.IsNotNull(obj); }
public static DataStorage.WarewolfEnvironment CreateEnvironmentWithData() { var env = new ExecutionEnvironment(); env.Assign("[[Rec(1).a]]", "1", 0); env.Assign("[[Rec(2).a]]", "2", 0); env.Assign("[[Rec(3).a]]", "3", 0); env.Assign("[[non(3).a]]", "1", 0); env.Assign("[[non(2).a]]", "2", 0); env.Assign("[[non(1).a]]", "3", 0); env.Assign("[[Rec(1).b]]", "a", 0); env.Assign("[[Rec(2).b]]", "b", 0); env.Assign("[[Rec(3).b]]", "c", 0); env.Assign("[[escapeValue]]", "some test with a tab character\tin it", 0); env.Assign("[[esc(1).val]]", "some\tstring", 0); env.Assign("[[esc(2).val]]", "another\tstring", 0); env.Assign("[[x]]", "1", 0); env.Assign("[[y]]", "y", 0); env.AssignJson(new AssignValue("[[@Person.Name]]", "bob"), 0); env.AssignJson(new AssignValue("[[@Person.Age]]", "22"), 0); env.AssignJson(new AssignValue("[[@Person.Spouse.Name]]", "dora"), 0); env.AssignJson(new AssignValue("[[@Person.Children(1).Name]]", "Mary"), 0); env.AssignJson(new AssignValue("[[@Person.Children(2).Name]]", "Jane"), 0); env.AssignJson(new AssignValue("[[@Person.Score(1)]]", "2"), 0); env.AssignJson(new AssignValue("[[@Person.Score(2)]]", "3"), 0); env.AssignJson(new AssignValue("[[@array(1)]]", "bob"), 0); env.AssignJson(new AssignValue("[[@arrayObj(1).Name]]", "bob"), 0); env.AssignJson(new AssignValue("[[@arrayObj(2).Name]]", "bobe"), 0); var p = new Warewolf.Testing.PrivateObject(env); return((DataStorage.WarewolfEnvironment)p.GetFieldOrProperty("_env")); }
public void GivenListResults_ExecutionEnvironmentEvalAsListOfStrings_ShouldReturnValuesAsList() { Assert.IsNotNull(_environment); _environment.AssignJson(new AssignValue(PersonNameExpression, "Sanele"), 0); var evalAsListOfStrings = _environment.EvalAsListOfStrings(PersonNameExpression, 0); Assert.IsTrue(evalAsListOfStrings.Contains("Sanele")); }
public void AssignSingleProperty_AssignASecondValueChildNameWithAtNotation() { //------------Setup for test-------------------------- ExecutionEnvironment environment = new ExecutionEnvironment(); var values = new List <IAssignValue>() { new AssignValue("[[@Person.Name]]", "John"), new AssignValue("[[@Person.Children(1).Name]]", "Mary"), new AssignValue("[[@Person.Children(2).Name]]", "Joe") }; Dev2JsonSerializer ser = new Dev2JsonSerializer(); //var p = new Person() { Name = "John", Children = new List<Person> { new Person() { Name = "Mary", }}}; //var x = ser.Serialize(p); //------------Execute Test--------------------------- environment.AssignJson(values, 0); //------------Assert Results------------------------- var data = GetFromEnv(environment); Assert.IsTrue(data.JsonObjects.ContainsKey("Person")); var obj = data.JsonObjects["Person"] as JObject; if (obj != null) { Assert.AreEqual(obj.ToString(), "{\r\n \"Name\": \"John\",\r\n \"Children\": [\r\n {\r\n \"Name\": \"Mary\"\r\n },\r\n {\r\n \"Name\": \"Joe\"\r\n }\r\n ]\r\n}"); } else { Assert.Fail("bob"); } }
public void AssignSingleProperty_ValueProperty_Assign_A_PropertyWithAtNotation() { //------------Setup for test-------------------------- ExecutionEnvironment environment = new ExecutionEnvironment(); var values = new List <IAssignValue>() { new AssignValue("[[@Person.Name]]", "John") }; Dev2JsonSerializer ser = new Dev2JsonSerializer(); //------------Execute Test--------------------------- environment.AssignJson(values, 0); //------------Assert Results------------------------- var data = GetFromEnv(environment); Assert.IsTrue(data.JsonObjects.ContainsKey("Person")); var obj = data.JsonObjects["Person"] as JObject; if (obj != null) { Assert.AreEqual(obj.ToString(), "{\r\n \"Name\": \"John\"\r\n}"); } else { Assert.Fail("bob"); } }
public void AssignSingleProperty_AssignAllValueChildNameWithAtNotation() { //------------Setup for test-------------------------- var environment = new ExecutionEnvironment(); var values = new List <IAssignValue>() { new AssignValue("[[@Person.Name]]", "John"), new AssignValue("[[@Person.Children(1).Name]]", "Mary"), new AssignValue("[[@Person.Children(2).Name]]", "Joe"), new AssignValue("[[@Person.Children(*).Name]]", "Moe") }; //------------Execute Test--------------------------- environment.AssignJson(values, 0); //------------Assert Results------------------------- var data = GetFromEnv(environment); Assert.IsTrue(data.JsonObjects.ContainsKey("Person")); if (data.JsonObjects["Person"] is JObject obj) { Assert.AreEqual(obj.ToString(), "{\r\n \"Name\": \"John\",\r\n \"Children\": [\r\n {\r\n \"Name\": \"Moe\"\r\n },\r\n {\r\n \"Name\": \"Moe\"\r\n }\r\n ]\r\n}"); } else { Assert.Fail("bob"); } }
public void AssignJArray_MultipleJValues_EvalIndexThreeCorreclty() { //------------Setup for test-------------------------- var environment = new ExecutionEnvironment(); var values = new List <IAssignValue>() { new AssignValue("[[@Person()]]", "{\"PolicyNo\":\"A0001\",\"DateId\":32,\"SomeVal\":\"Bob\"}"), new AssignValue("[[@Person()]]", "{\"PolicyNo\":\"A0002\",\"DateId\":32,\"SomeVal\":\"Bob\"}"), new AssignValue("[[@Person()]]", "{\"PolicyNo\":\"A0003\",\"DateId\":32,\"SomeVal\":\"Bob\"}"), new AssignValue("[[@Person()]]", "{\"PolicyNo\":\"A0004\",\"DateId\":32,\"SomeVal\":\"Bob\"}"), }; //------------Execute Test--------------------------- environment.AssignJson(values, 0); //------------Assert Results------------------------- var warewolfEvalResult = environment.Eval("[[@Person(3)]]", 0); var isWarewolfAtomListresult = warewolfEvalResult.IsWarewolfAtomListresult; var isWarewolfAtomresult = warewolfEvalResult.IsWarewolfAtomResult; Assert.IsFalse(isWarewolfAtomListresult); Assert.IsTrue(isWarewolfAtomresult); var evalResultToString = ExecutionEnvironment.WarewolfEvalResultToString(warewolfEvalResult); var contains = evalResultToString.Contains("A0003"); Assert.IsTrue(contains); }
public void CommonFunctions_atomtoString_GivenJsonEmptyArray_ExpectCorrectJson() { //------------Setup for test-------------------------- var eEnv = new ExecutionEnvironment(); eEnv.AssignJson(new AssignValue("[[@a]]", "{\"aa\":1}"), 0); eEnv.AssignJson(new AssignValue("[[@a.b]]", "{\"bb\":2}"), 0); eEnv.AssignJson(new AssignValue("[[@a.c]]", "[[@a]]"), 0); eEnv.AssignJson(new AssignValue("[[@a2(1)]]", "{\"indexNested\": 3}"), 0); eEnv.AssignJson(new AssignValue("[[@a.d]]", "[[@a2]]"), 0); eEnv.AssignJson(new AssignValue("[[@a.e()]]", "{\"ee\":4}"), 0); eEnv.AssignJson(new AssignValue("[[@a.f]]", "[]"), 0); var env = ExtractEnvironment(eEnv); var result = EvaluationFunctions.eval(env, 0, false, "[[@a]]"); var a = CommonFunctions.evalResultToString(result); var json = (JObject)JsonConvert.DeserializeObject(a); Assert.AreEqual(1, json["aa"]); Assert.AreEqual(2, json["b"]["bb"]); Assert.AreEqual(1, json["c"]["aa"]); Assert.AreEqual(2, json["c"]["b"]["bb"]); Assert.AreEqual(1, ((JArray)json["d"]).Count); Assert.AreEqual(3, json["d"][0]["indexNested"]); Assert.AreEqual(1, ((JArray)json["e"]).Count); Assert.AreEqual(4, json["e"][0]["ee"]); Assert.AreEqual(0, ((JArray)json["f"]).Count, "empty json array expected"); }
public void BuildJObjectArrayIndexMapHelper_Build_GivenListOfStrings_ExpectIndexForEachArrayItem() { var env = new ExecutionEnvironment(); env.AssignJson(new AssignValue("[[@users()]]", "{\"name\":\"bob\"}"), 0); env.AssignJson(new AssignValue("[[@users()]]", "{\"name\":\"joe\"}"), 0); env.AssignJson(new AssignValue("[[@users()]]", "{\"name\":\"jef\"}"), 0); var test = new BuildJObjectArrayIndexMapHelper(env); const string exp = "[[@users(*).name]]"; var parsedExpression = EvaluationFunctions.parseLanguageExpressionWithoutUpdate(exp, ShouldTypeCast.Yes) as LanguageAST.LanguageExpression.JsonIdentifierExpression; var indexMap = test.Build(parsedExpression.Item, exp); Assert.AreEqual(3, indexMap.Count); Assert.AreEqual("[[@users(1).name]]", indexMap[0]); Assert.AreEqual("[[@users(2).name]]", indexMap[1]); Assert.AreEqual("[[@users(3).name]]", indexMap[2]); }
public void BuildJObjectArrayIndexMapHelper_Build_GivenNullExpression_DoesNotThrow() { var env = new ExecutionEnvironment(); env.AssignJson(new AssignValue("[[@ob]]", "{\"addresses\":[],\"users\":[{\"name\":\"bob\"},{\"name\":\"joe\"},{\"name\":\"jef\"}],\"tags\":[]}"), 0); var test = new BuildJObjectArrayIndexMapHelper(env); const string exp = "[[@ob.users(*).name]]"; var indexMap = test.Build(null, exp); Assert.AreEqual(0, indexMap.Count); }
public void BuildJObjectArrayIndexMapHelper_Build_GivenObjectWithChildThatHasListOfStrings_SelectNonExistentItem_ExpectNoIndexMap() { var env = new ExecutionEnvironment(); env.AssignJson(new AssignValue("[[@ob]]", "{\"addresses\":[],\"user\":{\"name\":\"bob\", \"friends\":[{\"name\":\"joe\"},{\"name\":\"jef\"}]}}"), 0); var test = new BuildJObjectArrayIndexMapHelper(env); const string exp = "[[@ob.user.addresses(*).name]]"; var parsedExpression = EvaluationFunctions.parseLanguageExpressionWithoutUpdate(exp, ShouldTypeCast.Yes) as LanguageAST.LanguageExpression.JsonIdentifierExpression; var indexMap = test.Build(parsedExpression.Item, exp); Assert.AreEqual(0, indexMap.Count); }