Esempio n. 1
0
        public void TestOverrideSubDataStruct()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\">\n"+
                         "		<_struct>\n"+
                         "			<test>1337</test>\n"+
                         "		</_struct>\n"+
                         "	</TestPrototype>\n"+
                         "	<TestPrototype Id=\"Test2\" Inherits=\"Test\">\n"+
                         "		<_struct>\n"+
                         "			<test2>1338</test2>\n"+
                         "		</_struct>\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(2, prototypes.Count);

            Assert.AreEqual(1337, (prototypes[0] as TestPrototype)._struct.test);
            Assert.AreEqual(1338, (prototypes[1] as TestPrototype)._struct.test2);
        }
Esempio n. 2
0
        public void TestValueTypes()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\">\n"+
                         "		<someRate>2.5</someRate>\n"+
                         "		<someInt>5</someInt>\n"+
                         "		<vec2>5.1,2.5</vec2>\n"+
                         "		<vec3>2.5,5.1,9</vec3>\n"+
                         "		<vec4>9,2.5,5,1.25</vec4>\n"+
                         "		<quat>9,2.5,5,1.25</quat>\n"+
                         "		<color>0.25,1,0.5,1</color>\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual(2.5f, (prototypes[0] as TestPrototype).someRate);
            Assert.AreEqual(5f, (prototypes[0] as TestPrototype).someInt);
            Assert.AreEqual(new Vector2(5.1f, 2.5f), (prototypes[0] as TestPrototype).vec2);
            Assert.AreEqual(new Vector3(2.5f, 5.1f, 9), (prototypes[0] as TestPrototype).vec3);
            Assert.AreEqual(new Vector4(9, 2.5f, 5, 1.25f), (prototypes[0] as TestPrototype).vec4);
            Assert.AreEqual(new Quaternion(9, 2.5f, 5, 1.25f), (prototypes[0] as TestPrototype).quat);
            Assert.AreEqual(new Color(0.25f, 1f, 0.5f, 1f), (prototypes[0] as TestPrototype).color);
        }
Esempio n. 3
0
        public void TestOverridePrototypeRefs()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\">\n"+
                         "		<someRate>2.5</someRate>\n"+
                         "		<someInt>5</someInt>\n"+
                         "	</TestPrototype>\n"+
                         "	<TestPrototype Id=\"Test2\">\n"+
                         "		<someOtherPrototype>Test</someOtherPrototype>\n"+
                         "	</TestPrototype>\n"+
                         "	<TestPrototype Id=\"Test3\" Inherits=\"Test2\">\n"+
                         "		<someOtherPrototype>Test2</someOtherPrototype>\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(3, prototypes.Count);

            Assert.AreEqual(2.5f, (prototypes[0] as TestPrototype).someRate);
            Assert.AreEqual(5f, (prototypes[0] as TestPrototype).someInt);
            Assert.AreSame((prototypes[0] as TestPrototype), (prototypes[1] as TestPrototype).someOtherPrototype);
            Assert.AreSame((prototypes[1] as TestPrototype), (prototypes[2] as TestPrototype).someOtherPrototype);
        }
Esempio n. 4
0
        public void ParserTestCustomPrototypeClass()
        {
            string xml = "<PrototypeContainer Type=\"TestPrototype\">\n" +
                         "	<Prototype Id=\"Test\" Type=\"TestPrototypeSpec\">\n"+
                         "		<someRate>2.5</someRate>\n"+
                         "		<someInt>5</someInt>\n"+
                         "		<testField>500</testField>\n"+
                         "	</Prototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser();

            parser.Parse(xml, "DIRECT PARSE", new PrototypeParseParameters()
            {
                standardNamespace = "UnityTK.Test.Prototypes"
            });
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual(2.5f, (prototypes[0] as TestPrototype).someRate);
            Assert.AreEqual(5f, (prototypes[0] as TestPrototype).someInt);
            Assert.AreEqual(500, (prototypes[0] as TestPrototypeSpec).testField);
        }
Esempio n. 5
0
        public void ParserTestSubDataCustomType()
        {
            string xml = "<PrototypeContainer Type=\"TestPrototype\">\n" +
                         "	<Prototype Id=\"Test\">\n"+
                         "		<testBase Type=\"SpecializedClass\">\n"+
                         "			<baseStr>teststr</baseStr>\n"+
                         "			<lul>10</lul>\n"+
                         "		</testBase>\n"+
                         "	</Prototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser();

            parser.Parse(xml, "DIRECT PARSE", new PrototypeParseParameters()
            {
                standardNamespace = "UnityTK.Test.Prototypes"
            });
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual("teststr", (prototypes[0] as TestPrototype).testBase.baseStr);
            Assert.AreEqual(10, ((prototypes[0] as TestPrototype).testBase as TestPrototype.SpecializedClass).lul);
        }
