Beispiel #1
0
 public void _02_InsertDocumentWithSameIdTest()
 {
     try
     {
         Print.Started("_02_InsertDocumentWithSameIdTest");
         string rootNameA     = "TestA";
         string rootNameB     = "TestB";
         string rootNamespace = "http://oio.dk/test";
         XPathDiscriminatorConfig           identifierDiscriminatorA = new XPathDiscriminatorConfig("//Test/Key", "A");
         XPathDiscriminatorConfig           identifierDiscriminatorB = new XPathDiscriminatorConfig("//Test/Key", "B");
         XpathDiscriminatorConfigCollection identifierDiscriminators = new XpathDiscriminatorConfigCollection();
         identifierDiscriminators.Add(identifierDiscriminatorA);
         identifierDiscriminators.Add(identifierDiscriminatorB);
         DocumentTypeConfig           documentTypeA          = new DocumentTypeConfig(rootNameA, rootNamespace, identifierDiscriminators);
         DocumentTypeConfig           documentTypeB          = new DocumentTypeConfig(rootNameB, rootNamespace, identifierDiscriminators);
         DocumentTypeCollectionConfig documentTypeCollection = new DocumentTypeCollectionConfig();
         documentTypeCollection.AddDocumentType(documentTypeA);
         documentTypeB.Id = documentTypeA.Id;
         Assert.Throws <DocumentAllreadyAddedException>(() => documentTypeCollection.AddDocumentType(documentTypeB));
     }
     finally
     {
         Print.Completed("_02_InsertDocumentWithSameIdTest");
     }
 }
Beispiel #2
0
 public void _04_GetNonExistingDocumentTypeFromIdTest()
 {
     try
     {
         Print.Started("_04_GetNonExistingDocumentTypeFromIdTest");
         string rootName      = "Test";
         string rootNamespace = "http://oio.dk/test";
         XPathDiscriminatorConfig           identifierDiscriminatorA = new XPathDiscriminatorConfig("//Test/Key", "A");
         XPathDiscriminatorConfig           identifierDiscriminatorB = new XPathDiscriminatorConfig("//Test/Key", "B");
         XpathDiscriminatorConfigCollection identifierDiscriminators = new XpathDiscriminatorConfigCollection();
         identifierDiscriminators.Add(identifierDiscriminatorA);
         identifierDiscriminators.Add(identifierDiscriminatorB);
         DocumentTypeConfig           documentType           = new DocumentTypeConfig(rootName, rootNamespace, identifierDiscriminators);
         DocumentTypeCollectionConfig documentTypeCollection = new DocumentTypeCollectionConfig();
         documentTypeCollection.AddDocumentType(documentType);
         DocumentTypeConfig documentTypeFromCollection = null;
         bool any = documentTypeCollection.TryGetDocumentType(Guid.NewGuid(), out documentTypeFromCollection);
         Assert.IsFalse(any);
         Assert.IsNull(documentTypeFromCollection);
     }
     finally
     {
         Print.Completed("_04_GetNonExistingDocumentTypeFromIdTest");
     }
 }
Beispiel #3
0
 public void _01_AddRemoveDocumentTypeTest()
 {
     try
     {
         Print.Started("_01_AddRemoveDocumentTypeTest");
         string rootName      = "Test";
         string rootNamespace = "http://oio.dk/test";
         XPathDiscriminatorConfig           identifierDiscriminatorA = new XPathDiscriminatorConfig("//Test/Key", "A");
         XPathDiscriminatorConfig           identifierDiscriminatorB = new XPathDiscriminatorConfig("//Test/Key", "B");
         XpathDiscriminatorConfigCollection identifierDiscriminators = new XpathDiscriminatorConfigCollection();
         identifierDiscriminators.Add(identifierDiscriminatorA);
         identifierDiscriminators.Add(identifierDiscriminatorB);
         DocumentTypeConfig           documentType           = new DocumentTypeConfig(rootName, rootNamespace, identifierDiscriminators);
         DocumentTypeCollectionConfig documentTypeCollection = new DocumentTypeCollectionConfig();
         documentTypeCollection.AddDocumentType(documentType);
         DocumentTypeConfig documentTypeFromCollection = documentTypeCollection.GetDocumentType(rootName, rootNamespace, identifierDiscriminators);
         Assert.IsTrue(documentTypeFromCollection.Equals(documentType));
         documentTypeCollection.RemoveDocumentType(documentTypeFromCollection);
         documentTypeFromCollection = null;
         bool anyDocument = documentTypeCollection.TryGetDocumentType(rootName, rootNamespace, identifierDiscriminators, out documentTypeFromCollection);
         Assert.IsFalse(anyDocument);
     }
     catch (Exception)
     {
         // easy debug
     }
     finally
     {
         Print.Completed("_01_AddRemoveDocumentTypeTest");
     }
 }
