Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Adding a Guid extension to messages that are copied to the log endpoint

  • Loading branch information...
commit b6f8aa2f687a210c14c1ac1a92bc33b593c6878d 1 parent ebbde3f
@ShawnSpooner ShawnSpooner authored
View
308 Rhino.ServiceBus.Tests/MessageLoggingTests.cs
@@ -1,155 +1,155 @@
-using System;
-using System.Transactions;
-using Castle.Windsor;
-using Castle.Windsor.Configuration.Interpreters;
-using Rhino.Mocks;
-using Rhino.ServiceBus.Impl;
-using Rhino.ServiceBus.Internal;
-using Rhino.ServiceBus.MessageModules;
-using Rhino.ServiceBus.Messages;
-using Xunit;
-
-namespace Rhino.ServiceBus.Tests
-{
- public class MessageLoggingTests : MsmqTestBase
- {
- private readonly IWindsorContainer container;
- private readonly ITransport transport;
- private readonly IMessageSerializer messageSerializer;
-
- public MessageLoggingTests()
- {
- container = new WindsorContainer(new XmlInterpreter());
- container.Kernel.AddFacility("rhino.esb", new RhinoServiceBusFacility());
- container.AddComponent<MessageLoggingModule>();
-
- messageSerializer = container.Resolve<IMessageSerializer>();
-
- transport = MockRepository.GenerateStub<ITransport>();
- }
-
- [Fact]
- public void Will_send_message_about_serialization_failure()
- {
- var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
- module.Init(transport, null);
-
- transport.Raise(x => x.MessageSerializationException += null,
- new CurrentMessageInformation { MessageId = Guid.NewGuid() },
- new InvalidOperationException("Operation is not valid due to the current state of the object."));
-
- var msg = queue.Receive(TimeSpan.FromSeconds(30));
-
- var serializationError = (SerializationErrorMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
- Assert.Equal("System.InvalidOperationException: Operation is not valid due to the current state of the object.", serializationError.Error);
- Assert.NotEqual(Guid.Empty, serializationError.MessageId);
- }
-
- [Fact]
- public void Will_send_message_about_message_arrived()
- {
- var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
- module.Init(transport, null);
-
- transport.Raise(x => x.MessageArrived += null,
- new CurrentMessageInformation
- {
- MessageId = Guid.NewGuid(),
- Message = "tst"
- });
-
- var msg = queue.Receive(TimeSpan.FromSeconds(30));
-
- var messageArrivedMessage = (MessageArrivedMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
- Assert.NotEqual(Guid.Empty, messageArrivedMessage.MessageId);
- Assert.Equal("tst", messageArrivedMessage.Message);
- }
-
- [Fact]
- public void Will_send_message_about_message_processing_completed()
- {
- var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
- module.Init(transport, null);
-
- transport.Raise(x => x.MessageProcessingCompleted += null,
- new CurrentMessageInformation
- {
- MessageId = Guid.NewGuid(),
- Message = "tst"
- },
- new Exception());
-
- var msg = queue.Receive(TimeSpan.FromSeconds(30));
-
- var processingCompletedMessage = (MessageProcessingCompletedMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
- Assert.NotEqual(Guid.Empty, processingCompletedMessage.MessageId);
- }
-
- [Fact]
- public void Will_send_message_about_message_processing_failed()
- {
- var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
- module.Init(transport, null);
-
- transport.Raise(x => x.MessageProcessingFailure += null,
- new CurrentMessageInformation
- {
- MessageId = Guid.NewGuid(),
- Message = "tst"
- },
- new IndexOutOfRangeException("Index was outside the bounds of the array."));
-
- var msg = queue.Receive(TimeSpan.FromSeconds(30));
-
- var failedMessage = (MessageProcessingFailedMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
- Assert.NotEqual(Guid.Empty, failedMessage.MessageId);
- Assert.Equal("System.IndexOutOfRangeException: Index was outside the bounds of the array.", failedMessage.ErrorText);
- Assert.Equal("tst",failedMessage.Message);
- }
-
- [Fact]
- public void Will_send_message_about_message_sent()
- {
- var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
- module.Init(transport, null);
-
- transport.Raise(x => x.MessageSent += null,
- new CurrentMessageInformation
- {
- MessageId = Guid.NewGuid(),
- AllMessages = new[]{"test"}
- });
-
- var msg = queue.Receive(TimeSpan.FromSeconds(30));
-
- var failedMessage = (MessageSentMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
- Assert.NotEqual(Guid.Empty, failedMessage.MessageId);
- Assert.Equal(new[] { "test" }, failedMessage.Message);
- }
-
- [Fact]
- public void Will_send_message_about_message_processing_failed_even_when_rolling_back_tx()
- {
- var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
- module.Init(transport, null);
-
- using(new TransactionScope())
- {
- transport.Raise(x => x.MessageProcessingFailure += null,
- new CurrentMessageInformation
- {
- MessageId = Guid.NewGuid(),
- Message = "tst"
- },
- new IndexOutOfRangeException("Index was outside the bounds of the array."));
- }
-
- var msg = queue.Receive(TimeSpan.FromSeconds(30));
-
- var failedMessage = (MessageProcessingFailedMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
- Assert.NotEqual(Guid.Empty, failedMessage.MessageId);
- Assert.Equal("System.IndexOutOfRangeException: Index was outside the bounds of the array.", failedMessage.ErrorText);
- Assert.Equal("tst", failedMessage.Message);
- }
- }
+using System;
+using System.Transactions;
+using Castle.Windsor;
+using Castle.Windsor.Configuration.Interpreters;
+using Rhino.Mocks;
+using Rhino.ServiceBus.Impl;
+using Rhino.ServiceBus.Internal;
+using Rhino.ServiceBus.MessageModules;
+using Rhino.ServiceBus.Messages;
+using Xunit;
+
+namespace Rhino.ServiceBus.Tests
+{
+ public class MessageLoggingTests : MsmqTestBase
+ {
+ private readonly IWindsorContainer container;
+ private readonly ITransport transport;
+ private readonly IMessageSerializer messageSerializer;
+
+ public MessageLoggingTests()
+ {
+ container = new WindsorContainer(new XmlInterpreter());
+ container.Kernel.AddFacility("rhino.esb", new RhinoServiceBusFacility());
+ container.AddComponent<MessageLoggingModule>();
+
+ messageSerializer = container.Resolve<IMessageSerializer>();
+
+ transport = MockRepository.GenerateStub<ITransport>();
+ }
+
+ [Fact]
+ public void Will_send_message_about_serialization_failure()
+ {
+ var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
+ module.Init(transport, null);
+
+ transport.Raise(x => x.MessageSerializationException += null,
+ new CurrentMessageInformation { MessageId = Guid.NewGuid() },
+ new InvalidOperationException("Operation is not valid due to the current state of the object."));
+
+ var msg = queue.Receive(TimeSpan.FromSeconds(30));
+
+ var serializationError = (SerializationErrorMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
+ Assert.Equal("System.InvalidOperationException: Operation is not valid due to the current state of the object.", serializationError.Error);
+ Assert.NotEqual(Guid.Empty, serializationError.MessageId);
+ }
+
+ [Fact]
+ public void Will_send_message_about_message_arrived()
+ {
+ var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
+ module.Init(transport, null);
+
+ transport.Raise(x => x.MessageArrived += null,
+ new CurrentMessageInformation
+ {
+ MessageId = Guid.NewGuid(),
+ Message = "tst"
+ });
+
+ var msg = queue.Receive(TimeSpan.FromSeconds(30));
+
+ var messageArrivedMessage = (MessageArrivedMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
+ Assert.NotEqual(Guid.Empty, messageArrivedMessage.MessageId);
+ Assert.Equal("tst", messageArrivedMessage.Message);
+ }
+
+ [Fact]
+ public void Will_send_message_about_message_processing_completed()
+ {
+ var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
+ module.Init(transport, null);
+
+ transport.Raise(x => x.MessageProcessingCompleted += null,
+ new CurrentMessageInformation
+ {
+ MessageId = Guid.NewGuid(),
+ Message = "tst"
+ },
+ new Exception());
+
+ var msg = queue.Receive(TimeSpan.FromSeconds(30));
+
+ var processingCompletedMessage = (MessageProcessingCompletedMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
+ Assert.NotEqual(Guid.Empty, processingCompletedMessage.MessageId);
+ }
+
+ [Fact]
+ public void Will_send_message_about_message_processing_failed()
+ {
+ var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
+ module.Init(transport, null);
+
+ transport.Raise(x => x.MessageProcessingFailure += null,
+ new CurrentMessageInformation
+ {
+ MessageId = Guid.NewGuid(),
+ Message = "tst"
+ },
+ new IndexOutOfRangeException("Index was outside the bounds of the array."));
+
+ var msg = queue.Receive(TimeSpan.FromSeconds(30));
+
+ var failedMessage = (MessageProcessingFailedMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
+ Assert.NotEqual(Guid.Empty, failedMessage.MessageId);
+ Assert.Equal("System.IndexOutOfRangeException: Index was outside the bounds of the array.", failedMessage.ErrorText);
+ Assert.Equal("tst",failedMessage.Message);
+ }
+
+ [Fact]
+ public void Will_send_message_about_message_sent()
+ {
+ var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
+ module.Init(transport, null);
+
+ transport.Raise(x => x.MessageSent += null,
+ new CurrentMessageInformation
+ {
+ MessageId = Guid.NewGuid(),
+ AllMessages = new[]{"test"}
+ });
+
+ var msg = queue.Receive(TimeSpan.FromSeconds(30));
+
+ var failedMessage = (MessageSentMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
+ Assert.NotEqual(Guid.Empty, failedMessage.MessageId);
+ Assert.Equal(new[] { "test" }, failedMessage.Message);
+ }
+
+ [Fact]
+ public void Will_send_message_about_message_processing_failed_even_when_rolling_back_tx()
+ {
+ var module = container.Resolve<MessageLoggingModule>(new { logQueue = TestQueueUri.Uri });
+ module.Init(transport, null);
+
+ using(new TransactionScope())
+ {
+ transport.Raise(x => x.MessageProcessingFailure += null,
+ new CurrentMessageInformation
+ {
+ MessageId = Guid.NewGuid(),
+ Message = "tst"
+ },
+ new IndexOutOfRangeException("Index was outside the bounds of the array."));
+ }
+
+ var msg = queue.Receive(TimeSpan.FromSeconds(30));
+
+ var failedMessage = (MessageProcessingFailedMessage)messageSerializer.Deserialize(msg.BodyStream)[0];
+ Assert.NotEqual(Guid.Empty, failedMessage.MessageId);
+ Assert.Equal("System.IndexOutOfRangeException: Index was outside the bounds of the array.", failedMessage.ErrorText);
+ Assert.Equal("tst", failedMessage.Message);
+ }
+ }
}
View
279 Rhino.ServiceBus/MessageModules/MessageLoggingModule.cs
@@ -1,140 +1,141 @@
-using System;
-using System.Messaging;
-using Rhino.ServiceBus.Impl;
-using Rhino.ServiceBus.Internal;
-using Rhino.ServiceBus.Messages;
-using Rhino.ServiceBus.Msmq;
-
-namespace Rhino.ServiceBus.MessageModules
-{
- public class MessageLoggingModule : IMessageModule
- {
- private readonly IMessageSerializer messageSerializer;
- private readonly IEndpointRouter endpointRouter;
- private readonly Uri logQueue;
- private OpenedQueue queue;
-
- [ThreadStatic] private static DateTime messageArrival;
-
- public Uri LogQueue
- {
- get { return logQueue; }
- }
-
- public MessageLoggingModule(IMessageSerializer messageSerializer, IEndpointRouter endpointRouter, Uri logQueue)
- {
- this.messageSerializer = messageSerializer;
- this.endpointRouter = endpointRouter;
- this.logQueue = logQueue;
- }
-
- public void Init(ITransport transport, IServiceBus bus)
- {
- var endpoint = endpointRouter.GetRoutedEndpoint(logQueue);
- var queueInfo = MsmqUtil.GetQueuePath(endpoint);
- queueInfo.Create();
- queue = queueInfo.Open(QueueAccessMode.Send);
-
- transport.MessageArrived += Transport_OnMessageArrived;
- transport.MessageProcessingFailure += Transport_OnMessageProcessingFailure;
- transport.MessageProcessingCompleted += Transport_OnMessageProcessingCompleted;
- transport.MessageSerializationException += Transport_OnMessageSerializationException;
- transport.MessageSent+=Transport_OnMessageSent;
- }
-
- public void Stop(ITransport transport, IServiceBus bus)
- {
- transport.MessageArrived -= Transport_OnMessageArrived;
- transport.MessageProcessingFailure -= Transport_OnMessageProcessingFailure;
- transport.MessageProcessingCompleted -= Transport_OnMessageProcessingCompleted;
- transport.MessageSerializationException -= Transport_OnMessageSerializationException;
- transport.MessageSent -= Transport_OnMessageSent;
-
- queue.Dispose();
- }
-
- private void Transport_OnMessageSent(CurrentMessageInformation info)
- {
- Send(new MessageSentMessage
- {
- MessageId = info.MessageId,
- Source = info.Source,
- Message = info.AllMessages,
- MessageType = info.AllMessages[0].ToString(),
- Timestamp = DateTime.Now,
- Destination = info.Destination
- });
- }
-
- private void Send(object obj)
- {
- var msg = new Message
- {
- Label = obj.ToString()
- };
- messageSerializer.Serialize(new[] { obj }, msg.BodyStream);
- queue.Send(msg);
- }
-
- private void Transport_OnMessageSerializationException(CurrentMessageInformation info, Exception t)
- {
- Send(new SerializationErrorMessage
- {
- MessageId = info.MessageId,
- Error = t.ToString(),
- Source = info.Source,
- });
- }
-
- private void Transport_OnMessageProcessingCompleted(CurrentMessageInformation info, Exception ex)
- {
- var timestamp = DateTime.Now;
- Send(new MessageProcessingCompletedMessage
- {
- Timestamp = timestamp,
- Duration = timestamp - messageArrival,
- MessageType = info.Message.ToString(),
- MessageId = info.MessageId,
- Source = info.Source,
- });
- }
-
- internal void Transport_OnMessageProcessingFailure(CurrentMessageInformation info, Exception e)
- {
- string messageType = (info.Message ?? "no message").ToString();
- SendInSingleTransaction(new MessageProcessingFailedMessage
- {
- ErrorText = e.ToString(),
- Timestamp = DateTime.Now,
- MessageType = messageType,
- MessageId = info.MessageId,
- Source = info.Source,
- Message = info.Message
- });
- }
-
- private void SendInSingleTransaction(object msg)
- {
- var message = new Message
- {
- Label = msg.ToString()
- };
- messageSerializer.Serialize(new[]{msg},message.BodyStream);
- queue.SendInSingleTransaction(message);
- }
-
- private bool Transport_OnMessageArrived(CurrentMessageInformation info)
- {
- messageArrival = DateTime.Now;
- Send(new MessageArrivedMessage
- {
- Timestamp = messageArrival,
- MessageType = info.Message.ToString(),
- MessageId = info.MessageId,
- Source = info.Source,
- Message = info.Message
- });
- return false;
- }
- }
+using System;
+using System.Messaging;
+using Rhino.ServiceBus.Impl;
+using Rhino.ServiceBus.Internal;
+using Rhino.ServiceBus.Messages;
+using Rhino.ServiceBus.Msmq;
+
+namespace Rhino.ServiceBus.MessageModules
+{
+ public class MessageLoggingModule : IMessageModule
+ {
+ private readonly IMessageSerializer messageSerializer;
+ private readonly IEndpointRouter endpointRouter;
+ private readonly Uri logQueue;
+ private OpenedQueue queue;
+
+ [ThreadStatic] private static DateTime messageArrival;
+
+ public Uri LogQueue
+ {
+ get { return logQueue; }
+ }
+
+ public MessageLoggingModule(IMessageSerializer messageSerializer, IEndpointRouter endpointRouter, Uri logQueue)
+ {
+ this.messageSerializer = messageSerializer;
+ this.endpointRouter = endpointRouter;
+ this.logQueue = logQueue;
+ }
+
+ public void Init(ITransport transport, IServiceBus bus)
+ {
+ var endpoint = endpointRouter.GetRoutedEndpoint(logQueue);
+ var queueInfo = MsmqUtil.GetQueuePath(endpoint);
+ queueInfo.Create();
+ queue = queueInfo.Open(QueueAccessMode.Send);
+
+ transport.MessageArrived += Transport_OnMessageArrived;
+ transport.MessageProcessingFailure += Transport_OnMessageProcessingFailure;
+ transport.MessageProcessingCompleted += Transport_OnMessageProcessingCompleted;
+ transport.MessageSerializationException += Transport_OnMessageSerializationException;
+ transport.MessageSent+=Transport_OnMessageSent;
+ }
+
+ public void Stop(ITransport transport, IServiceBus bus)
+ {
+ transport.MessageArrived -= Transport_OnMessageArrived;
+ transport.MessageProcessingFailure -= Transport_OnMessageProcessingFailure;
+ transport.MessageProcessingCompleted -= Transport_OnMessageProcessingCompleted;
+ transport.MessageSerializationException -= Transport_OnMessageSerializationException;
+ transport.MessageSent -= Transport_OnMessageSent;
+
+ queue.Dispose();
+ }
+
+ private void Transport_OnMessageSent(CurrentMessageInformation info)
+ {
+ Send(new MessageSentMessage
+ {
+ MessageId = info.MessageId,
+ Source = info.Source,
+ Message = info.AllMessages,
+ MessageType = info.AllMessages[0].ToString(),
+ Timestamp = DateTime.Now,
+ Destination = info.Destination
+ });
+ }
+
+ private void Send(object obj)
+ {
+ var msg = new Message
+ {
+ Label = obj.ToString(),
+ Extension = Guid.NewGuid().ToByteArray()
+ };
+ messageSerializer.Serialize(new[] { obj }, msg.BodyStream);
+ queue.Send(msg);
+ }
+
+ private void Transport_OnMessageSerializationException(CurrentMessageInformation info, Exception t)
+ {
+ Send(new SerializationErrorMessage
+ {
+ MessageId = info.MessageId,
+ Error = t.ToString(),
+ Source = info.Source,
+ });
+ }
+
+ private void Transport_OnMessageProcessingCompleted(CurrentMessageInformation info, Exception ex)
+ {
+ var timestamp = DateTime.Now;
+ Send(new MessageProcessingCompletedMessage
+ {
+ Timestamp = timestamp,
+ Duration = timestamp - messageArrival,
+ MessageType = info.Message.ToString(),
+ MessageId = info.MessageId,
+ Source = info.Source,
+ });
+ }
+
+ internal void Transport_OnMessageProcessingFailure(CurrentMessageInformation info, Exception e)
+ {
+ string messageType = (info.Message ?? "no message").ToString();
+ SendInSingleTransaction(new MessageProcessingFailedMessage
+ {
+ ErrorText = e.ToString(),
+ Timestamp = DateTime.Now,
+ MessageType = messageType,
+ MessageId = info.MessageId,
+ Source = info.Source,
+ Message = info.Message
+ });
+ }
+
+ private void SendInSingleTransaction(object msg)
+ {
+ var message = new Message
+ {
+ Label = msg.ToString()
+ };
+ messageSerializer.Serialize(new[]{msg},message.BodyStream);
+ queue.SendInSingleTransaction(message);
+ }
+
+ private bool Transport_OnMessageArrived(CurrentMessageInformation info)
+ {
+ messageArrival = DateTime.Now;
+ Send(new MessageArrivedMessage
+ {
+ Timestamp = messageArrival,
+ MessageType = info.Message.ToString(),
+ MessageId = info.MessageId,
+ Source = info.Source,
+ Message = info.Message
+ });
+ return false;
+ }
+ }
}
View
6,660 SharedLibs/Wintellect.Threading.xml
3,330 additions, 3,330 deletions not shown
View
57,310 SharedLibs/log4net.xml
28,655 additions, 28,655 deletions not shown
View
232 Tools/xUnit/HTML.xslt
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="html"/>
- <xsl:template match="/">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="assembly">
- <xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">]]></xsl:text>
- <html>
- <head>
- <title>xUnit.net Test Results - <xsl:value-of select="@name"/>
- </title>
- <style type="text/css">
- body { font-family: Calibri, Verdana, Arial, sans-serif; background-color: White; color: Black; }
- h2,h3,h5 { margin: 0; padding: 0; }
- h2 { border-top: solid 1px #f0f5fa; padding-top: 0.5em; }
- h3 { font-weight: normal; }
- h5 { font-weight: normal; font-style: italic; margin-bottom: 0.75em; }
- pre { font-family: Consolas; font-size: 85%; margin: 0 0 0 1em; padding: 0; }
- .row, .altrow { padding: 0.1em 0.3em; }
- .row { background-color: #f0f5fa; }
- .altrow { background-color: #e1ebf4; }
- .success, .failure, .skipped { font-family: Arial Unicode MS; font-weight: normal; float: left; width: 1em; display: block; }
- .success { color: #0c0; }
- .failure { color: #c00; }
- .skipped { color: #cc0; }
- .timing { float: right; }
- .indent { margin: 0.25em 0 0.5em 2em; }
- .clickable { cursor: pointer; }
- .testcount { font-size: 85%; }
- </style>
- <script language="javascript">
- function ToggleClass(id) {
- var elem = document.getElementById(id);
- if (elem.style.display == "none")
- elem.style.display = "block";
- else
- elem.style.display = "none";
- }
- </script>
- </head>
- <body>
- <h3><b>Results for <xsl:value-of select="@name"/></b></h3>
- <div>
- Tests run: <a href="#all"><b><xsl:value-of select="@total"/></b></a> &#160;
- Failures: <a href="#failures"><b><xsl:value-of select="@failed"/></b></a>,
- Skipped: <a href="#skipped"><b><xsl:value-of select="@skipped"/></b></a>,
- Run time: <b><xsl:value-of select="@time"/>s</b>
- </div>
- <xsl:if test="//test[@result='Fail']">
- <br />
- <h2><a name="failures"></a>Failed tests</h2>
- <xsl:apply-templates select="//test[@result='Fail']"><xsl:sort select="@name"/></xsl:apply-templates>
- </xsl:if>
- <xsl:if test="//class/failure">
- <br />
- <h2><a name="failures"></a>Failed fixtures</h2>
- <xsl:apply-templates select="//class/failure"><xsl:sort select="../@name"/></xsl:apply-templates>
- </xsl:if>
- <xsl:if test="@skipped > 0">
- <br />
- <h2><a name="skipped"></a>Skipped tests</h2>
- <xsl:apply-templates select="//test[@result='Skip']"><xsl:sort select="@name"/></xsl:apply-templates>
- </xsl:if>
- <br />
- <h2><a name="all"></a>All tests</h2>
- <h5>Click test class name to expand/collapse test details</h5>
- <xsl:apply-templates select="//class"><xsl:sort select="@name"/></xsl:apply-templates>
- <br /><h5>Results generated <xsl:value-of select="@run-date"/> at <xsl:value-of select="@run-time"/></h5>
- </body>
- </html>
- </xsl:template>
-
- <xsl:template match="test">
- <div>
- <xsl:attribute name="class"><xsl:if test="(position() mod 2 = 0)">alt</xsl:if>row</xsl:attribute>
- <xsl:if test="@result!='Skip'"><span class="timing"><xsl:value-of select="@time"/>s</span></xsl:if>
- <xsl:if test="@result='Skip'"><span class="timing">Skipped</span><span class="skipped">&#x2762;</span></xsl:if>
- <xsl:if test="@result='Fail'"><span class="failure">&#x2718;</span></xsl:if>
- <xsl:if test="@result='Pass'"><span class="success">&#x2714;</span></xsl:if>
- &#160;<xsl:value-of select="@name"/>
- <xsl:if test="child::node()/message"> : <xsl:value-of select="child::node()/message"/></xsl:if>
- <br clear="all" />
- <xsl:if test="failure/stack-trace">
- <pre><xsl:value-of select="failure/stack-trace"/></pre>
- </xsl:if>
- </div>
- </xsl:template>
-
- <xsl:template match="failure">
- <span class="failure">&#x2718;</span> <xsl:value-of select="../@name"/> : <xsl:value-of select="message"/><br clear="all"/>
- Stack Trace:<br />
- <pre><xsl:value-of select="stack-trace"/></pre>
- </xsl:template>
-
- <xsl:template match="class">
- <h3>
- <span class="timing"><xsl:value-of select="@time"/>s</span>
- <span class="clickable">
- <xsl:attribute name="onclick">ToggleClass('class<xsl:value-of select="position()"/>')</xsl:attribute>
- <xsl:attribute name="ondblclick">ToggleClass('class<xsl:value-of select="position()"/>')</xsl:attribute>
- <xsl:if test="@failed > 0"><span class="failure">&#x2718;</span></xsl:if>
- <xsl:if test="@failed = 0"><span class="success">&#x2714;</span></xsl:if>
- &#160;<xsl:value-of select="@name"/>
- &#160;<span class="testcount">(<xsl:value-of select="@total"/>&#160;test<xsl:if test="@total > 1">s</xsl:if>)</span>
- </span>
- <br clear="all" />
- </h3>
- <div class="indent">
- <xsl:if test="@failed = 0"><xsl:attribute name="style">display: none;</xsl:attribute></xsl:if>
- <xsl:attribute name="id">class<xsl:value-of select="position()"/></xsl:attribute>
- <xsl:apply-templates select="test"><xsl:sort select="@name"/></xsl:apply-templates>
- </div>
- </xsl:template>
-
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="html"/>
+ <xsl:template match="/">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="assembly">
+ <xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">]]></xsl:text>
+ <html>
+ <head>
+ <title>xUnit.net Test Results - <xsl:value-of select="@name"/>
+ </title>
+ <style type="text/css">
+ body { font-family: Calibri, Verdana, Arial, sans-serif; background-color: White; color: Black; }
+ h2,h3,h5 { margin: 0; padding: 0; }
+ h2 { border-top: solid 1px #f0f5fa; padding-top: 0.5em; }
+ h3 { font-weight: normal; }
+ h5 { font-weight: normal; font-style: italic; margin-bottom: 0.75em; }
+ pre { font-family: Consolas; font-size: 85%; margin: 0 0 0 1em; padding: 0; }
+ .row, .altrow { padding: 0.1em 0.3em; }
+ .row { background-color: #f0f5fa; }
+ .altrow { background-color: #e1ebf4; }
+ .success, .failure, .skipped { font-family: Arial Unicode MS; font-weight: normal; float: left; width: 1em; display: block; }
+ .success { color: #0c0; }
+ .failure { color: #c00; }
+ .skipped { color: #cc0; }
+ .timing { float: right; }
+ .indent { margin: 0.25em 0 0.5em 2em; }
+ .clickable { cursor: pointer; }
+ .testcount { font-size: 85%; }
+ </style>
+ <script language="javascript">
+ function ToggleClass(id) {
+ var elem = document.getElementById(id);
+ if (elem.style.display == "none")
+ elem.style.display = "block";
+ else
+ elem.style.display = "none";
+ }
+ </script>
+ </head>
+ <body>
+ <h3><b>Results for <xsl:value-of select="@name"/></b></h3>
+ <div>
+ Tests run: <a href="#all"><b><xsl:value-of select="@total"/></b></a> &#160;
+ Failures: <a href="#failures"><b><xsl:value-of select="@failed"/></b></a>,
+ Skipped: <a href="#skipped"><b><xsl:value-of select="@skipped"/></b></a>,
+ Run time: <b><xsl:value-of select="@time"/>s</b>
+ </div>
+ <xsl:if test="//test[@result='Fail']">
+ <br />
+ <h2><a name="failures"></a>Failed tests</h2>
+ <xsl:apply-templates select="//test[@result='Fail']"><xsl:sort select="@name"/></xsl:apply-templates>
+ </xsl:if>
+ <xsl:if test="//class/failure">
+ <br />
+ <h2><a name="failures"></a>Failed fixtures</h2>
+ <xsl:apply-templates select="//class/failure"><xsl:sort select="../@name"/></xsl:apply-templates>
+ </xsl:if>
+ <xsl:if test="@skipped > 0">
+ <br />
+ <h2><a name="skipped"></a>Skipped tests</h2>
+ <xsl:apply-templates select="//test[@result='Skip']"><xsl:sort select="@name"/></xsl:apply-templates>
+ </xsl:if>
+ <br />
+ <h2><a name="all"></a>All tests</h2>
+ <h5>Click test class name to expand/collapse test details</h5>
+ <xsl:apply-templates select="//class"><xsl:sort select="@name"/></xsl:apply-templates>
+ <br /><h5>Results generated <xsl:value-of select="@run-date"/> at <xsl:value-of select="@run-time"/></h5>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="test">
+ <div>
+ <xsl:attribute name="class"><xsl:if test="(position() mod 2 = 0)">alt</xsl:if>row</xsl:attribute>
+ <xsl:if test="@result!='Skip'"><span class="timing"><xsl:value-of select="@time"/>s</span></xsl:if>
+ <xsl:if test="@result='Skip'"><span class="timing">Skipped</span><span class="skipped">&#x2762;</span></xsl:if>
+ <xsl:if test="@result='Fail'"><span class="failure">&#x2718;</span></xsl:if>
+ <xsl:if test="@result='Pass'"><span class="success">&#x2714;</span></xsl:if>
+ &#160;<xsl:value-of select="@name"/>
+ <xsl:if test="child::node()/message"> : <xsl:value-of select="child::node()/message"/></xsl:if>
+ <br clear="all" />
+ <xsl:if test="failure/stack-trace">
+ <pre><xsl:value-of select="failure/stack-trace"/></pre>
+ </xsl:if>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="failure">
+ <span class="failure">&#x2718;</span> <xsl:value-of select="../@name"/> : <xsl:value-of select="message"/><br clear="all"/>
+ Stack Trace:<br />
+ <pre><xsl:value-of select="stack-trace"/></pre>
+ </xsl:template>
+
+ <xsl:template match="class">
+ <h3>
+ <span class="timing"><xsl:value-of select="@time"/>s</span>
+ <span class="clickable">
+ <xsl:attribute name="onclick">ToggleClass('class<xsl:value-of select="position()"/>')</xsl:attribute>
+ <xsl:attribute name="ondblclick">ToggleClass('class<xsl:value-of select="position()"/>')</xsl:attribute>
+ <xsl:if test="@failed > 0"><span class="failure">&#x2718;</span></xsl:if>
+ <xsl:if test="@failed = 0"><span class="success">&#x2714;</span></xsl:if>
+ &#160;<xsl:value-of select="@name"/>
+ &#160;<span class="testcount">(<xsl:value-of select="@total"/>&#160;test<xsl:if test="@total > 1">s</xsl:if>)</span>
+ </span>
+ <br clear="all" />
+ </h3>
+ <div class="indent">
+ <xsl:if test="@failed = 0"><xsl:attribute name="style">display: none;</xsl:attribute></xsl:if>
+ <xsl:attribute name="id">class<xsl:value-of select="position()"/></xsl:attribute>
+ <xsl:apply-templates select="test"><xsl:sort select="@name"/></xsl:apply-templates>
+ </div>
+ </xsl:template>
+
</xsl:stylesheet>
View
240 Tools/xUnit/NUnitXml.xslt
@@ -1,121 +1,121 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output cdata-section-elements="message stack-trace"/>
-
- <xsl:template match="/">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="assembly">
- <test-results>
- <xsl:attribute name="name">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:attribute name="date">
- <xsl:value-of select="@run-date"/>
- </xsl:attribute>
- <xsl:attribute name="time">
- <xsl:value-of select="@run-time"/>
- </xsl:attribute>
- <xsl:attribute name="total">
- <xsl:value-of select="@total"/>
- </xsl:attribute>
- <xsl:attribute name="failures">
- <xsl:value-of select="@failed"/>
- </xsl:attribute>
- <xsl:attribute name="not-run">
- <xsl:value-of select="@skipped"/>
- </xsl:attribute>
- <test-suite>
- <xsl:attribute name="name">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:attribute name="success">
- <xsl:if test="@failed > 0">False</xsl:if>
- <xsl:if test="@failed = 0">True</xsl:if>
- </xsl:attribute>
- <xsl:attribute name="time">
- <xsl:value-of select="@time"/>
- </xsl:attribute>
- <results>
- <xsl:apply-templates select="class"/>
- </results>
- </test-suite>
- </test-results>
- </xsl:template>
-
- <xsl:template match="class">
- <test-suite>
- <xsl:attribute name="name">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:attribute name="success">
- <xsl:if test="@failed > 0">False</xsl:if>
- <xsl:if test="@failed = 0">True</xsl:if>
- </xsl:attribute>
- <xsl:attribute name="time">
- <xsl:value-of select="@time"/>
- </xsl:attribute>
- <xsl:if test="failure">
- <xsl:copy-of select="failure"/>
- </xsl:if>
- <xsl:if test="reason">
- <reason>
- <xsl:apply-templates select="reason"/>
- </reason>
- </xsl:if>
- <results>
- <xsl:apply-templates select="test"/>
- </results>
- </test-suite>
- </xsl:template>
-
- <xsl:template match="test">
- <test-case>
- <xsl:attribute name="name">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:attribute name="executed">
- <xsl:if test="@result='Skip'">False</xsl:if>
- <xsl:if test="@result!='Skip'">True</xsl:if>
- </xsl:attribute>
- <xsl:if test="@result!='Skip'">
- <xsl:attribute name="success">
- <xsl:if test="@result='Fail'">False</xsl:if>
- <xsl:if test="@result='Pass'">True</xsl:if>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@time">
- <xsl:attribute name="time">
- <xsl:value-of select="@time"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:apply-templates select="traits"/>
- <xsl:apply-templates select="failure"/>
- </test-case>
- </xsl:template>
-
- <xsl:template match="traits">
- <properties>
- <xsl:apply-templates select="trait"/>
- </properties>
- </xsl:template>
-
- <xsl:template match="trait">
- <property>
- <xsl:attribute name="name">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:attribute name="value">
- <xsl:value-of select="@value"/>
- </xsl:attribute>
- </property>
- </xsl:template>
-
- <xsl:template match="failure">
- <failure>
- <xsl:copy-of select="node()"/>
- </failure>
- </xsl:template>
-
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output cdata-section-elements="message stack-trace"/>
+
+ <xsl:template match="/">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="assembly">
+ <test-results>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="date">
+ <xsl:value-of select="@run-date"/>
+ </xsl:attribute>
+ <xsl:attribute name="time">
+ <xsl:value-of select="@run-time"/>
+ </xsl:attribute>
+ <xsl:attribute name="total">
+ <xsl:value-of select="@total"/>
+ </xsl:attribute>
+ <xsl:attribute name="failures">
+ <xsl:value-of select="@failed"/>
+ </xsl:attribute>
+ <xsl:attribute name="not-run">
+ <xsl:value-of select="@skipped"/>
+ </xsl:attribute>
+ <test-suite>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="success">
+ <xsl:if test="@failed > 0">False</xsl:if>
+ <xsl:if test="@failed = 0">True</xsl:if>
+ </xsl:attribute>
+ <xsl:attribute name="time">
+ <xsl:value-of select="@time"/>
+ </xsl:attribute>
+ <results>
+ <xsl:apply-templates select="class"/>
+ </results>
+ </test-suite>
+ </test-results>
+ </xsl:template>
+
+ <xsl:template match="class">
+ <test-suite>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="success">
+ <xsl:if test="@failed > 0">False</xsl:if>
+ <xsl:if test="@failed = 0">True</xsl:if>
+ </xsl:attribute>
+ <xsl:attribute name="time">
+ <xsl:value-of select="@time"/>
+ </xsl:attribute>
+ <xsl:if test="failure">
+ <xsl:copy-of select="failure"/>
+ </xsl:if>
+ <xsl:if test="reason">
+ <reason>
+ <xsl:apply-templates select="reason"/>
+ </reason>
+ </xsl:if>
+ <results>
+ <xsl:apply-templates select="test"/>
+ </results>
+ </test-suite>
+ </xsl:template>
+
+ <xsl:template match="test">
+ <test-case>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="executed">
+ <xsl:if test="@result='Skip'">False</xsl:if>
+ <xsl:if test="@result!='Skip'">True</xsl:if>
+ </xsl:attribute>
+ <xsl:if test="@result!='Skip'">
+ <xsl:attribute name="success">
+ <xsl:if test="@result='Fail'">False</xsl:if>
+ <xsl:if test="@result='Pass'">True</xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@time">
+ <xsl:attribute name="time">
+ <xsl:value-of select="@time"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="traits"/>
+ <xsl:apply-templates select="failure"/>
+ </test-case>
+ </xsl:template>
+
+ <xsl:template match="traits">
+ <properties>
+ <xsl:apply-templates select="trait"/>
+ </properties>
+ </xsl:template>
+
+ <xsl:template match="trait">
+ <property>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="value">
+ <xsl:value-of select="@value"/>
+ </xsl:attribute>
+ </property>
+ </xsl:template>
+
+ <xsl:template match="failure">
+ <failure>
+ <xsl:copy-of select="node()"/>
+ </failure>
+ </xsl:template>
+
</xsl:stylesheet>
View
40 Tools/xUnit/xunit.console.exe.config
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
-
- <configSections>
- <section name="xunit" type="Xunit.ConsoleClient.XunitConsoleConfigurationSection, xunit.console"/>
- </configSections>
-
- <xunit>
- <transforms>
- <add
- commandline="html"
- xslfile="HTML.xslt"
- description="output results to HTML file"/>
- <add
- commandline="nunit"
- xslfile="NUnitXml.xslt"
- description="output results to NUnit-style XML file"/>
- </transforms>
- </xunit>
-
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+
+ <configSections>
+ <section name="xunit" type="Xunit.ConsoleClient.XunitConsoleConfigurationSection, xunit.console"/>
+ </configSections>
+
+ <xunit>
+ <transforms>
+ <add
+ commandline="html"
+ xslfile="HTML.xslt"
+ description="output results to HTML file"/>
+ <add
+ commandline="nunit"
+ xslfile="NUnitXml.xslt"
+ description="output results to NUnit-style XML file"/>
+ </transforms>
+ </xunit>
+
</configuration>
View
40 Tools/xUnit/xunit.console.x86.exe.config
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
-
- <configSections>
- <section name="xunit" type="Xunit.ConsoleClient.XunitConsoleConfigurationSection, xunit.console.x86"/>
- </configSections>
-
- <xunit>
- <transforms>
- <add
- commandline="html"
- xslfile="HTML.xslt"
- description="output results to HTML file"/>
- <add
- commandline="nunit"
- xslfile="NUnitXml.xslt"
- description="output results to NUnit-style XML file"/>
- </transforms>
- </xunit>
-
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+
+ <configSections>
+ <section name="xunit" type="Xunit.ConsoleClient.XunitConsoleConfigurationSection, xunit.console.x86"/>
+ </configSections>
+
+ <xunit>
+ <transforms>
+ <add
+ commandline="html"
+ xslfile="HTML.xslt"
+ description="output results to HTML file"/>
+ <add
+ commandline="nunit"
+ xslfile="NUnitXml.xslt"
+ description="output results to NUnit-style XML file"/>
+ </transforms>
+ </xunit>
+
</configuration>
View
8 Tools/xUnit/xunit.dll.tdnet
@@ -1,5 +1,5 @@
-<TestRunner>
- <FriendlyName>xUnit.net {0}.{1} build {3}</FriendlyName>
- <AssemblyPath>xunit.runner.tdnet.dll</AssemblyPath>
- <TypeName>Xunit.Runner.TdNet.TdNetRunner</TypeName>
+<TestRunner>
+ <FriendlyName>xUnit.net {0}.{1} build {3}</FriendlyName>
+ <AssemblyPath>xunit.runner.tdnet.dll</AssemblyPath>
+ <TypeName>Xunit.Runner.TdNet.TdNetRunner</TypeName>
</TestRunner>
View
1,412 Tools/xUnit/xunit.extensions.xml
@@ -1,706 +1,706 @@
-<?xml version="1.0"?>
-<doc>
- <assembly>
- <name>xunit.extensions</name>
- </assembly>
- <members>
- <member name="T:Xunit.Extensions.Assertions">
- <summary>
- A wrapper for Assert which is used by <see cref="T:Xunit.Extensions.TestClass"/>.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0})">
- <summary>
- Verifies that a collection contains a given object.
- </summary>
- <typeparam name="T">The type of the object to be verified</typeparam>
- <param name="expected">The object expected to be in the collection</param>
- <param name="collection">The collection to be inspected</param>
- <exception cref="T:Xunit.Sdk.ContainsException">Thrown when the object is not present in the collection</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">
- <summary>
- Verifies that a collection contains a given object, using a comparer.
- </summary>
- <typeparam name="T">The type of the object to be verified</typeparam>
- <param name="expected">The object expected to be in the collection</param>
- <param name="collection">The collection to be inspected</param>
- <param name="comparer">The comparer used to equate objects in the collection with the expected object</param>
- <exception cref="T:Xunit.Sdk.ContainsException">Thrown when the object is not present in the collection</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Contains(System.String,System.String)">
- <summary>
- Verifies that a string contains a given sub-string, using the current culture.
- </summary>
- <param name="expectedSubString">The sub-string expected to be in the string</param>
- <param name="actualString">The string to be inspected</param>
- <exception cref="T:Xunit.Sdk.ContainsException">Thrown when the sub-string is not present inside the string</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Contains(System.String,System.String,System.StringComparison)">
- <summary>
- Verifies that a string contains a given sub-string, using the given comparison type.
- </summary>
- <param name="expectedSubString">The sub-string expected to be in the string</param>
- <param name="actualString">The string to be inspected</param>
- <param name="comparisonType">The type of string comparison to perform</param>
- <exception cref="T:Xunit.Sdk.ContainsException">Thrown when the sub-string is not present inside the string</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0})">
- <summary>
- Verifies that a collection does not contain a given object.
- </summary>
- <typeparam name="T">The type of the object to be compared</typeparam>
- <param name="expected">The object that is expected not to be in the collection</param>
- <param name="collection">The collection to be inspected</param>
- <exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the object is present inside the container</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">
- <summary>
- Verifies that a collection does not contain a given object, using a comparer.
- </summary>
- <typeparam name="T">The type of the object to be compared</typeparam>
- <param name="expected">The object that is expected not to be in the collection</param>
- <param name="collection">The collection to be inspected</param>
- <param name="comparer">The comparer used to equate objects in the collection with the expected object</param>
- <exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the object is present inside the container</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.DoesNotContain(System.String,System.String)">
- <summary>
- Verifies that a string does not contain a given sub-string, using the current culture.
- </summary>
- <param name="expectedSubString">The sub-string which is expected not to be in the string</param>
- <param name="actualString">The string to be inspected</param>
- <exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the sub-string is present inside the string</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.DoesNotContain(System.String,System.String,System.StringComparison)">
- <summary>
- Verifies that a string does not contain a given sub-string, using the current culture.
- </summary>
- <param name="expectedSubString">The sub-string which is expected not to be in the string</param>
- <param name="actualString">The string to be inspected</param>
- <param name="comparisonType">The type of string comparison to perform</param>
- <exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the sub-string is present inside the given string</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.DoesNotThrow(Xunit.Assert.ThrowsDelegate)">
- <summary>
- Verifies that a block of code does not throw any exceptions.
- </summary>
- <param name="testCode">A delegate to the code to be tested</param>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Empty(System.Collections.IEnumerable)">
- <summary>
- Verifies that a collection is empty.
- </summary>
- <param name="collection">The collection to be inspected</param>
- <exception cref="T:System.ArgumentNullException">Thrown when the collection is null</exception>
- <exception cref="T:Xunit.Sdk.EmptyException">Thrown when the collection is not empty</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Equal``1(``0,``0)">
- <summary>
- Verifies that two objects are equal, using a default comparer.
- </summary>
- <typeparam name="T">The type of the objects to be compared</typeparam>
- <param name="expected">The expected value</param>
- <param name="actual">The value to be compared against</param>
- <exception cref="T:Xunit.Sdk.EqualException">Thrown when the objects are not equal</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Equal``1(``0,``0,System.Collections.Generic.IComparer{``0})">
- <summary>
- Verifies that two objects are equal, using a custom comparer.
- </summary>
- <typeparam name="T">The type of the objects to be compared</typeparam>
- <param name="expected">The expected value</param>
- <param name="actual">The value to be compared against</param>
- <param name="comparer">The comparer used to compare the two objects</param>
- <exception cref="T:Xunit.Sdk.EqualException">Thrown when the objects are not equal</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Equals(System.Object)">
- <summary>Do not call this method. Call Assert.Equal() instead.</summary>
- </member>
- <member name="M:Xunit.Extensions.Assertions.False(System.Boolean)">
- <summary>
- Verifies that the condition is false.
- </summary>
- <param name="condition">The condition to be tested</param>
- <exception cref="T:Xunit.Sdk.FalseException">Thrown if the condition is not false</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.False(System.Boolean,System.String)">
- <summary>
- Verifies that the condition is false.
- </summary>
- <param name="condition">The condition to be tested</param>
- <param name="userMessage">The message to show when the condition is not false</param>
- <exception cref="T:Xunit.Sdk.FalseException">Thrown if the condition is not false</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.GetHashCode">
- <summary>
- Serves as a hash function for a particular type.
- </summary>
- <returns>A hash code for the current <see cref="T:System.Object"/>.</returns>
- </member>
- <member name="M:Xunit.Extensions.Assertions.InRange``1(``0,``0,``0)">
- <summary>
- Verifies that a value is within a given range.
- </summary>
- <typeparam name="T">The type of the value to be compared</typeparam>
- <param name="actual">The actual value to be evaluated</param>
- <param name="low">The (inclusive) low value of the range</param>
- <param name="high">The (inclusive) high value of the range</param>
- <exception cref="T:Xunit.Sdk.InRangeException">Thrown when the value is not in the given range</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.InRange``1(``0,``0,``0,System.Collections.Generic.IComparer{``0})">
- <summary>
- Verifies that a value is within a given range, using a comparer.
- </summary>
- <typeparam name="T">The type of the value to be compared</typeparam>
- <param name="actual">The actual value to be evaluated</param>
- <param name="low">The (inclusive) low value of the range</param>
- <param name="high">The (inclusive) high value of the range</param>
- <param name="comparer">The comparer used to evaluate the value's range</param>
- <exception cref="T:Xunit.Sdk.InRangeException">Thrown when the value is not in the given range</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.IsNotType``1(System.Object)">
- <summary>
- Verifies that an object is not exactly the given type.
- </summary>
- <typeparam name="T">The type the object should not be</typeparam>
- <param name="object">The object to be evaluated</param>
- <exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is the given type</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.IsNotType(System.Type,System.Object)">
- <summary>
- Verifies that an object is not exactly the given type.
- </summary>
- <param name="expectedType">The type the object should not be</param>
- <param name="object">The object to be evaluated</param>
- <exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is the given type</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.IsType``1(System.Object)">
- <summary>
- Verifies that an object is exactly the given type (and not a derived type).
- </summary>
- <typeparam name="T">The type the object should be</typeparam>
- <param name="object">The object to be evaluated</param>
- <returns>The object, casted to type T when successful</returns>
- <exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is not the given type</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.IsType(System.Type,System.Object)">
- <summary>
- Verifies that an object is exactly the given type (and not a derived type).
- </summary>
- <param name="expectedType">The type the object should be</param>
- <param name="object">The object to be evaluated</param>
- <exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is not the given type</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.NotEmpty(System.Collections.IEnumerable)">
- <summary>
- Verifies that a collection is not empty.
- </summary>
- <param name="collection">The collection to be inspected</param>
- <exception cref="T:System.ArgumentNullException">Thrown when a null collection is passed</exception>
- <exception cref="T:Xunit.Sdk.NotEmptyException">Thrown when the collection is empty</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0)">
- <summary>
- Verifies that two objects are not equal, using a default comparer.
- </summary>
- <typeparam name="T">The type of the objects to be compared</typeparam>
- <param name="expected">The expected object</param>
- <param name="actual">The actual object</param>
- <exception cref="T:Xunit.Sdk.NotEqualException">Thrown when the objects are equal</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0,System.Collections.Generic.IComparer{``0})">
- <summary>
- Verifies that two objects are not equal, using a custom comparer.
- </summary>
- <typeparam name="T">The type of the objects to be compared</typeparam>
- <param name="expected">The expected object</param>
- <param name="actual">The actual object</param>
- <param name="comparer">The comparer used to examine the objects</param>
- <exception cref="T:Xunit.Sdk.NotEqualException">Thrown when the objects are equal</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.NotInRange``1(``0,``0,``0)">
- <summary>
- Verifies that a value is not within a given range, using the default comparer.
- </summary>
- <typeparam name="T">The type of the value to be compared</typeparam>
- <param name="actual">The actual value to be evaluated</param>
- <param name="low">The (inclusive) low value of the range</param>
- <param name="high">The (inclusive) high value of the range</param>
- <exception cref="T:Xunit.Sdk.NotInRangeException">Thrown when the value is in the given range</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.NotInRange``1(``0,``0,``0,System.Collections.Generic.IComparer{``0})">
- <summary>
- Verifies that a value is not within a given range, using a comparer.
- </summary>
- <typeparam name="T">The type of the value to be compared</typeparam>
- <param name="actual">The actual value to be evaluated</param>
- <param name="low">The (inclusive) low value of the range</param>
- <param name="high">The (inclusive) high value of the range</param>
- <param name="comparer">The comparer used to evaluate the value's range</param>
- <exception cref="T:Xunit.Sdk.NotInRangeException">Thrown when the value is in the given range</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.NotNull(System.Object)">
- <summary>
- Verifies that an object reference is not null.
- </summary>
- <param name="object">The object to be validated</param>
- <exception cref="T:Xunit.Sdk.NotNullException">Thrown when the object is not null</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.NotSame(System.Object,System.Object)">
- <summary>
- Verifies that two objects are not the same instance.
- </summary>
- <param name="expected">The expected object instance</param>
- <param name="actual">The actual object instance</param>
- <exception cref="T:Xunit.Sdk.NotSameException">Thrown when the objects are the same instance</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Null(System.Object)">
- <summary>
- Verifies that an object reference is null.
- </summary>
- <param name="object">The object to be inspected</param>
- <exception cref="T:Xunit.Sdk.NullException">Thrown when the object reference is not null</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Same(System.Object,System.Object)">
- <summary>
- Verifies that two objects are the same instance.
- </summary>
- <param name="expected">The expected object instance</param>
- <param name="actual">The actual object instance</param>
- <exception cref="T:Xunit.Sdk.SameException">Thrown when the objects are not the same instance</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Throws``1(Xunit.Assert.ThrowsDelegate)">
- <summary>
- Verifies that the exact exception is thrown (and not a derived exception type).
- </summary>
- <typeparam name="T">The type of the exception expected to be thrown</typeparam>
- <param name="testCode">A delegate to the code to be tested</param>
- <returns>The exception that was thrown, when successful</returns>
- <exception cref="T:Xunit.Sdk.ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Throws``1(System.String,Xunit.Assert.ThrowsDelegate)">
- <summary>
- Verifies that the exact exception is thrown (and not a derived exception type).
- </summary>
- <typeparam name="T">The type of the exception expected to be thrown</typeparam>
- <param name="userMessage">The message to be shown if the test fails</param>
- <param name="testCode">A delegate to the code to be tested</param>
- <returns>The exception that was thrown, when successful</returns>
- <exception cref="T:Xunit.Sdk.ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.Throws(System.Type,Xunit.Assert.ThrowsDelegate)">
- <summary>
- Verifies that the exact exception is thrown (and not a derived exception type).
- </summary>
- <param name="exceptionType">The type of the exception expected to be thrown</param>
- <param name="testCode">A delegate to the code to be tested</param>
- <returns>The exception that was thrown, when successful</returns>
- <exception cref="T:Xunit.Sdk.ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.True(System.Boolean)">
- <summary>
- Verifies that an expression is true.
- </summary>
- <param name="condition">The condition to be inspected</param>
- <exception cref="T:Xunit.Sdk.TrueException">Thrown when the condition is false</exception>
- </member>
- <member name="M:Xunit.Extensions.Assertions.True(System.Boolean,System.String)">
- <summary>
- Verifies that an expression is true.
- </summary>
- <param name="condition">The condition to be inspected</param>
- <param name="userMessage">The message to be shown when the condition is false</param>
- <exception cref="T:Xunit.Sdk.TrueException">Thrown when the condition is false</exception>
- </member>
- <member name="T:Xunit.Extensions.TestClass">
- <summary>
- A class which can be derived from for test classes, which bring an overridable version
- of Assert (using the <see cref="T:Xunit.Extensions.Assertions"/> class.
- </summary>
- </member>
- <member name="P:Xunit.Extensions.TestClass.Assert">
- <summary>
- Gets a class which provides assertions.
- </summary>
- </member>
- <member name="T:Xunit.Extensions.AssumeIdentityAttribute">
- <summary>
- Apply this attribute to your test method to replace the
- <see cref="P:System.Threading.Thread.CurrentPrincipal"/> with another role.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.AssumeIdentityAttribute.#ctor(System.String)">
- <summary>
- Replaces the identity of the current thread with <paramref name="name"/>.
- </summary>
- <param name="name">The role's name</param>
- </member>
- <member name="M:Xunit.Extensions.AssumeIdentityAttribute.After(System.Reflection.MethodInfo)">
- <summary>
- Restores the original <see cref="P:System.Threading.Thread.CurrentPrincipal"/>.
- </summary>
- <param name="methodUnderTest">The method under test</param>
- </member>
- <member name="M:Xunit.Extensions.AssumeIdentityAttribute.Before(System.Reflection.MethodInfo)">
- <summary>
- Stores the current <see cref="P:System.Threading.Thread.CurrentPrincipal"/> and replaces it with
- a new role identified in constructor.
- </summary>
- <param name="methodUnderTest">The method under test</param>
- </member>
- <member name="T:Xunit.Extensions.AutoRollbackAttribute">
- <summary>
- Apply this attribute to your test method to automatically create a
- <see cref="T:System.Transactions.TransactionScope"/> that is rolled back when the test is
- finished.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.AutoRollbackAttribute.After(System.Reflection.MethodInfo)">
- <summary>
- Rolls back the transaction.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.AutoRollbackAttribute.Before(System.Reflection.MethodInfo)">
- <summary>
- Creates the transaction.
- </summary>
- </member>
- <member name="P:Xunit.Extensions.AutoRollbackAttribute.IsolationLevel">
- <summary>
- Gets or sets the isolation level of the transaction.
- Default value is <see cref="P:Xunit.Extensions.AutoRollbackAttribute.IsolationLevel"/>.Unspecified.
- </summary>
- </member>
- <member name="P:Xunit.Extensions.AutoRollbackAttribute.ScopeOption">
- <summary>
- Gets or sets the scope option for the transaction.
- Default value is <see cref="T:System.Transactions.TransactionScopeOption"/>.Required.
- </summary>
- </member>
- <member name="P:Xunit.Extensions.AutoRollbackAttribute.TimeoutInMS">
- <summary>
- Gets or sets the timeout of the transaction, in milliseconds.
- By default, the transaction will not timeout.
- </summary>
- </member>
- <member name="T:Xunit.Extensions.ClassDataAttribute">
- <summary>
- Provides a data source for a data theory, with the data coming from a class
- which must implement IEnumerable&lt;object[]&gt;.
- </summary>
- </member>
- <member name="T:Xunit.Extensions.DataAttribute">
- <summary>
- Abstract attribute which represents a data source for a data theory.
- Data source providers derive from this attribute and implement GetData
- to return the data for the theory.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.DataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
- <summary>
- Returns the data to be used to test the theory.
- </summary>
- <remarks>
- The <paramref name="parameterTypes"/> parameter is provided so that the
- test data can be converted to the destination parameter type when necessary.
- Generally, data should NOT be automatically converted, UNLESS the source data
- format does not have rich types (for example, all numbers in Excel spreadsheets
- are returned as <see cref="T:System.Double"/> even if they are integers). Derivers of
- this class should NOT throw exceptions for mismatched types or mismatched number
- of parameters; the test framework will throw these exceptions at the correct
- time.
- </remarks>
- <param name="methodUnderTest">The method that is being tested</param>
- <param name="parameterTypes">The types of the parameters for the test method</param>
- <returns>The theory data</returns>
- </member>
- <member name="M:Xunit.Extensions.ClassDataAttribute.#ctor(System.Type)">
- <summary>
- Initializes a new instance of the <see cref="T:Xunit.Extensions.ClassDataAttribute"/> class.
- </summary>
- <param name="class">The class that provides the data.</param>
- </member>
- <member name="M:Xunit.Extensions.ClassDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
- <inheritdoc/>
- </member>
- <member name="T:Xunit.Extensions.DataAdapterDataAttribute">
- <summary>
- Represents an implementation of <see cref="T:Xunit.Extensions.DataAttribute"/> which uses an
- instance of <see cref="T:System.Data.IDataAdapter"/> to get the data for a <see cref="T:Xunit.Extensions.TheoryAttribute"/>
- decorated test method.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.DataAdapterDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
- <inheritdoc/>
- </member>
- <member name="M:Xunit.Extensions.DataAdapterDataAttribute.ConvertParameter(System.Object,System.Type)">
- <summary>
- Converts a parameter to its destination parameter type, if necessary.
- </summary>
- <param name="parameter">The parameter value</param>
- <param name="parameterType">The destination parameter type (null if not known)</param>
- <returns>The converted parameter value</returns>
- </member>
- <member name="P:Xunit.Extensions.DataAdapterDataAttribute.DataAdapter">
- <summary>
- Gets the data adapter to be used to retrieve the test data.
- </summary>
- </member>
- <member name="T:Xunit.Extensions.InlineDataAttribute">
- <summary>
- Provides a data source for a data theory, with the data coming from inline values.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.InlineDataAttribute.#ctor(System.Object[])">
- <summary>
- Initializes a new instance of the <see cref="T:Xunit.Extensions.InlineDataAttribute"/> class.
- </summary>
- <param name="dataValues">The data values to pass to the theory</param>
- </member>
- <member name="M:Xunit.Extensions.InlineDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
- <summary>
- Returns the data to be used to test the theory.
- </summary>
- <param name="methodUnderTest">The method that is being tested</param>
- <param name="parameterTypes">The types of the parameters for the test method</param>
- <returns>The theory data, in table form</returns>
- </member>
- <member name="T:Xunit.Extensions.OleDbDataAttribute">
- <summary>
- Provides a data source for a data theory, with the data coming from an OLEDB connection.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.OleDbDataAttribute.#ctor(System.String,System.String)">
- <summary>
- Creates a new instance of <see cref="T:Xunit.Extensions.OleDbDataAttribute"/>.
- </summary>
- <param name="connectionString">The OLEDB connection string to the data</param>
- <param name="selectStatement">The SELECT statement used to return the data for the theory</param>
- </member>
- <member name="P:Xunit.Extensions.OleDbDataAttribute.DataAdapter">
- <inheritdoc/>
- </member>
- <member name="T:Xunit.Extensions.PropertyDataAttribute">
- <summary>
- Provides a data source for a data theory, with the data coming from a public static property on the test class.
- The property must return IEnumerable&lt;object[]&gt; with the test data.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.PropertyDataAttribute.#ctor(System.String)">
- <summary>
- Creates a new instance of <see cref="T:Xunit.Extensions.PropertyDataAttribute"/>/
- </summary>
- <param name="propertyName">The name of the public static property on the test class that will provide the test data</param>
- </member>
- <member name="M:Xunit.Extensions.PropertyDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
- <summary>
- Returns the data to be used to test the theory.
- </summary>
- <param name="methodUnderTest">The method that is being tested</param>
- <param name="parameterTypes">The types of the parameters for the test method</param>
- <returns>The theory data, in table form</returns>
- </member>
- <member name="T:Xunit.Extensions.SqlServerDataAttribute">
- <summary>
- Provides a data source for a data theory, with the data coming a Microsoft SQL Server.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.SqlServerDataAttribute.#ctor(System.String,System.String,System.String)">
- <summary>
- Creates a new instance of <see cref="T:Xunit.Extensions.SqlServerDataAttribute"/>, using a trusted connection.
- </summary>
- <param name="serverName">The server name of the Microsoft SQL Server</param>
- <param name="databaseName">The database name</param>
- <param name="selectStatement">The SQL SELECT statement to return the data for the data theory</param>
- </member>
- <member name="M:Xunit.Extensions.SqlServerDataAttribute.#ctor(System.String,System.String,System.String,System.String,System.String)">
- <summary>
- Creates a new instance of <see cref="T:Xunit.Extensions.SqlServerDataAttribute"/>, using the provided username and password.
- </summary>
- <param name="serverName">The server name of the Microsoft SQL Server</param>
- <param name="databaseName">The database name</param>
- <param name="username">The username for the server</param>
- <param name="password">The password for the server</param>
- <param name="selectStatement">The SQL SELECT statement to return the data for the data theory</param>
- </member>
- <member name="T:Xunit.Extensions.ExcelDataAttribute">
- <summary>
- Provides a data source for a data theory, with the data coming a Microsoft Excel (.xls) spreadsheet.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.ExcelDataAttribute.#ctor(System.String,System.String)">
- <summary>
- Creates a new instance of <see cref="T:Xunit.Extensions.ExcelDataAttribute"/>.
- </summary>
- <param name="filename">The filename of the XLS spreadsheet file; if the filename provided
- is relative, then it is relative to the location of xunit.extensions.dll.</param>
- <param name="selectStatement">The SELECT statement that returns the data for the theory</param>
- </member>
- <member name="M:Xunit.Extensions.ExcelDataAttribute.ConvertParameter(System.Object,System.Type)">
- <inheritdoc/>
- </member>
- <member name="T:Xunit.Extensions.Clock">
- <summary>
- A wrapper around the static operations on <see cref="T:System.DateTime"/> which allows time
- to be frozen using the <see cref="T:Xunit.Extensions.FreezeClockAttribute"/>. The clock begins in the
- thawed state; that is, calls to <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and
- <see cref="P:Xunit.Extensions.Clock.UtcNow"/> return current (non-frozen) values.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.Clock.Freeze">
- <summary>
- Freezes the clock with the current time.
- Until <see cref="M:Xunit.Extensions.Clock.Thaw"/> is called, all calls to <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and
- <see cref="P:Xunit.Extensions.Clock.UtcNow"/> will return the exact same values.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.Clock.FreezeLocal(System.DateTime)">
- <summary>
- Freezes the clock with the given date and time, considered to be local time.
- Until <see cref="M:Xunit.Extensions.Clock.Thaw"/> is called, all calls to <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and
- <see cref="P:Xunit.Extensions.Clock.UtcNow"/> will return the exact same values.
- </summary>
- <param name="localDateTime">The local date and time to freeze to</param>
- </member>
- <member name="M:Xunit.Extensions.Clock.FreezeUtc(System.DateTime)">
- <summary>
- Freezes the clock with the given date and time, considered to be Coordinated Universal Time (UTC).
- Until <see cref="M:Xunit.Extensions.Clock.Thaw"/> is called, all calls to <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and
- <see cref="P:Xunit.Extensions.Clock.UtcNow"/> will return the exact same values.
- </summary>
- <param name="utcDateTime">The UTC date and time to freeze to</param>
- </member>
- <member name="M:Xunit.Extensions.Clock.Thaw">
- <summary>
- Thaws the clock so that <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and <see cref="P:Xunit.Extensions.Clock.UtcNow"/>
- return normal values.
- </summary>
- </member>
- <member name="P:Xunit.Extensions.Clock.Now">
- <summary>
- Gets a <see cref="T:System.DateTime"/> object that is set to the current date and time on this computer,
- expressed as the local time.
- </summary>
- </member>
- <member name="P:Xunit.Extensions.Clock.Today">
- <summary>
- Gets the current date.
- </summary>
- </member>
- <member name="P:Xunit.Extensions.Clock.UtcNow">
- <summary>
- Gets a <see cref="T:System.DateTime"/> object that is set to the current date and time on this computer,
- expressed as the Coordinated Universal Time (UTC).
- </summary>
- </member>
- <member name="T:Xunit.Extensions.FreezeClockAttribute">
- <summary>
- Apply this attribute to your test method to freeze the time represented by the
- <see cref="T:Xunit.Extensions.Clock"/> class.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.FreezeClockAttribute.#ctor">
- <summary>
- Freeze the clock with the current date and time.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32)">
- <summary>
- Freeze the clock with the given date, considered to be local time.
- </summary>
- <param name="year">The frozen year</param>
- <param name="month">The frozen month</param>
- <param name="day">The frozen day</param>
- </member>
- <member name="M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
- <summary>
- Freeze the clock with the given date and time, considered to be in local time.
- </summary>
- <param name="year">The frozen year</param>
- <param name="month">The frozen month</param>
- <param name="day">The frozen day</param>
- <param name="hour">The frozen hour</param>
- <param name="minute">The frozen minute</param>
- <param name="second">The frozen second</param>
- </member>
- <member name="M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.DateTimeKind)">
- <summary>
- Freeze the clock with the given date and time, with the given kind of time.
- </summary>
- <param name="year">The frozen year</param>
- <param name="month">The frozen month</param>
- <param name="day">The frozen day</param>
- <param name="hour">The frozen hour</param>
- <param name="minute">The frozen minute</param>
- <param name="second">The frozen second</param>
- <param name="kind">The frozen time kind</param>
- </member>
- <member name="M:Xunit.Extensions.FreezeClockAttribute.After(System.Reflection.MethodInfo)">
- <summary>
- Thaws the clock.
- </summary>
- <param name="methodUnderTest">The method under test</param>
- </member>
- <member name="M:Xunit.Extensions.FreezeClockAttribute.Before(System.Reflection.MethodInfo)">
- <summary>
- Freezes the clock.
- </summary>
- <param name="methodUnderTest">The method under test</param>
- </member>
- <member name="T:Xunit.Extensions.TheoryAttribute">
- <summary>
- Marks a test method as being a data theory. Data theories are tests which are fed
- various bits of data from a data source, mapping to parameters on the test method.
- If the data source contains multiple rows, then the test method is executed
- multiple times (once with each data row).
- </summary>
- </member>
- <member name="M:Xunit.Extensions.TheoryAttribute.EnumerateTestCommands(Xunit.Sdk.IMethodInfo)">
- <summary>
- Creates instances of <see cref="T:Xunit.Extensions.TheoryCommand"/> which represent individual intended
- invocations of the test method, one per data row in the data source.
- </summary>
- <param name="method">The method under test</param>
- <returns>An enumerator through the desired test method invocations</returns>
- </member>
- <member name="T:Xunit.Extensions.TheoryCommand">
- <summary>
- Represents a single invocation of a data theory test method.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.TheoryCommand.#ctor(Xunit.Sdk.IMethodInfo,System.String,System.Object[])">
- <summary>
- Creates a new instance of <see cref="T:Xunit.Extensions.TheoryCommand"/>.
- </summary>
- <param name="testMethod">The method under test</param>
- <param name="displayName">The display name of the method under test</param>
- <param name="parameters">The parameters to be passed to the test method</param>
- </member>
- <member name="M:Xunit.Extensions.TheoryCommand.Execute(System.Object)">
- <inheritdoc/>
- </member>
- <member name="P:Xunit.Extensions.TheoryCommand.Parameters">
- <summary>
- Gets the parameter values that are passed to the test method.
- </summary>
- </member>
- <member name="T:Xunit.Extensions.TraceAttribute">
- <summary>
- Apply to a test method to trace the method begin and end.
- </summary>
- </member>
- <member name="M:Xunit.Extensions.TraceAttribute.Before(System.Reflection.MethodInfo)">
- <summary>
- This method is called before the test method is executed.
- </summary>
- <param name="methodUnderTest">The method under test</param>
- </member>
- <member name="M:Xunit.Extensions.TraceAttribute.After(System.Reflection.MethodInfo)">
- <summary>
- This method is called after the test method is executed.
- </summary>
- <param name="methodUnderTest">The method under test</param>
- </member>
- </members>
-</doc>
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>xunit.extensions</name>
+ </assembly>
+ <members>
+ <member name="T:Xunit.Extensions.Assertions">
+ <summary>
+ A wrapper for Assert which is used by <see cref="T:Xunit.Extensions.TestClass"/>.
+ </summary>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0})">
+ <summary>
+ Verifies that a collection contains a given object.
+ </summary>
+ <typeparam name="T">The type of the object to be verified</typeparam>
+ <param name="expected">The object expected to be in the collection</param>
+ <param name="collection">The collection to be inspected</param>
+ <exception cref="T:Xunit.Sdk.ContainsException">Thrown when the object is not present in the collection</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">
+ <summary>
+ Verifies that a collection contains a given object, using a comparer.
+ </summary>
+ <typeparam name="T">The type of the object to be verified</typeparam>
+ <param name="expected">The object expected to be in the collection</param>
+ <param name="collection">The collection to be inspected</param>
+ <param name="comparer">The comparer used to equate objects in the collection with the expected object</param>
+ <exception cref="T:Xunit.Sdk.ContainsException">Thrown when the object is not present in the collection</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Contains(System.String,System.String)">
+ <summary>
+ Verifies that a string contains a given sub-string, using the current culture.
+ </summary>
+ <param name="expectedSubString">The sub-string expected to be in the string</param>
+ <param name="actualString">The string to be inspected</param>
+ <exception cref="T:Xunit.Sdk.ContainsException">Thrown when the sub-string is not present inside the string</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Contains(System.String,System.String,System.StringComparison)">
+ <summary>
+ Verifies that a string contains a given sub-string, using the given comparison type.
+ </summary>
+ <param name="expectedSubString">The sub-string expected to be in the string</param>
+ <param name="actualString">The string to be inspected</param>
+ <param name="comparisonType">The type of string comparison to perform</param>
+ <exception cref="T:Xunit.Sdk.ContainsException">Thrown when the sub-string is not present inside the string</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0})">
+ <summary>
+ Verifies that a collection does not contain a given object.
+ </summary>
+ <typeparam name="T">The type of the object to be compared</typeparam>
+ <param name="expected">The object that is expected not to be in the collection</param>
+ <param name="collection">The collection to be inspected</param>
+ <exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the object is present inside the container</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">
+ <summary>
+ Verifies that a collection does not contain a given object, using a comparer.
+ </summary>
+ <typeparam name="T">The type of the object to be compared</typeparam>
+ <param name="expected">The object that is expected not to be in the collection</param>
+ <param name="collection">The collection to be inspected</param>
+ <param name="comparer">The comparer used to equate objects in the collection with the expected object</param>
+ <exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the object is present inside the container</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.DoesNotContain(System.String,System.String)">
+ <summary>
+ Verifies that a string does not contain a given sub-string, using the current culture.
+ </summary>
+ <param name="expectedSubString">The sub-string which is expected not to be in the string</param>
+ <param name="actualString">The string to be inspected</param>
+ <exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the sub-string is present inside the string</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.DoesNotContain(System.String,System.String,System.StringComparison)">
+ <summary>
+ Verifies that a string does not contain a given sub-string, using the current culture.
+ </summary>
+ <param name="expectedSubString">The sub-string which is expected not to be in the string</param>
+ <param name="actualString">The string to be inspected</param>
+ <param name="comparisonType">The type of string comparison to perform</param>
+ <exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the sub-string is present inside the given string</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.DoesNotThrow(Xunit.Assert.ThrowsDelegate)">
+ <summary>
+ Verifies that a block of code does not throw any exceptions.
+ </summary>
+ <param name="testCode">A delegate to the code to be tested</param>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Empty(System.Collections.IEnumerable)">
+ <summary>
+ Verifies that a collection is empty.
+ </summary>
+ <param name="collection">The collection to be inspected</param>
+ <exception cref="T:System.ArgumentNullException">Thrown when the collection is null</exception>
+ <exception cref="T:Xunit.Sdk.EmptyException">Thrown when the collection is not empty</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Equal``1(``0,``0)">
+ <summary>
+ Verifies that two objects are equal, using a default comparer.
+ </summary>
+ <typeparam name="T">The type of the objects to be compared</typeparam>
+ <param name="expected">The expected value</param>
+ <param name="actual">The value to be compared against</param>
+ <exception cref="T:Xunit.Sdk.EqualException">Thrown when the objects are not equal</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Equal``1(``0,``0,System.Collections.Generic.IComparer{``0})">
+ <summary>
+ Verifies that two objects are equal, using a custom comparer.
+ </summary>
+ <typeparam name="T">The type of the objects to be compared</typeparam>
+ <param name="expected">The expected value</param>
+ <param name="actual">The value to be compared against</param>
+ <param name="comparer">The comparer used to compare the two objects</param>
+ <exception cref="T:Xunit.Sdk.EqualException">Thrown when the objects are not equal</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Equals(System.Object)">
+ <summary>Do not call this method. Call Assert.Equal() instead.</summary>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.False(System.Boolean)">
+ <summary>
+ Verifies that the condition is false.
+ </summary>
+ <param name="condition">The condition to be tested</param>
+ <exception cref="T:Xunit.Sdk.FalseException">Thrown if the condition is not false</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.False(System.Boolean,System.String)">
+ <summary>
+ Verifies that the condition is false.
+ </summary>
+ <param name="condition">The condition to be tested</param>
+ <param name="userMessage">The message to show when the condition is not false</param>
+ <exception cref="T:Xunit.Sdk.FalseException">Thrown if the condition is not false</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.GetHashCode">
+ <summary>
+ Serves as a hash function for a particular type.
+ </summary>
+ <returns>A hash code for the current <see cref="T:System.Object"/>.</returns>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.InRange``1(``0,``0,``0)">
+ <summary>
+ Verifies that a value is within a given range.
+ </summary>
+ <typeparam name="T">The type of the value to be compared</typeparam>
+ <param name="actual">The actual value to be evaluated</param>
+ <param name="low">The (inclusive) low value of the range</param>
+ <param name="high">The (inclusive) high value of the range</param>
+ <exception cref="T:Xunit.Sdk.InRangeException">Thrown when the value is not in the given range</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.InRange``1(``0,``0,``0,System.Collections.Generic.IComparer{``0})">
+ <summary>
+ Verifies that a value is within a given range, using a comparer.
+ </summary>
+ <typeparam name="T">The type of the value to be compared</typeparam>
+ <param name="actual">The actual value to be evaluated</param>
+ <param name="low">The (inclusive) low value of the range</param>
+ <param name="high">The (inclusive) high value of the range</param>
+ <param name="comparer">The comparer used to evaluate the value's range</param>
+ <exception cref="T:Xunit.Sdk.InRangeException">Thrown when the value is not in the given range</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.IsNotType``1(System.Object)">
+ <summary>
+ Verifies that an object is not exactly the given type.
+ </summary>
+ <typeparam name="T">The type the object should not be</typeparam>
+ <param name="object">The object to be evaluated</param>
+ <exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is the given type</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.IsNotType(System.Type,System.Object)">
+ <summary>
+ Verifies that an object is not exactly the given type.
+ </summary>
+ <param name="expectedType">The type the object should not be</param>
+ <param name="object">The object to be evaluated</param>
+ <exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is the given type</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.IsType``1(System.Object)">
+ <summary>
+ Verifies that an object is exactly the given type (and not a derived type).
+ </summary>
+ <typeparam name="T">The type the object should be</typeparam>
+ <param name="object">The object to be evaluated</param>
+ <returns>The object, casted to type T when successful</returns>
+ <exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is not the given type</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.IsType(System.Type,System.Object)">
+ <summary>
+ Verifies that an object is exactly the given type (and not a derived type).
+ </summary>
+ <param name="expectedType">The type the object should be</param>
+ <param name="object">The object to be evaluated</param>
+ <exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is not the given type</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.NotEmpty(System.Collections.IEnumerable)">
+ <summary>
+ Verifies that a collection is not empty.
+ </summary>
+ <param name="collection">The collection to be inspected</param>
+ <exception cref="T:System.ArgumentNullException">Thrown when a null collection is passed</exception>
+ <exception cref="T:Xunit.Sdk.NotEmptyException">Thrown when the collection is empty</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0)">
+ <summary>
+ Verifies that two objects are not equal, using a default comparer.
+ </summary>
+ <typeparam name="T">The type of the objects to be compared</typeparam>
+ <param name="expected">The expected object</param>
+ <param name="actual">The actual object</param>
+ <exception cref="T:Xunit.Sdk.NotEqualException">Thrown when the objects are equal</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0,System.Collections.Generic.IComparer{``0})">
+ <summary>
+ Verifies that two objects are not equal, using a custom comparer.
+ </summary>
+ <typeparam name="T">The type of the objects to be compared</typeparam>
+ <param name="expected">The expected object</param>
+ <param name="actual">The actual object</param>
+ <param name="comparer">The comparer used to examine the objects</param>
+ <exception cref="T:Xunit.Sdk.NotEqualException">Thrown when the objects are equal</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.NotInRange``1(``0,``0,``0)">
+ <summary>
+ Verifies that a value is not within a given range, using the default comparer.
+ </summary>
+ <typeparam name="T">The type of the value to be compared</typeparam>
+ <param name="actual">The actual value to be evaluated</param>
+ <param name="low">The (inclusive) low value of the range</param>
+ <param name="high">The (inclusive) high value of the range</param>
+ <exception cref="T:Xunit.Sdk.NotInRangeException">Thrown when the value is in the given range</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.NotInRange``1(``0,``0,``0,System.Collections.Generic.IComparer{``0})">
+ <summary>
+ Verifies that a value is not within a given range, using a comparer.
+ </summary>
+ <typeparam name="T">The type of the value to be compared</typeparam>
+ <param name="actual">The actual value to be evaluated</param>
+ <param name="low">The (inclusive) low value of the range</param>
+ <param name="high">The (inclusive) high value of the range</param>
+ <param name="comparer">The comparer used to evaluate the value's range</param>
+ <exception cref="T:Xunit.Sdk.NotInRangeException">Thrown when the value is in the given range</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.NotNull(System.Object)">
+ <summary>
+ Verifies that an object reference is not null.
+ </summary>
+ <param name="object">The object to be validated</param>
+ <exception cref="T:Xunit.Sdk.NotNullException">Thrown when the object is not null</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.NotSame(System.Object,System.Object)">
+ <summary>
+ Verifies that two objects are not the same instance.
+ </summary>
+ <param name="expected">The expected object instance</param>
+ <param name="actual">The actual object instance</param>
+ <exception cref="T:Xunit.Sdk.NotSameException">Thrown when the objects are the same instance</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Null(System.Object)">
+ <summary>
+ Verifies that an object reference is null.
+ </summary>
+ <param name="object">The object to be inspected</param>
+ <exception cref="T:Xunit.Sdk.NullException">Thrown when the object reference is not null</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Same(System.Object,System.Object)">
+ <summary>
+ Verifies that two objects are the same instance.
+ </summary>
+ <param name="expected">The expected object instance</param>
+ <param name="actual">The actual object instance</param>
+ <exception cref="T:Xunit.Sdk.SameException">Thrown when the objects are not the same instance</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Throws``1(Xunit.Assert.ThrowsDelegate)">
+ <summary>
+ Verifies that the exact exception is thrown (and not a derived exception type).
+ </summary>
+ <typeparam name="T">The type of the exception expected to be thrown</typeparam>
+ <param name="testCode">A delegate to the code to be tested</param>
+ <returns>The exception that was thrown, when successful</returns>
+ <exception cref="T:Xunit.Sdk.ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
+ </member>
+ <member name="M:Xunit.Extensions.Assertions.Throws``1(System.String,Xunit.Assert.ThrowsDelegate)">
+ <summary>
+ Verifies that the exact exception is thrown (and not a derived exception type).
+ </summary>