Esempio n. 6
0
        public void ParserTestTypeSerializer()
        {
            string xml = "<PrototypeContainer Type=\"TestPrototype\">\n" +
                         "	<Prototype Id=\"Test\">\n"+
                         "		<type>TestPrototype+TestBase</type>\n"+
                         "	</Prototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser();

            parser.Parse(xml, "DIRECT PARSE", new PrototypeParseParameters()
            {
                standardNamespace = "UnityTK.Test.Prototypes"
            });
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreSame(typeof(TestPrototype.TestBase), (prototypes[0] as TestPrototype).type);
        }
Esempio n. 7
0
        public void ParserTestSubDataStruct()
        {
            string xml = "<PrototypeContainer Type=\"TestPrototype\">\n" +
                         "	<Prototype Id=\"Test\">\n"+
                         "		<_struct>\n"+
                         "			<test>1337</test>\n"+
                         "		</_struct>\n"+
                         "	</Prototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser();

            parser.Parse(xml, "DIRECT PARSE", new PrototypeParseParameters()
            {
                standardNamespace = "UnityTK.Test.Prototypes"
            });
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual(1337, (prototypes[0] as TestPrototype)._struct.test);
        }
Esempio n. 8
0
        public void TestCollectionsList()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\">\n"+
                         "		<list>\n"+
                         "			<li>\n"+
                         "				<baseStr>teststr1</baseStr>\n"+
                         "			</li>\n"+
                         "			<li Type=\"SpecializedClass\">\n"+
                         "				<baseStr>teststr2</baseStr>\n"+
                         "				<lul>10</lul>\n"+
                         "			</li>\n"+
                         "		</list>\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            var collection = (prototypes[0] as TestPrototype).list;

            Assert.AreEqual(2, collection.Count);
            Assert.AreEqual("teststr1", collection[0].baseStr);
            Assert.AreEqual("teststr2", collection[1].baseStr);
            Assert.AreEqual(10, (collection[1] as TestPrototype.SpecializedClass).lul);
        }
        public void ParserTestValueTypes()
        {
            string xml = "<PrototypeContainer Type=\"TestPrototype\">\n" +
                         "	<Prototype Id=\"Test\">\n"+
                         "		<someRate>2.5</someRate>\n"+
                         "		<someInt>5</someInt>\n"+
                         "		<vec2>5.1,2.5</vec2>\n"+
                         "		<vec3>2.5,5.1,9</vec3>\n"+
                         "		<vec4>9,2.5,5,1.25</vec4>\n"+
                         "		<quat>9,2.5,5,1.25</quat>\n"+
                         "	</Prototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser();

            parser.Parse(xml, "DIRECT PARSE", new PrototypeParseParameters()
            {
                standardNamespace = "UnityTK.Test.Prototypes"
            });
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual(2.5f, (prototypes[0] as TestPrototype).someRate);
            Assert.AreEqual(5f, (prototypes[0] as TestPrototype).someInt);
            Assert.AreEqual(new Vector2(5.1f, 2.5f), (prototypes[0] as TestPrototype).vec2);
            Assert.AreEqual(new Vector3(2.5f, 5.1f, 9), (prototypes[0] as TestPrototype).vec3);
            Assert.AreEqual(new Vector4(9, 2.5f, 5, 1.25f), (prototypes[0] as TestPrototype).vec4);
            Assert.AreEqual(new Quaternion(9, 2.5f, 5, 1.25f), (prototypes[0] as TestPrototype).quat);
        }
Esempio n. 10
0
        public void ParserTestAbstractPrototypes()
        {
            string xml = "<PrototypeContainer Type=\"TestPrototype\">\n" +
                         "	<Prototype Id=\"Test\" Abstract=\"True\">\n"+
                         "		<someRate>2.5</someRate>\n"+
                         "	</Prototype>\n"+
                         "	<Prototype Id=\"Test2\" Inherits=\"Test\">\n"+
                         "	</Prototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser();

            parser.Parse(xml, "DIRECT PARSE", new PrototypeParseParameters()
            {
                standardNamespace = "UnityTK.Test.Prototypes"
            });
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual(2.5f, (prototypes[0] as TestPrototype).someRate);
        }