Beispiel #4
0
        /*
         * public DocumentTypeConfig(
         *  Guid id,
         *  string friendlyName,
         *  string rootName,
         *  string rootNamespace,
         *  string schemaPath,
         *  string stylesheetPath,
         *  string serviceContractTModel,
         *  string xsltTransformStylesheetPath,
         *  DocumentEndpointInformation endpointType,
         *  XpathDiscriminatorConfigCollection identifierDiscriminators,
         *  SchematronValidationConfig schematronValidationConfig,
         *  ProfileIdXPath profileIdXPath,
         *  DocumentIdXPath documentIdXPath
         *  )
         *  : this(id, rootName, rootNamespace, identifierDiscriminators)
         * {
         *  if (friendlyName == null) throw new NullArgumentException("friendlyName");
         *  if (schemaPath == null) throw new NullArgumentException("schemaPath");
         *  if (stylesheetPath == null) throw new NullArgumentException("stylesheetPath");
         *  if (serviceContractTModel == null) throw new NullArgumentException("serviceContractTModel");
         *  if (xsltTransformStylesheetPath == null) throw new NullArgumentException("xsltTransformStylesheetPath");
         *  if (endpointType == null) throw new NullArgumentException("endpointType");
         *  if (schematronValidationConfig == null) throw new NullArgumentException("schematronValidationConfig");
         *
         *  _friendlyName = friendlyName;
         *  _schemaPath = schemaPath;
         *  _stylesheetPath = stylesheetPath;
         *  _serviceContractTModel = serviceContractTModel;
         *  _xsltTransformStylesheetPath = xsltTransformStylesheetPath;
         *  _endpointType = endpointType;
         *  _schematronValidationConfig = schematronValidationConfig;
         *  _profileIdXPath = profileIdXPath;
         *  _documentIdXPath = documentIdXPath;
         * }
         */

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="friendlyName">
        /// Friendly name of the document type e.g. for use in the UI
        /// </param>
        /// <param name="rootName">The name of the document root element</param>
        /// <param name="rootNamespace">The namespace of the document root element</param>
        /// <param name="schemaPath">Path to the schema used for validating this document type</param>
        /// <param name="stylesheetPath">
        /// Path to the stylesheet used for displaying documents of this type
        /// </param>
        /// <param name="serviceContractTModel">The Service contract TModel, used for UDDI lookups</param>
        /// <param name="xsltTransformStylesheetPath">Pthe to the xslt stylesheet</param>
        /// <param name="namespaces">Namespaces used by the document.</param>
        /// <param name="endpointType">Definition of a RASP endpoint type</param>
        /// <param name="identifierDiscriminators">
        /// XPath discriminators used for aditionel identification of document type
        /// </param>
        /// <param name="schematronValidationConfigCollection">Settings to the schematron validation</param>
        /// <param name="profileIdXPath">Xpath expression</param>
        public DocumentTypeConfig(
            Guid id,
            string friendlyName,
            string rootName,
            string rootNamespace,
            string schemaPath,
            string stylesheetPath,
            string serviceContractTModel,
            string xsltTransformStylesheetPath,
            List <PrefixedNamespace> namespaces,
            DocumentEndpointInformation endpointType,
            XpathDiscriminatorConfigCollection identifierDiscriminators,
            List <SchematronValidationConfig> schematronValidationConfigCollection,
            ProfileIdXPath profileIdXPath,
            DocumentIdXPath documentIdXPath
            )
            : this(id, friendlyName, rootName, rootNamespace, schemaPath,
                   stylesheetPath, serviceContractTModel, xsltTransformStylesheetPath,
                   endpointType, identifierDiscriminators, schematronValidationConfigCollection, profileIdXPath, documentIdXPath)
        {
            if (namespaces == null)
            {
                throw new NullArgumentException("namespaces");
            }
            _namespaces = namespaces;
        }
