public void UnknownTaskLogsHelp() { ITaskRegistry registry = Substitute.For <ITaskRegistry>(); UnknownTask task = new UnknownTask(registry, "GeneralHelp"); ITaskInteraction interaction = Substitute.For <ITaskInteraction>(); ILoggers loggers = Substitute.For <ILoggers>(); interaction.Loggers.Returns(loggers); ILogger logger = Substitute.For <ILogger>(); loggers[LoggerType.Result].Returns(logger); task.Execute(interaction).Should().Be(ExitCode.InvalidArgument); logger.Received().WriteLine(WriteStyle.Fixed, "GeneralHelp"); }
public void NoParameters() { ITaskRegistry registry = Substitute.For <ITaskRegistry>(); UnknownTask task = new UnknownTask(registry, "GeneralHelp"); ITaskInteraction interaction = Substitute.For <ITaskInteraction>(); ILoggers loggers = Substitute.For <ILoggers>(); interaction.Loggers.Returns(loggers); ILogger logger = Substitute.For <ILogger>(); loggers[LoggerType.Status].Returns(logger); task.Execute(interaction).Should().Be(ExitCode.InvalidArgument); logger.Received().WriteLine(WriteStyle.Error, XTaskStrings.ErrorNoParametersSpecified); }
public void UnkownCommand() { ITaskRegistry registry = Substitute.For <ITaskRegistry>(); UnknownTask task = new UnknownTask(registry, "GeneralHelp"); ITaskInteraction interaction = Substitute.For <ITaskInteraction>(); IArgumentProvider arguments = Substitute.For <IArgumentProvider>(); string commandName = "Foo"; interaction.Arguments.Returns(arguments); interaction.Arguments.Command.Returns(commandName); ILoggers loggers = Substitute.For <ILoggers>(); interaction.Loggers.Returns(loggers); ILogger logger = Substitute.For <ILogger>(); loggers[LoggerType.Status].Returns(logger); task.Execute(interaction).Should().Be(ExitCode.InvalidArgument); logger.Received().WriteLine(WriteStyle.Error, XTaskStrings.UnknownCommand, commandName); }
public static void LoadTask(TaskSerializationData taskSerializationData, FieldSerializationData fieldSerializationData, ref List <Task> taskList, ref BehaviorSource behaviorSource) { int count = taskList.Count; int num = taskSerializationData.startIndex[count]; int num2; if (count + 1 < taskSerializationData.startIndex.Count) { num2 = taskSerializationData.startIndex[count + 1]; } else { num2 = fieldSerializationData.startIndex.Count; } Dictionary <int, int> dictionary = ObjectPool.Get <Dictionary <int, int> >(); dictionary.Clear(); for (int i = num; i < num2; i++) { if (!dictionary.ContainsKey(fieldSerializationData.fieldNameHash[i])) { dictionary.Add(fieldSerializationData.fieldNameHash[i], fieldSerializationData.startIndex[i]); } } Type type = TaskUtility.GetTypeWithinAssembly(taskSerializationData.types[count]); if (type == null) { bool flag = false; for (int j = 0; j < taskSerializationData.parentIndex.Count; j++) { if (count == taskSerializationData.parentIndex[j]) { flag = true; break; } } if (flag) { type = typeof(UnknownParentTask); } else { type = typeof(UnknownTask); } } Task task = TaskUtility.CreateInstance(type) as Task; if (task is UnknownTask) { UnknownTask unknownTask = task as UnknownTask; for (int k = num; k < num2; k++) { unknownTask.fieldNameHash.Add(fieldSerializationData.fieldNameHash[k]); unknownTask.startIndex.Add(fieldSerializationData.startIndex[k] - fieldSerializationData.startIndex[num]); } for (int l = fieldSerializationData.startIndex[num]; l <= fieldSerializationData.startIndex[num2 - 1]; l++) { unknownTask.dataPosition.Add(fieldSerializationData.dataPosition[l] - fieldSerializationData.dataPosition[fieldSerializationData.startIndex[num]]); } if (count + 1 < taskSerializationData.startIndex.Count && taskSerializationData.startIndex[count + 1] < fieldSerializationData.dataPosition.Count) { num2 = fieldSerializationData.dataPosition[taskSerializationData.startIndex[count + 1]]; } else { num2 = fieldSerializationData.byteData.Count; } for (int m = fieldSerializationData.dataPosition[fieldSerializationData.startIndex[num]]; m < num2; m++) { unknownTask.byteData.Add(fieldSerializationData.byteData[m]); } unknownTask.unityObjects = fieldSerializationData.unityObjects; } task.Owner = (behaviorSource.Owner.GetObject() as Behavior); taskList.Add(task); task.ID = (int)BinaryDeserialization.LoadField(fieldSerializationData, dictionary, typeof(int), "ID", 0, null, null, null); task.FriendlyName = (string)BinaryDeserialization.LoadField(fieldSerializationData, dictionary, typeof(string), "FriendlyName", 0, null, null, null); task.IsInstant = (bool)BinaryDeserialization.LoadField(fieldSerializationData, dictionary, typeof(bool), "IsInstant", 0, null, null, null); object obj; if ((obj = BinaryDeserialization.LoadField(fieldSerializationData, dictionary, typeof(bool), "Disabled", 0, null, null, null)) != null) { task.Disabled = (bool)obj; } BinaryDeserialization.LoadNodeData(fieldSerializationData, dictionary, taskList[count]); if (task.GetType().Equals(typeof(UnknownTask)) || task.GetType().Equals(typeof(UnknownParentTask))) { if (!task.FriendlyName.Contains("Unknown ")) { task.FriendlyName = string.Format("Unknown {0}", task.FriendlyName); } task.NodeData.Comment = "Unknown Task. Right click and Replace to locate new task."; } BinaryDeserialization.LoadFields(fieldSerializationData, dictionary, taskList[count], 0, behaviorSource); ObjectPool.Return <Dictionary <int, int> >(dictionary); }
// Token: 0x06000159 RID: 345 RVA: 0x0000C0A0 File Offset: 0x0000A2A0 public static Task DeserializeTask(BehaviorSource behaviorSource, Dictionary <string, object> dict, ref Dictionary <int, Task> IDtoTask, List <UnityEngine.Object> unityObjects) { Task task = null; try { Type type = TaskUtility.GetTypeWithinAssembly(dict["Type"] as string); if (type == null) { if (dict.ContainsKey("Children")) { type = typeof(UnknownParentTask); } else { type = typeof(UnknownTask); } } task = (TaskUtility.CreateInstance(type) as Task); if (task is UnknownTask) { UnknownTask unknownTask = task as UnknownTask; unknownTask.JSONSerialization = MiniJSON.Serialize(dict); } } catch (Exception) { } if (task == null) { return(null); } task.Owner = (behaviorSource.Owner.GetObject() as Behavior); task.ID = Convert.ToInt32(dict["ID"]); object obj; if (dict.TryGetValue("Name", out obj)) { task.FriendlyName = (string)obj; } if (dict.TryGetValue("Instant", out obj)) { task.IsInstant = Convert.ToBoolean(obj); } if (dict.TryGetValue("Disabled", out obj)) { task.Disabled = Convert.ToBoolean(obj); } IDtoTask.Add(task.ID, task); task.NodeData = JSONDeserialization.DeserializeNodeData(dict["NodeData"] as Dictionary <string, object>, task); if (task.GetType().Equals(typeof(UnknownTask)) || task.GetType().Equals(typeof(UnknownParentTask))) { if (!task.FriendlyName.Contains("Unknown ")) { task.FriendlyName = string.Format("Unknown {0}", task.FriendlyName); } task.NodeData.Comment = "Unknown Task. Right click and Replace to locate new task."; } JSONDeserialization.DeserializeObject(task, task, dict, behaviorSource, unityObjects); if (task is ParentTask && dict.TryGetValue("Children", out obj)) { ParentTask parentTask = task as ParentTask; if (parentTask != null) { foreach (object obj2 in (obj as IEnumerable)) { Dictionary <string, object> dict2 = (Dictionary <string, object>)obj2; Task child = JSONDeserialization.DeserializeTask(behaviorSource, dict2, ref IDtoTask, unityObjects); int index = (parentTask.Children != null) ? parentTask.Children.Count : 0; parentTask.AddChild(child, index); } } } return(task); }