public void APSIMFileReader_EnsureReadingStandardToolboxWorks() { string toolboxFileName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..", "..", "..", "..", "ApsimNG", "Resources", "Toolboxes", "StandardToolbox.apsimx"); XmlDocument toolboxdoc = new XmlDocument(); toolboxdoc.Load(toolboxFileName); // Create instance of reader. XmlReader reader1 = new APSIMFileReader(toolboxdoc.DocumentElement); reader1.Read(); Assembly modelsAssembly = null; foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies()) { if (!a.IsDynamic && Path.GetFileName(a.Location) == "Models.exe") { modelsAssembly = a; } } ModelWrapper wrapper = XmlUtilities.Deserialise(reader1, modelsAssembly) as ModelWrapper; Assert.AreEqual(wrapper.Children.Count, 8); }
public void APSIMFileReader_EnsureReadWorks() { // Get our test file. Stream s1 = Assembly.GetExecutingAssembly().GetManifestResourceStream ("UnitTests.Resources.APSIMFileReaderTests1.xml"); // Create instance of reader. XmlReader reader = new APSIMFileReader(s1); reader.Read(); // Get new XML from our reader StringWriter writer = new StringWriter(); XmlDocument doc = new XmlDocument(); doc.Load(reader); doc.Save(writer); string xml = writer.ToString().Replace("utf-16", "utf-8"); // TODO: Need to work out a better way of getting utf-8 // Get the accepted XML Stream s2 = Assembly.GetExecutingAssembly().GetManifestResourceStream ("UnitTests.Resources.APSIMFileReaderTests2.xml"); StreamReader s2Reader = new StreamReader(s2); string acceptedXML = s2Reader.ReadToEnd(); // Compare to what it should be. Assert.AreEqual(xml, acceptedXML); }
public void APSIMFileReader_EnsureSameAsXmlNodeReader() { string toolboxFileName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..", "..", "..", "..", "ApsimNG", "Resources", "Toolboxes", "StandardToolbox.apsimx"); XmlDocument toolboxdoc = new XmlDocument(); toolboxdoc.Load(toolboxFileName); // Create 1st instance of reader which is an APSIMFileReader XmlReader reader1 = new APSIMFileReader(toolboxdoc.DocumentElement); // Create 2nd instance of reader based on XmlNodeReader where an XmlDocument // has already done a complete read from APSIMFileReader. XmlDocument doc = new XmlDocument(); XmlReader tempReader = new APSIMFileReader(toolboxdoc.DocumentElement); tempReader.Read(); doc.Load(tempReader); XmlReader reader2 = new XmlNodeReader(doc.DocumentElement); // The two readers should be the same. CompareReaders(reader1, reader2); while (reader1.Read() && reader2.Read()) { CompareReaders(reader1, reader2); } bool ok = reader2.Read(); Assert.IsFalse(reader2.Read()); }