Beispiel #5
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="id">The id</param>
        /// <param name="friendlyName">Friendly name of the document</param>
        /// <param name="rootName">The document element name</param>
        /// <param name="rootNamespace">The document element namespace</param>
        /// <param name="schemaPath">Path to the schema</param>
        /// <param name="stylesheetPath">Path to the presentation stylesheet</param>
        /// <param name="serviceContractTModel">The tModel ID of the service contract</param>
        /// <param name="xsltTransformStylesheetPath">The path to the transformation stylesheet</param>
        /// <param name="endpointType">The endpoint type</param>
        /// <param name="identifierDiscriminators">Identifier discriminators</param>
        /// <param name="schematronValidationConfigCollection">Settings to the schematron validation</param>
        /// <param name="profileIdXPath">XPath expression</param>
        public DocumentTypeConfig(
            Guid id,
            string friendlyName,
            string rootName,
            string rootNamespace,

            string schemaPath,
            string stylesheetPath,
            string serviceContractTModel,
            string xsltTransformStylesheetPath,
            DocumentEndpointInformation endpointType,
            XpathDiscriminatorConfigCollection identifierDiscriminators,
            List <SchematronValidationConfig> schematronValidationConfigCollection,
            ProfileIdXPath profileIdXPath,
            DocumentIdXPath documentIdXPath
            )
            : this(id, rootName, rootNamespace, identifierDiscriminators)
        {
            if (friendlyName == null)
            {
                throw new NullArgumentException("friendlyName");
            }
            if (schemaPath == null)
            {
                throw new NullArgumentException("schemaPath");
            }
            if (stylesheetPath == null)
            {
                throw new NullArgumentException("stylesheetPath");
            }
            if (serviceContractTModel == null)
            {
                throw new NullArgumentException("serviceContractTModel");
            }
            if (xsltTransformStylesheetPath == null)
            {
                throw new NullArgumentException("xsltTransformStylesheetPath");
            }
            if (endpointType == null)
            {
                throw new NullArgumentException("endpointType");
            }
            if (schematronValidationConfigCollection == null)
            {
                throw new NullArgumentException("schematronValidationConfigs");
            }

            _friendlyName                = friendlyName;
            _schemaPath                  = schemaPath;
            _stylesheetPath              = stylesheetPath;
            _serviceContractTModel       = serviceContractTModel;
            _xsltTransformStylesheetPath = xsltTransformStylesheetPath;
            _endpointType                = endpointType;
            this._schematronValidationConfigCollection = schematronValidationConfigCollection;
            _profileIdXPath  = profileIdXPath;
            _documentIdXPath = documentIdXPath;
        }
Beispiel #6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="friendlyName">Friendly name of the document</param>
 /// <param name="rootName">The document element name</param>
 /// <param name="rootNamespace">The document element namespace</param>
 /// <param name="schemaPath">Path to the schema</param>
 /// <param name="stylesheetPath">Path to the presentation stylesheet</param>
 /// <param name="serviceContractTModel">The tModel ID of the service contract</param>
 /// <param name="xsltTransformStylesheetPath">The path to the transformation stylesheet</param>
 /// <param name="endpointType">The endpoint type</param>
 /// <param name="identifierDiscriminators">Identifier discriminators</param>
 /// <param name="schematronValidationConfig">Settings to the schematron validation</param>
 public RaspDocumentTypeConfig(
     string friendlyName,
     string rootName,
     string rootNamespace,
     string schemaPath,
     string stylesheetPath,
     string serviceContractTModel,
     string xsltTransformStylesheetPath,
     DocumentEndpointInformation endpointType,
     XpathDiscriminatorConfigCollection identifierDiscriminators,
     SchematronValidationConfig schematronValidationConfig
     ) : this(rootName, rootNamespace, identifierDiscriminators)
 {
     if (friendlyName == null)
     {
         throw new NullArgumentException("friendlyName");
     }
     if (schemaPath == null)
     {
         throw new NullArgumentException("schemaPath");
     }
     if (stylesheetPath == null)
     {
         throw new NullArgumentException("stylesheetPath");
     }
     if (serviceContractTModel == null)
     {
         throw new NullArgumentException("serviceContractTModel");
     }
     if (xsltTransformStylesheetPath == null)
     {
         throw new NullArgumentException("xsltTransformStylesheetPath");
     }
     if (endpointType == null)
     {
         throw new NullArgumentException("endpointType");
     }
     if (schematronValidationConfig == null)
     {
         throw new NullArgumentException("schematronValidationConfig");
     }
     _friendlyName                = friendlyName;
     _schemaPath                  = schemaPath;
     _stylesheetPath              = stylesheetPath;
     _serviceContractTModel       = serviceContractTModel;
     _xsltTransformStylesheetPath = xsltTransformStylesheetPath;
     _endpointType                = endpointType;
     _schematronValidationConfig  = schematronValidationConfig;
 }
