public void OverridesAreWellFormed() { List <string> files = CodeGen.Program.GetInputFileList(); string inputDir = "codegen/in"; Overrides.XmlBindings.Settings overridesXmlData = XmlBindings.Utilities.LoadXmlData <Overrides.XmlBindings.Settings>(inputDir, "Settings.xml"); Formatter.Prefix = overridesXmlData.Prefix.Value; Formatter.Subnamespace = overridesXmlData.Subnamespace.Value; List <D2DTypes> typeDocuments = new List <D2DTypes>(); Dictionary <string, QualifiableType> typeDictionary = new Dictionary <string, QualifiableType>(); OutputDataTypes outputDataTypes = new OutputDataTypes(); foreach (string fileName in files) { XmlBindings.D2DTypes xmlDocument = XmlBindings.Utilities.LoadXmlData <XmlBindings.D2DTypes>(inputDir, fileName); typeDocuments.Add(new D2DTypes(xmlDocument, overridesXmlData, typeDictionary, outputDataTypes)); } foreach (Overrides.XmlBindings.Primitive overridePrimitive in overridesXmlData.Primitives) { Assert.IsTrue(typeDictionary.ContainsKey(overridePrimitive.Name), "Unexpected override primitive: " + overridePrimitive.Name); } foreach (Overrides.XmlBindings.Namespace overrideNamespace in overridesXmlData.Namespaces) { // Skip Effects namespace because it have different logic if (overrideNamespace.Name == "Effects") { continue; } Assert.IsTrue(overrideNamespace.Name == "D2D" || overrideNamespace.Name == "D2D1", "Unexpected override namespace: " + overrideNamespace.Name); foreach (Overrides.XmlBindings.Struct overrideStruct in overrideNamespace.Structs) { string nameKey = overrideNamespace.Name + "::" + overrideStruct.Name; Assert.IsTrue(typeDictionary.ContainsKey(nameKey), "Unexpected override struct: " + overrideStruct.Name); } foreach (Overrides.XmlBindings.Enum overrideEnum in overrideNamespace.Enums) { string nameKey = overrideNamespace.Name + "::" + overrideEnum.Name; Assert.IsTrue(typeDictionary.ContainsKey(nameKey), "Unexpected override enum: " + overrideEnum.Name); CodeGen.Enum e = (CodeGen.Enum)(typeDictionary[nameKey]); foreach (Overrides.XmlBindings.EnumValue overrideEnumValue in overrideEnum.Values) { CodeGen.EnumValue match = e.Values.Find(x => x.RawNameComponent == overrideEnumValue.Name); Assert.IsNotNull(match, "Unexpected override enum value: " + overrideEnum + "::" + overrideEnumValue.Name); } } } }
public void OverridesAreWellFormed() { List<string> files = CodeGen.Program.GetInputFileList(); string inputDir = "codegen/in"; Overrides.XmlBindings.Settings overridesXmlData = XmlBindings.Utilities.LoadXmlData<Overrides.XmlBindings.Settings>(inputDir, "Settings.xml"); Formatter.Prefix = overridesXmlData.Prefix.Value; List<D2DTypes> typeDocuments = new List<D2DTypes>(); Dictionary<string, QualifiableType> typeDictionary = new Dictionary<string, QualifiableType>(); OutputDataTypes outputDataTypes = new OutputDataTypes(); foreach (string fileName in files) { XmlBindings.D2DTypes xmlDocument = XmlBindings.Utilities.LoadXmlData<XmlBindings.D2DTypes>(inputDir, fileName); typeDocuments.Add(new D2DTypes(xmlDocument, overridesXmlData, typeDictionary, outputDataTypes)); } foreach (Overrides.XmlBindings.Primitive overridePrimitive in overridesXmlData.Primitives) { Assert.IsTrue(typeDictionary.ContainsKey(overridePrimitive.Name), "Unexpected override primitive: " + overridePrimitive.Name); } foreach (Overrides.XmlBindings.Namespace overrideNamespace in overridesXmlData.Namespaces) { // Skip Effects namespace because it have different logic if (overrideNamespace.Name == "Effects") continue; Assert.IsTrue(overrideNamespace.Name == "D2D" || overrideNamespace.Name == "D2D1", "Unexpected override namespace: " + overrideNamespace.Name); foreach (Overrides.XmlBindings.Struct overrideStruct in overrideNamespace.Structs) { string nameKey = overrideNamespace.Name + "::" + overrideStruct.Name; Assert.IsTrue(typeDictionary.ContainsKey(nameKey), "Unexpected override struct: " + overrideStruct.Name); } foreach (Overrides.XmlBindings.Enum overrideEnum in overrideNamespace.Enums) { string nameKey = overrideNamespace.Name + "::" + overrideEnum.Name; Assert.IsTrue(typeDictionary.ContainsKey(nameKey), "Unexpected override enum: " + overrideEnum.Name); CodeGen.Enum e = (CodeGen.Enum)(typeDictionary[nameKey]); foreach (Overrides.XmlBindings.EnumValue overrideEnumValue in overrideEnum.Values) { CodeGen.EnumValue match = e.Values.Find(x => x.RawNameComponent == overrideEnumValue.Name); Assert.IsNotNull(match, "Unexpected override enum value: " + overrideEnum + "::" + overrideEnumValue.Name); } } } }