/// <summary>
        /// Creates a <see cref="Claim.CheckIn"/> message with a given <paramref name="url"/> claim.
        /// </summary>
        /// <param name="url">
        /// The URL to some payload that will later on be checked out.
        /// </param>
        /// <returns>
        /// The <see cref="Claim.CheckIn"/> message as an <see cref="XmlDocument"/>.
        /// </returns>
        public static XmlDocument CreateCheckIn(string url)
        {
            if (url.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(url));
            }
            var message = MessageBodyFactory.Create <Claim.CheckIn>(
                $"<clm:CheckIn xmlns:clm='{ClaimSchemaTargetNamespace}'>"
                + $"<clm:Url>{url}</clm:Url>"
                + "</clm:CheckIn>");

            return(message);
        }
Esempio n. 2
0
        public static XmlDocument Create(Type schema)
        {
            if (!SchemaMetadata.For(schema).IsEnvelopeSchema)
            {
                throw new ArgumentException(
                          $"Either {schema.FullName} is not an envelope schema or does not derive from {typeof(SchemaBase).FullName}.",
                          nameof(schema));
            }

            var envelope = MessageBodyFactory.Create(schema);
            var xpath    = SchemaMetadata.For(schema).BodyXPath;
            var body     = envelope.SelectSingleNode(xpath);

            if (body == null)
            {
                throw new InvalidOperationException($"Body element cannot be found for envelope schema '{schema.FullName}'.");
            }
            // overwrite the whole body's dummy/default content with the parts' placeholder
            body.InnerXml = $"<ns:parts-here xmlns:ns=\"{SchemaMetadata.For<Batch.Content>().TargetNamespace}\" />";
            return(envelope);
        }
        public void CreatingMessageBodyWithInvalidContentThrows()
        {
            var content = MessageBodyFactory.Create <soap_envelope_1__1.Envelope>().OuterXml;

            Invoking(() => MessageBodyFactory.Create <soap_envelope_1__2.Envelope>(content)).Should().Throw <XmlSchemaValidationException>();
        }
        public void CreatingMessageBodyWithValidContentDoesNotThrow()
        {
            var content = MessageBodyFactory.Create <soap_envelope_1__2.Envelope>().OuterXml;

            Invoking(() => MessageBodyFactory.Create <soap_envelope_1__2.Envelope>(content)).Should().NotThrow();
        }
 public void CreatingMessageBodyForNonSchemaTypeThrows()
 {
     Invoking(() => MessageBodyFactory.Create(typeof(int)))
     .Should().Throw <ArgumentException>().WithMessage("System.Int32 does not derive from Microsoft.XLANGs.BaseTypes.SchemaBase.*");
 }