Esempio n. 11
0
        public void TestOverrideSubData()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\">\n"+
                         "		<testBase Type=\"SpecializedClass\">\n"+
                         "			<baseStr>teststr</baseStr>\n"+
                         "			<lul>1</lul>\n"+
                         "		</testBase>\n"+
                         "	</TestPrototype>\n"+
                         "	<TestPrototype Id=\"Test2\" Inherits=\"Test\">\n"+
                         "		<testBase>\n"+
                         "			<baseStr>teststr2</baseStr>\n"+
                         "		</testBase>\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(2, prototypes.Count);

            Assert.AreEqual("teststr", (prototypes[0] as TestPrototype).testBase.baseStr);
            Assert.AreEqual(1, ((prototypes[0] as TestPrototype).testBase as TestPrototype.SpecializedClass).lul);
            Assert.AreEqual("teststr2", (prototypes[1] as TestPrototype).testBase.baseStr);
            Assert.AreEqual(1, ((prototypes[1] as TestPrototype).testBase as TestPrototype.SpecializedClass).lul);
        }
Esempio n. 12
0
        public void TestCustomPrototypeClass()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototypeSpec Id=\"Test\">\n"+
                         "		<someRate>2.5</someRate>\n"+
                         "		<someInt>5</someInt>\n"+
                         "		<testField>500</testField>\n"+
                         "	</TestPrototypeSpec>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual(2.5f, (prototypes[0] as TestPrototype).someRate);
            Assert.AreEqual(5f, (prototypes[0] as TestPrototype).someInt);
            Assert.AreEqual(500, (prototypes[0] as TestPrototypeSpec).testField);
        }
Esempio n. 13
0
        protected override List <IManagedAsset> LoadAssets()
        {
            var parser = new PrototypeParser();

            foreach (var p in this.paths)
            {
                string path = p.Replace(StreamingAssetsToken, Application.streamingAssetsPath);

                // Load data
                var      files    = System.IO.Directory.GetFiles(path, "*.xml", System.IO.SearchOption.AllDirectories);
                string[] contents = files.Select((f) => System.IO.File.ReadAllText(f)).ToArray();
                parser.Parse(contents, files, new PrototypeParseParameters()
                {
                    standardNamespace = this.standardNamespace
                });
            }

            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                error.DoUnityDebugLog();
            }

            return(prototypes.Where((p) => p is IManagedPrototype).Cast <IManagedAsset>().ToList());
        }
Esempio n. 14
0
        public void TestInheritance()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\">\n"+
                         "		<someRate>2.5</someRate>\n"+
                         "		<testBase Type=\"SpecializedClass\">\n"+
                         "			<baseStr>teststr</baseStr>\n"+
                         "			<lul>10</lul>\n"+
                         "		</testBase>\n"+
                         "		<_struct>\n"+
                         "			<test>1337</test>\n"+
                         "		</_struct>\n"+
                         "		<array>\n"+
                         "			<li>\n"+
                         "				<baseStr>teststr1</baseStr>\n"+
                         "			</li>\n"+
                         "			<li Type=\"SpecializedClass\">\n"+
                         "				<baseStr>teststr2</baseStr>\n"+
                         "				<lul>10</lul>\n"+
                         "			</li>\n"+
                         "		</array>\n"+
                         "	</TestPrototype>\n"+
                         "	<TestPrototype Id=\"Test2\" Inherits=\"Test\">\n"+
                         "		<someOtherPrototype>Test</someOtherPrototype>\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(2, prototypes.Count);

            Assert.AreEqual(2.5f, (prototypes[0] as TestPrototype).someRate);
            var collection = (prototypes[0] as TestPrototype).array;

            Assert.AreEqual(2, collection.Length);
            Assert.AreEqual("teststr1", collection[0].baseStr);
            Assert.AreEqual("teststr2", collection[1].baseStr);
            Assert.AreEqual(10, (collection[1] as TestPrototype.SpecializedClass).lul);
            Assert.AreEqual("teststr", (prototypes[0] as TestPrototype).testBase.baseStr);
            Assert.AreEqual(1337, (prototypes[0] as TestPrototype)._struct.test);

            Assert.AreEqual(2.5f, (prototypes[1] as TestPrototype).someRate);
            collection = (prototypes[1] as TestPrototype).array;
            Assert.AreEqual(2, collection.Length);
            Assert.AreEqual("teststr1", collection[0].baseStr);
            Assert.AreEqual("teststr2", collection[1].baseStr);
            Assert.AreEqual(10, (collection[1] as TestPrototype.SpecializedClass).lul);
            Assert.AreEqual("teststr", (prototypes[1] as TestPrototype).testBase.baseStr);
            Assert.AreEqual(1337, (prototypes[1] as TestPrototype)._struct.test);
            Assert.AreSame((prototypes[0] as TestPrototype), (prototypes[1] as TestPrototype).someOtherPrototype);
        }
