2008-02-17 01:16:40 +00:00
|
|
|
/*
|
2008-03-18 05:16:43 +00:00
|
|
|
* Copyright (c) Contributors, http://opensimulator.org/
|
|
|
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions are met:
|
|
|
|
* * Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
2009-06-01 06:37:14 +00:00
|
|
|
* * Neither the name of the OpenSimulator Project nor the
|
2008-03-18 05:16:43 +00:00
|
|
|
* names of its contributors may be used to endorse or promote products
|
|
|
|
* derived from this software without specific prior written permission.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
|
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
|
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
|
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
|
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
|
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
|
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*/
|
2008-02-17 01:16:40 +00:00
|
|
|
|
2008-02-08 18:18:56 +00:00
|
|
|
using System;
|
2009-05-07 19:07:08 +00:00
|
|
|
using System.Diagnostics;
|
2012-04-30 17:44:22 +00:00
|
|
|
using System.IO;
|
|
|
|
using System.Text;
|
2011-03-09 23:25:24 +00:00
|
|
|
using NUnit.Framework;
|
2011-07-04 20:35:15 +00:00
|
|
|
using OpenMetaverse;
|
2008-02-08 18:18:56 +00:00
|
|
|
|
|
|
|
namespace OpenSim.Tests.Common
|
|
|
|
{
|
2011-08-05 23:31:03 +00:00
|
|
|
public class TestHelpers
|
2008-02-08 18:18:56 +00:00
|
|
|
{
|
2012-04-30 17:44:22 +00:00
|
|
|
private static Stream EnableLoggingConfigStream
|
|
|
|
= new MemoryStream(
|
|
|
|
Encoding.UTF8.GetBytes(
|
|
|
|
@"<log4net>
|
|
|
|
<!-- A1 is set to be a ConsoleAppender -->
|
|
|
|
<appender name=""A1"" type=""log4net.Appender.ConsoleAppender"">
|
|
|
|
|
|
|
|
<!-- A1 uses PatternLayout -->
|
|
|
|
<layout type=""log4net.Layout.PatternLayout"">
|
|
|
|
<!-- Print the date in ISO 8601 format -->
|
2012-05-01 22:14:12 +00:00
|
|
|
<!-- <conversionPattern value=""%date [%thread] %-5level %logger %ndc - %message%newline"" /> -->
|
|
|
|
<conversionPattern value=""%date %message%newline"" />
|
2012-04-30 17:44:22 +00:00
|
|
|
</layout>
|
|
|
|
</appender>
|
|
|
|
|
|
|
|
<!-- Set root logger level to DEBUG and its only appender to A1 -->
|
|
|
|
<root>
|
|
|
|
<level value=""DEBUG"" />
|
|
|
|
<appender-ref ref=""A1"" />
|
|
|
|
</root>
|
|
|
|
</log4net>"));
|
|
|
|
|
2012-06-26 23:00:49 +00:00
|
|
|
private static MemoryStream DisableLoggingConfigStream
|
2012-04-30 17:44:22 +00:00
|
|
|
= new MemoryStream(
|
|
|
|
Encoding.UTF8.GetBytes(
|
2012-05-17 00:27:59 +00:00
|
|
|
// "<?xml version=\"1.0\" encoding=\"utf-8\" ?><configuration><log4net><root><level value=\"OFF\"/><appender-ref ref=\"A1\"/></root></log4net></configuration>"));
|
2012-04-30 17:44:22 +00:00
|
|
|
//"<?xml version=\"1.0\" encoding=\"utf-8\" ?><configuration><log4net><root><level value=\"OFF\"/></root></log4net></configuration>")));
|
2012-05-01 22:14:12 +00:00
|
|
|
// "<configuration><log4net><root><level value=\"OFF\"/></root></log4net></configuration>"));
|
|
|
|
// "<configuration><log4net><root></root></log4net></configuration>")));
|
|
|
|
// "<configuration><log4net><root/></log4net></configuration>"));
|
2012-04-30 17:44:22 +00:00
|
|
|
"<log4net><root/></log4net>"));
|
|
|
|
|
2008-02-08 18:18:56 +00:00
|
|
|
public static bool AssertThisDelegateCausesArgumentException(TestDelegate d)
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
d();
|
|
|
|
}
|
2008-03-03 09:54:39 +00:00
|
|
|
catch(ArgumentException)
|
2008-02-08 18:18:56 +00:00
|
|
|
{
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
2009-05-29 16:11:33 +00:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// A debugging method that can be used to print out which test method you are in
|
|
|
|
/// </summary>
|
2009-05-07 19:07:08 +00:00
|
|
|
public static void InMethod()
|
|
|
|
{
|
|
|
|
StackTrace stackTrace = new StackTrace();
|
2009-11-05 19:32:24 +00:00
|
|
|
Console.WriteLine();
|
2009-08-05 18:38:45 +00:00
|
|
|
Console.WriteLine("===> In Test Method : {0} <===", stackTrace.GetFrame(1).GetMethod().Name);
|
2009-05-07 19:07:08 +00:00
|
|
|
}
|
2011-07-04 20:35:15 +00:00
|
|
|
|
2012-04-30 17:44:22 +00:00
|
|
|
public static void EnableLogging()
|
|
|
|
{
|
|
|
|
log4net.Config.XmlConfigurator.Configure(EnableLoggingConfigStream);
|
2012-08-29 01:01:43 +00:00
|
|
|
EnableLoggingConfigStream.Position = 0;
|
2012-04-30 17:44:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Disable logging whilst running the tests.
|
|
|
|
/// </summary>
|
2012-05-17 00:34:04 +00:00
|
|
|
/// <remarks>
|
|
|
|
/// Remember, if a regression test throws an exception before completing this will not be invoked if it's at
|
|
|
|
/// the end of the test.
|
|
|
|
/// TODO: Always invoke this after every test - probably need to make all test cases inherit from a common
|
|
|
|
/// TestCase class where this can be done.
|
|
|
|
/// </remarks>
|
2012-04-30 17:44:22 +00:00
|
|
|
public static void DisableLogging()
|
|
|
|
{
|
|
|
|
log4net.Config.XmlConfigurator.Configure(DisableLoggingConfigStream);
|
2012-06-26 23:00:49 +00:00
|
|
|
DisableLoggingConfigStream.Position = 0;
|
2012-04-30 17:44:22 +00:00
|
|
|
}
|
|
|
|
|
2011-07-04 20:35:15 +00:00
|
|
|
/// <summary>
|
|
|
|
/// Parse tail section into full UUID.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="tail"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
public static UUID ParseTail(int tail)
|
|
|
|
{
|
|
|
|
return new UUID(string.Format("00000000-0000-0000-0000-{0:X12}", tail));
|
|
|
|
}
|
2008-02-08 18:18:56 +00:00
|
|
|
}
|
|
|
|
}
|