Esempio n. 1
0
        public static LightScript Deserialize(TreeNode<YamlObject> tree)
        {
            var commandRoot = new TreeNode<Command>();

            foreach (var yamlCommandNode in tree)
                DeserializeCommandsRecursively(commandRoot, yamlCommandNode);

            var lightScript = new LightScript(commandRoot);
            YamlSerializer.DeserializeSimpleProperties(lightScript, tree);

            return lightScript;
        }
 public override void SaveObject <T>(string path, T objToWrite)
 {
     try
     {
         var yamlTree = Serialize(objToWrite as LightTestFixture);
         var text     = YamlSerializer.SerializeYamlTree(yamlTree);
         File.WriteAllText(path, text);
     }
     catch (Exception e)
     {
         Logger.Log(LogType.Error, "Failed to write to file: " + path, e.Message);
     }
 }
Esempio n. 3
0
        public static TreeNode<YamlObject> Serialize(LightScript script, int level = 0)
        {
            var scriptObject = new YamlObject(level, script.GetType().Name, "");
            var tree = new TreeNode<YamlObject>(scriptObject);

            foreach (var n in YamlSerializer.SerializeSimpleProperties(script, level + 1))
                tree.AddChild(n);

            foreach (var node in script.Commands)
                SerializeCommandsRecursively(tree, node, level + 1);

            return tree;
        }
 public override T LoadObject <T>(string path)
 {
     try
     {
         var text     = File.ReadAllText(path);
         var yamlTree = YamlSerializer.DeserializeYamlTree(text);
         var s        = Deserialize(yamlTree);
         return((T)((object)s));
     }
     catch (Exception e)
     {
         Logger.Log(LogType.Error, "Failed to read from file: " + path, e.Message);
     }
     return(default(T));
 }
Esempio n. 5
0
        public static TreeNode <YamlObject> Serialize(Command command, int level)
        {
            var commandObject = new YamlObject(level, command.GetType().Name, "");
            var tree          = new TreeNode <YamlObject>(commandObject);

            tree.AddChild(new YamlObject(level + 1, "<Guid>k__BackingField", command.Guid));

            var objs = YamlSerializer.SerializeSimpleProperties(command, level + 1);

            foreach (var o in objs)
            {
                tree.AddChild(o);
            }

            return(tree);
        }
Esempio n. 6
0
        public static Command Deserialize(TreeNode <YamlObject> tree)
        {
            // TODO: These two lines take a lot of time, and they will be called a lot of times!!!
            var allCommandTypes = AppDomain.CurrentDomain.GetAllTypesWhichImplementInterface(typeof(Command));
            var commandType     = allCommandTypes.FirstOrDefault(type => type.Name.Equals(tree.value.property));

            if (commandType == null)
            {
                return(null);
            }

            var command = (Command)Activator.CreateInstance(commandType);

            YamlSerializer.DeserializeSimpleProperties(command, tree);

            return(command);
        }
        public static LightTestFixture Deserialize(TreeNode <YamlObject> tree)
        {
            var root = new TreeNode <LightScript>();

            var fixture = new LightTestFixture();

            YamlSerializer.DeserializeSimpleProperties(fixture, tree);

            foreach (var yamlScriptNode in tree)
            {
                var s = YamlScriptIO.Deserialize(yamlScriptNode);
                if (s == null || s.Name == null && s.Commands.Count() == 0) // Test fixture name is also part of the tree, so skip it
                {
                    continue;
                }

                fixture.AddScript(Script.FromLightScript(s));
            }

            return(fixture);
        }
        public static TreeNode <YamlObject> Serialize(LightTestFixture fixture)
        {
            var level         = 0;
            var fixtureObject = new YamlObject(level, fixture.GetType().Name, "");
            var tree          = new TreeNode <YamlObject>(fixtureObject);

            foreach (var n in YamlSerializer.SerializeSimpleProperties(fixture, level + 1))
            {
                tree.AddChild(n);
            }

            tree.Join(YamlScriptIO.Serialize(fixture.Setup.ToLightScript(), level + 1));
            tree.Join(YamlScriptIO.Serialize(fixture.TearDown.ToLightScript(), level + 1));
            tree.Join(YamlScriptIO.Serialize(fixture.OneTimeSetup.ToLightScript(), level + 1));
            tree.Join(YamlScriptIO.Serialize(fixture.OneTimeTeardown.ToLightScript(), level + 1));

            foreach (var t in fixture.Tests)
            {
                tree.Join(YamlScriptIO.Serialize(t.ToLightScript(), level + 1));
            }

            return(tree);
        }