Esempio n. 15
0
        public void ParserTestOverrideCombineCollectionsList()
        {
            string xml = "<PrototypeContainer Type=\"TestPrototype\">\n" +
                         "	<Prototype Id=\"Test\">\n"+
                         "		<list>\n"+
                         "			<li>\n"+
                         "				<baseStr>teststr1</baseStr>\n"+
                         "			</li>\n"+
                         "			<li Type=\"SpecializedClass\">\n"+
                         "				<baseStr>teststr2</baseStr>\n"+
                         "				<lul>10</lul>\n"+
                         "			</li>\n"+
                         "		</list>\n"+
                         "	</Prototype>\n"+
                         "	<Prototype Id=\"Test2\" Inherits=\"Test\">\n"+
                         "		<list CollectionOverrideAction=\"Combine\">\n"+
                         "			<li>\n"+
                         "				<baseStr>teststr3</baseStr>\n"+
                         "			</li>\n"+
                         "			<li Type=\"SpecializedClass\">\n"+
                         "				<baseStr>teststr4</baseStr>\n"+
                         "				<lul>11</lul>\n"+
                         "			</li>\n"+
                         "		</list>\n"+
                         "	</Prototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser();

            parser.Parse(xml, "DIRECT PARSE", new PrototypeParseParameters()
            {
                standardNamespace = "UnityTK.Test.Prototypes"
            });
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(2, prototypes.Count);

            var collection = (prototypes[0] as TestPrototype).list;

            Assert.AreEqual(2, collection.Count);
            Assert.AreEqual("teststr1", collection[0].baseStr);
            Assert.AreEqual("teststr2", collection[1].baseStr);
            Assert.AreEqual(10, (collection[1] as TestPrototype.SpecializedClass).lul);

            collection = (prototypes[1] as TestPrototype).list;
            Assert.AreEqual(4, collection.Count);
            Assert.AreEqual("teststr1", collection[0].baseStr);
            Assert.AreEqual("teststr2", collection[1].baseStr);
            Assert.AreEqual("teststr3", collection[2].baseStr);
            Assert.AreEqual("teststr4", collection[3].baseStr);
            Assert.AreEqual(10, (collection[1] as TestPrototype.SpecializedClass).lul);
            Assert.AreEqual(11, (collection[3] as TestPrototype.SpecializedClass).lul);
        }
Esempio n. 16
0
        public void TestOverrideCombineCollectionsArray()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\">\n"+
                         "		<array>\n"+
                         "			<li>\n"+
                         "				<baseStr>teststr1</baseStr>\n"+
                         "			</li>\n"+
                         "			<li Type=\"SpecializedClass\">\n"+
                         "				<baseStr>teststr2</baseStr>\n"+
                         "				<lul>10</lul>\n"+
                         "			</li>\n"+
                         "		</array>\n"+
                         "	</TestPrototype>\n"+
                         "	<TestPrototype Id=\"Test2\" Inherits=\"Test\">\n"+
                         "		<array CollectionOverrideAction=\"Combine\">\n"+
                         "			<li>\n"+
                         "				<baseStr>teststr3</baseStr>\n"+
                         "			</li>\n"+
                         "			<li Type=\"SpecializedClass\">\n"+
                         "				<baseStr>teststr4</baseStr>\n"+
                         "				<lul>11</lul>\n"+
                         "			</li>\n"+
                         "		</array>\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(2, prototypes.Count);

            var collection = (prototypes[0] as TestPrototype).array;

            Assert.AreEqual(2, collection.Length);
            Assert.AreEqual("teststr1", collection[0].baseStr);
            Assert.AreEqual("teststr2", collection[1].baseStr);
            Assert.AreEqual(10, (collection[1] as TestPrototype.SpecializedClass).lul);

            collection = (prototypes[1] as TestPrototype).array;
            Assert.AreEqual(4, collection.Length);
            Assert.AreEqual("teststr1", collection[0].baseStr);
            Assert.AreEqual("teststr2", collection[1].baseStr);
            Assert.AreEqual("teststr3", collection[2].baseStr);
            Assert.AreEqual("teststr4", collection[3].baseStr);
            Assert.AreEqual(10, (collection[1] as TestPrototype.SpecializedClass).lul);
            Assert.AreEqual(11, (collection[3] as TestPrototype.SpecializedClass).lul);
        }
