예제 #1
0
        public static IEnumerable <MappedClassInfo> LoadFile(string nhibernateFilePath)
        {
            MappingDocumentParser parser = new MappingDocumentParser();
            HbmMapping            mapping;

            try
            {
                using (FileStream stream = File.OpenRead(nhibernateFilePath))
                {
                    mapping = parser.Parse(stream);
                }
            }
            catch (Exception)
            {
                Console.WriteLine(nhibernateFilePath);
                throw;
            }

            if (mapping.Items.Length == 0)
            {
                throw new ParserException("NHibernate file has NO data: " + nhibernateFilePath);
            }

            return(mapping.Items
                   .Cast <HbmClass>()
                   .Select(item => new MappedClassInfo(item, nhibernateFilePath)));
        }
예제 #2
0
        public void MappingDocumentParserTest()
        {
            // here we test only the exception since the other tests are included in MappingLoader
            MappingDocumentParser mdp = new MappingDocumentParser();

            ActionAssert.Throws <ArgumentNullException>(() => mdp.Parse(null));
        }
예제 #3
0
        public void XmlSerialization()
        {
            // NH-1865 (have a look to comments in JIRA)
            var mdp = new MappingDocumentParser();

            using (Stream stream = GetType().Assembly.GetManifestResourceStream("NHibernate.Test.MappingTest.Wicked.hbm.xml"))
            {
                HbmMapping mapping = mdp.Parse(stream);
                Assert.That(mapping, Is.XmlSerializable);
            }
        }
        public void AddXmlReader(XmlTextReader reader, string fileName)
        {
            IMappingDocumentParser parser = new MappingDocumentParser();

            try
            {
                AddMapping(parser.Parse(reader));
            }
            catch (Exception e)
            {
                throw new ValidatorConfigurationException("Could not load file " + fileName, e);
            }
        }
예제 #5
0
        public static MappedClassInfo LoadFromString(string hbmData)
        {
            MappingDocumentParser parser  = new MappingDocumentParser();
            MemoryStream          stream  = new MemoryStream(Encoding.ASCII.GetBytes(hbmData));
            HbmMapping            mapping = parser.Parse(stream);

            if (mapping.Items.Length != 1)
            {
                throw new ParserException("NO data in: " + hbmData);
            }

            MappedClassInfo classInfo = new MappedClassInfo((HbmClass)mapping.Items[0], "from text");

            return(classInfo);
        }
예제 #6
0
        public void CanParseValidator()
        {
            StringBuilder validatorString = new StringBuilder();

            validatorString.AppendLine("<nhv-mapping xmlns=\"urn:nhibernate-validator-1.0\">");
            validatorString.AppendLine("<class name=\"Validator.Test.TvOwner, Validator.Test\">");
            validatorString.AppendLine("<property name=\"tv\">");
            validatorString.AppendLine("<not-null />");
            validatorString.AppendLine("</property>");
            validatorString.AppendLine("</class>");
            validatorString.AppendLine("</nhv-mapping>");
            XmlTextReader          xml       = new XmlTextReader(validatorString.ToString(), XmlNodeType.Document, null);
            IMappingDocumentParser parser    = new MappingDocumentParser();
            NhvMapping             validator = parser.Parse(xml);

            Assert.IsNotNull(validator);
        }
        public void CanDeserializeHBM()
        {
            string[] someEmbeddedResources =
            {
                "NHibernate.DomainModel.ABC.hbm.xml",
                "NHibernate.DomainModel.ABCProxy.hbm.xml",
            };

            Assembly domainModelAssembly = typeof(DomainModel.A).Assembly;
            MappingDocumentParser parser = new MappingDocumentParser();

            foreach (string embeddedResource in someEmbeddedResources)
            {
                using (Stream stream = domainModelAssembly.GetManifestResourceStream(embeddedResource))
                {
                    HbmMapping mapping = parser.Parse(stream);
                    Assert.IsNotNull(mapping, "Mapping: " + embeddedResource);
                }
            }
        }