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"); } }
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"); } }
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"); } }
/* * 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; }
/// <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; }
/// <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; }
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"); }
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"); }
/// <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); }
/// <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; }
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"); } }
/// <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)) { }
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); }
/// <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); }