Click here to Skip to main content
15,897,891 members
Articles / Desktop Programming / Windows Forms

Windows Services Made Simple

Rate me:
Please Sign up or sign in to vote.
4.62/5 (10 votes)
27 Jun 2007CPOL10 min read 94.6K   6.9K   69  
Describes how to build a Windows Service using the Pegasus Library.
using System;

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Pegasus.Diagnostics;

namespace Pegasus.UnitTests.Diagnostics
{
	/// <summary>
	/// Unit test for the ParamCode static object
	/// </summary>
	[TestClass]
	public class ParamCodeTest
	{
		// Local Instance Values
		private TestContext m_testContextInstance;
		private string m_messageWithParams;

		// Local Const Values
		private const string ParameterName = "ParameterName";
		private const string TestFailedExceptionTest = "Assert failed to act correctly";
		private const string MessageFormat = "TheMessage {0} {1} {2}";
		private const string MessageArg1 = "TheString";
		private const int MessageArg2 = 123;
		private readonly Guid MessageArg3 = Guid.Empty;

		/// <summary>
		/// Initializes a new instance of the <see cref="T:ParamCodeTest"/> class.
		/// </summary>
		public ParamCodeTest()
		{
			m_messageWithParams = string.Format( MessageFormat, MessageArg1, MessageArg2, MessageArg3 );
		}

		/// <summary>
		/// Gets or sets the test context which provides information about and 
		/// functionality for the current test run.
		/// </summary>
		/// <value>The test context.</value>
		public TestContext TestContext
		{
			get
			{
				return m_testContextInstance;
			}
			set
			{
				m_testContextInstance = value;
			}
		}

		/// <summary>
		/// Test the assert methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertTest1()
		{
			// Assert passes
			ParamCode.Assert( true, ParameterName );

			try
			{
				// Assert fails
				ParamCode.Assert( false, ParameterName );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertTest1" ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}

		/// <summary>
		/// Test the assert methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertTest2()
		{
			// Assert passes
			ParamCode.Assert( true, ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );

			try
			{
				// Assert fails
				ParamCode.Assert( false, ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertTest2" ) &&
					e.Message.Contains( m_messageWithParams ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}

		/// <summary>
		/// Test the assert null methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertNullTest1()
		{
			// Assert passes
			ParamCode.AssertNull( null, ParameterName );

			try
			{
				// Assert fails
				ParamCode.AssertNull( new object(), ParameterName );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertNullTest1" ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}

		/// <summary>
		/// Test the assert null methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertNullTest2()
		{
			// Assert passes
			ParamCode.AssertNull( null, ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );

			try
			{
				// Assert fails
				ParamCode.AssertNull( new object(), ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertNullTest2" ) &&
					e.Message.Contains( m_messageWithParams ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}

		/// <summary>
		/// Test the assert not null methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertNotNullTest1()
		{
			// Assert passes
			ParamCode.AssertNotNull( new object(), ParameterName );

			try
			{
				// Assert fails
				ParamCode.AssertNotNull( null, ParameterName );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertNotNullTest1" ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}

		/// <summary>
		/// Test the assert not null methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertNotNullTest2()
		{
			// Assert passes
			ParamCode.AssertNotNull( new object(), ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );

			try
			{
				// Assert fails
				ParamCode.AssertNotNull( null, ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertNotNullTest2" ) &&
					e.Message.Contains( m_messageWithParams ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}

		/// <summary>
		/// Test the assert not empty (string) null methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertNotEmptyStringTest1()
		{
			// Assert passes
			ParamCode.AssertNotEmpty( "test", ParameterName );

			try
			{
				// Assert fails
				ParamCode.AssertNotEmpty( string.Empty, ParameterName );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertNotEmptyStringTest1" ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}

		/// <summary>
		/// Test the assert not empty (string) null methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertNotEmptyStringTest2()
		{
			// Assert passes
			ParamCode.AssertNotEmpty( "test", ParameterName );

			try
			{
				// Assert fails
				string test = null;
				ParamCode.AssertNotEmpty( test, ParameterName );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertNotEmptyStringTest2" ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}


		/// <summary>
		/// Test the assert not empty (string) null methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertNotEmptyStringTest3()
		{
			// Assert passes
			ParamCode.AssertNotEmpty( "test", ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );

			try
			{
				// Assert fails
				ParamCode.AssertNotEmpty( string.Empty, ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertNotEmptyStringTest3" ) &&
					e.Message.Contains( m_messageWithParams ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}

		/// <summary>
		/// Test the assert not empty (string) null methods.
		/// </summary>
		[TestMethod]
		public void ParamCodeAssertNotEmptyStringTest4()
		{
			// Assert passes
			ParamCode.AssertNotEmpty( "test", ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );

			try
			{
				// Assert fails
				string test = null;
				ParamCode.AssertNotEmpty( test, ParameterName, MessageFormat, MessageArg1, MessageArg2, MessageArg3 );
			}
			catch( ArgumentException e )
			{
				if( e.Message.Contains( ParameterName ) &&
					e.Message.Contains( "ParamCodeAssertNotEmptyStringTest4" ) &&
					e.Message.Contains( m_messageWithParams ) )
				{
					return;
				}
			}

			throw new Exception( TestFailedExceptionTest );
		}
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions