/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *                                                                       *
 *   TestCaseExtension Library, Copyright 2015 Bryan Chadwick            *
 *                                                                       *
 *   FILE: .\TestCase.cs                                                  *
 *                                                                       *
 *   This file is part of TestCaseExtension.                             *
 *                                                                       *
 *   TestCaseExtension is free software: you can redistribute it and/or  *
 *   modify it under the terms of the GNU General Public License         *
 *   as published by the Free Software Foundation, either version        *
 *   3 of the License, or (at your option) any later version.            *
 *                                                                       *
 *   TestCaseExtension is distributed in the hope that it will be useful,*
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of      *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       *
 *   GNU General Public License for more details.                        *
 *                                                                       *
 *   You should have received a copy of the GNU General Public License   *
 *   along with TestCaseExtension.                                       *
 *   If not, see <http://www.gnu.org/licenses/>.                         *
 *                                                                       *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace TestCaseExtension
{
    /// <summary>Marks a class as a test class that contains <c>TestMethod</c>s that may have <c>TestCase</c> or
    ///        <c>TestCaseSource</c> attributes applied.  Use in place of the MSTest <c>TestClass</c> attribute
    ///        on the test class.</summary>
    [Serializable]
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
    public class TestCaseClassAttribute : TestClassExtensionAttribute
    {
        private static readonly Uri uri = new Uri("urn:TestCaseClassAttribute");

        /// <summary>The Unique ID of the TestCaseClass extension</summary>
        public override Uri ExtensionId
        {
            get { return uri; }
        }

        /// <summary>Gets the execution instance for the TestCasClass extension</summary>
        public override TestExtensionExecution GetExecution()
        {
            return new TestCaseExecution();
        }
    }
}