Beispiel #7
0
        public void _03_DocumentTypeEqualsOnParameters()
        {
            Print.Started("_03_SimpleDocumentTypeEqualsOnParameters");
            string rootName      = "Test";
            string rootNamespace = "http://oio.dk/test";
            XPathDiscriminatorConfig           identifierDiscriminatorA = new XPathDiscriminatorConfig("//Test/Key", "A");
            XPathDiscriminatorConfig           identifierDiscriminatorB = new XPathDiscriminatorConfig("//Test/Key", "B");
            XpathDiscriminatorConfigCollection identifierDiscriminators = new XpathDiscriminatorConfigCollection();

            identifierDiscriminators.Add(identifierDiscriminatorA);
            identifierDiscriminators.Add(identifierDiscriminatorB);
            DocumentTypeConfig a = new DocumentTypeConfig(rootName, rootNamespace, identifierDiscriminators);
            DocumentTypeConfig b = new DocumentTypeConfig(rootName, rootNamespace, identifierDiscriminators);

            Assert.IsTrue(a.Equals(b));
            Print.Completed("_03_SimpleDocumentTypeEqualsOnParameters");
        }
Beispiel #8
0
        public void _06_DocumentTypeNotEqualRootNamespaceAndId()
        {
            Print.Started("_06_DocumentTypeNotEqualRootNamespaceAndId");
            string rootName       = "Test";
            string rootNamespaceA = "http://oio.dk/testA";
            string rootNamespaceB = "http://oio.dk/testB";
            XPathDiscriminatorConfig           identifierDiscriminatorA = new XPathDiscriminatorConfig("//Test/Key", "A");
            XPathDiscriminatorConfig           identifierDiscriminatorB = new XPathDiscriminatorConfig("//Test/Key", "B");
            XpathDiscriminatorConfigCollection identifierDiscriminators = new XpathDiscriminatorConfigCollection();

            identifierDiscriminators.Add(identifierDiscriminatorA);
            identifierDiscriminators.Add(identifierDiscriminatorB);
            DocumentTypeConfig a = new DocumentTypeConfig(rootName, rootNamespaceA, identifierDiscriminators);
            DocumentTypeConfig b = new DocumentTypeConfig(rootName, rootNamespaceB, identifierDiscriminators);

            Assert.IsFalse(a.Equals(b));
            Print.Completed("_06_DocumentTypeNotEqualRootNamespaceAndId");
        }
Beispiel #9
0
        /// <summary>
        /// Try to get the document type from a root name, root namespace and a collection of
        /// identifier expressions.
        /// </summary>
        /// <param name="rootName"></param>
        /// <param name="rootNamespace"></param>
        /// <param name="identifierDiscriminators"></param>
        /// <param name="documentType"></param>
        /// <returns></returns>
        public bool TryGetDocumentType(string rootName, string rootNamespace, XpathDiscriminatorConfigCollection identifierDiscriminators, out DocumentTypeConfig documentType)
        {
            if (rootName == null)
            {
                throw new ArgumentNullException("rootName");
            }
            if (rootNamespace == null)
            {
                throw new ArgumentNullException("rootNamespace");
            }
            if (identifierDiscriminators == null)
            {
                throw new ArgumentNullException("identifierDiscriminators");
            }

            documentType = null;
            Predicate <DocumentTypeConfig> match = delegate(DocumentTypeConfig current)
            {
                if (rootName != current.RootName)
                {
                    return(false);
                }
                if (rootNamespace != current.RootNamespace)
                {
                    return(false);
                }
                return(identifierDiscriminators.Equals(current.IdentifierDiscriminators));
            };
            List <DocumentTypeConfig> documentTypes = _documentTypes.FindAll(match);

            if (documentTypes.Count < 1)
            {
                return(false);
            }
            if (documentTypes.Count > 1)
            {
                throw new AmbiguousDocumentTypeResultFromParametersException(rootName, rootNamespace, identifierDiscriminators);
            }
            documentType = documentTypes[0];
            return(true);
        }