Esempio n. 17
0
        public void ParserTestCollectionsArray()
        {
            string xml = "<PrototypeContainer Type=\"TestPrototype\">\n" +
                         "	<Prototype Id=\"Test\">\n"+
                         "		<array>\n"+
                         "			<li>\n"+
                         "				<baseStr>teststr1</baseStr>\n"+
                         "			</li>\n"+
                         "			<li Type=\"SpecializedClass\">\n"+
                         "				<baseStr>teststr2</baseStr>\n"+
                         "				<lul>10</lul>\n"+
                         "			</li>\n"+
                         "		</array>\n"+
                         "	</Prototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser();

            parser.Parse(xml, "DIRECT PARSE", new PrototypeParseParameters()
            {
                standardNamespace = "UnityTK.Test.Prototypes"
            });
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            var collection = (prototypes[0] as TestPrototype).array;

            Assert.AreEqual(2, collection.Length);
            Assert.AreEqual("teststr1", collection[0].baseStr);
            Assert.AreEqual("teststr2", collection[1].baseStr);
            Assert.AreEqual(10, (collection[1] as TestPrototype.SpecializedClass).lul);
        }
Esempio n. 18
0
        protected override void Prepare()
        {
            this.parser = new PrototypeParser(PrototypeParser.CreateXMLSerializer("UnityTK.Editor.Benchmarking"));

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("<PrototypeContainer>");
            sb.AppendLine("	<SimplePrototype Id=\"Base\">\n" +
                          "		<someInt>32</someInt>\n"+
                          "	</SimplePrototype>");

            for (int i = 0; i < 10000; i++)
            {
                sb.Append("	<SimplePrototype Id=\"Test");
                sb.Append(i.ToString());
                sb.AppendLine("\" Inherits=\"Base\">");
                sb.AppendLine("		<someInt>123</someInt>");
                sb.AppendLine("	</SimplePrototype>");
            }

            sb.AppendLine("</PrototypeContainer>");
            this.xml = sb.ToString();
        }
Esempio n. 19
0
        protected override void Prepare()
        {
            this.parser = new PrototypeParser();

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("<PrototypeContainer Type=\"SimplePrototype\">");
            sb.AppendLine("	<Prototype Id=\"Base\">\n" +
                          "		<someInt>32</someInt>\n"+
                          "	</Prototype>");

            for (int i = 0; i < 10000; i++)
            {
                sb.Append("	<Prototype Id=\"Test");
                sb.Append(i.ToString());
                sb.AppendLine("\" Inherits=\"Base\">");
                sb.AppendLine("		<someInt>123</someInt>");
                sb.AppendLine("	</Prototype>");
            }

            sb.AppendLine("</PrototypeContainer>");
            this.xml = sb.ToString();
        }
Esempio n. 20
0
        public void TestAbstractPrototypes()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\" Abstract=\"True\">\n"+
                         "		<someRate>2.5</someRate>\n"+
                         "	</TestPrototype>\n"+
                         "	<TestPrototype Id=\"Test2\" Inherits=\"Test\">\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual(2.5f, (prototypes[0] as TestPrototype).someRate);
        }
Esempio n. 21
0
        public void TestSubData()
        {
            string xml = "<PrototypeContainer>\n" +
                         "	<TestPrototype Id=\"Test\">\n"+
                         "		<testBase>\n"+
                         "			<baseStr>teststr</baseStr>\n"+
                         "		</testBase>\n"+
                         "	</TestPrototype>\n"+
                         "</PrototypeContainer>";

            var parser = new PrototypeParser(CreateSerializer());

            parser.Parse(xml, "DIRECT PARSE");
            var prototypes = parser.GetPrototypes();
            var errors     = parser.GetParsingErrors();

            foreach (var error in errors)
            {
                throw new Exception(error.GetFullMessage());
            }
            Assert.AreEqual(1, prototypes.Count);

            Assert.AreEqual("teststr", (prototypes[0] as TestPrototype).testBase.baseStr);
        }
Esempio n. 22
0
 protected virtual ISerializer CreateSerializer()
 {
     return(PrototypeParser.CreateXMLSerializer("UnityTK.Test.Serialization"));
 }