Beispiel #1
0
        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");
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
    }
Beispiel #5
0
        // 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);
        }