Beispiel #10
0
 /// <summary>
 /// Constructor that only takes the parameters to uniquely identify
 /// the document type.
 /// </summary>
 /// <param name="rootName"></param>
 /// <param name="rootNamespace"></param>
 /// <param name="identifierDiscriminators"></param>
 public RaspDocumentTypeConfig(
     string rootName,
     string rootNamespace,
     XpathDiscriminatorConfigCollection identifierDiscriminators
     )
 {
     if (rootName == null)
     {
         throw new NullArgumentException("rootName");
     }
     if (rootNamespace == null)
     {
         throw new NullArgumentException("rootNamespace");
     }
     if (identifierDiscriminators == null)
     {
         throw new NullArgumentException("identifierDiscriminators");
     }
     _rootName                 = rootName;
     _rootNamespace            = rootNamespace;
     _identifierDiscriminators = identifierDiscriminators;
 }
Beispiel #11
0
 public void _07_GetNonExistingDocumentTypeFromParameters()
 {
     try
     {
         Print.Started("_07_GetNonExistingDocumentTypeFromParameters");
         string rootName      = "TestA";
         string rootNamespace = "http://oio.dk/test";
         XPathDiscriminatorConfig           identifierDiscriminatorA = new XPathDiscriminatorConfig("//Test/Key", "A");
         XPathDiscriminatorConfig           identifierDiscriminatorB = new XPathDiscriminatorConfig("//Test/Key", "B");
         XpathDiscriminatorConfigCollection identifierDiscriminators = new XpathDiscriminatorConfigCollection();
         identifierDiscriminators.Add(identifierDiscriminatorA);
         identifierDiscriminators.Add(identifierDiscriminatorB);
         DocumentTypeConfig           documentType           = new DocumentTypeConfig(rootName, rootNamespace, identifierDiscriminators);
         DocumentTypeCollectionConfig documentTypeCollection = new DocumentTypeCollectionConfig();
         documentTypeCollection.AddDocumentType(documentType);
         Assert.Throws <NoDocumentTypeFoundFromParametersException>(() => documentTypeCollection.GetDocumentType("TestB", rootNamespace, identifierDiscriminators));
     }
     finally
     {
         Print.Completed("_07_GetNonExistingDocumentTypeFromParameters");
     }
 }
Beispiel #12
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="rootName">Root element name</param>
 /// <param name="rootNamespace">Root element namespace</param>
 /// <param name="identifierDiscriminators">Discriminator xpath collection</param>
 public NoDocumentTypeFoundFromParametersException(string rootName, string rootNamespace, XpathDiscriminatorConfigCollection identifierDiscriminators) : base(ExceptionKeywords.GetKeywords(rootName, rootNamespace, identifierDiscriminators))
 {
 }
Beispiel #13
0
        public static Dictionary <string, string> GetKeywords(string rootName, string rootNamespace, XpathDiscriminatorConfigCollection identifierDiscriminators)
        {
            Dictionary <string, string> keywords = KeywordFromString.GetKeyword("rootname", rootName);

            KeywordFromString.GetKeyword(keywords, "rootnamespace", rootNamespace);
            StringBuilder identifierStringBuilder = new StringBuilder();

            foreach (XPathDiscriminatorConfig identifierDiscriminator in identifierDiscriminators)
            {
                identifierStringBuilder.Append("(");
                identifierStringBuilder.Append(identifierDiscriminator.XPathExpression);
                identifierStringBuilder.Append("=");
                identifierStringBuilder.Append(identifierDiscriminator.XPathExpectedResult);
                identifierStringBuilder.Append(")");
            }
            KeywordFromString.GetKeyword(keywords, "identifierdiscriminators", identifierStringBuilder.ToString());
            return(keywords);
        }
Beispiel #14
0
        /// <summary>
        /// Get a document type from a root name, root namespace and a collection of
        /// identifier expressions.
        /// </summary>
        /// <param name="rootName"></param>
        /// <param name="rootNamespace"></param>
        /// <param name="identifierDiscriminators"></param>
        /// <returns></returns>
        public RaspDocumentTypeConfig GetDocumentType(string rootName, string rootNamespace, XpathDiscriminatorConfigCollection identifierDiscriminators)
        {
            if (rootName == null)
            {
                throw new ArgumentNullException("rootName");
            }
            if (rootNamespace == null)
            {
                throw new ArgumentNullException("rootNamespace");
            }
            if (identifierDiscriminators == null)
            {
                throw new ArgumentNullException("identifierDiscriminators");
            }

            RaspDocumentTypeConfig documentType = null;

            if (!TryGetDocumentType(rootName, rootNamespace, identifierDiscriminators, out documentType))
            {
                throw new NoDocumentTypeFoundFromParametersException(rootName, rootNamespace, identifierDiscriminators);
            }
            return(documentType);
        }