diff --git a/.gitignore b/.gitignore index 507e549a..b48bc582 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,7 @@ deploy-to-ec2* *.orig Thumbs.db src/Carnac.sln.ide/ + +# Cake - Uncomment if you are using it +tools/** +!tools/packages.config \ No newline at end of file diff --git a/README.md b/README.md index b80d62e8..a97108ab 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,16 @@ You can install the latest version of Carnac via [Chocolatey](https://chocolatey cinst carnac ``` -Alternatively, you can grab the latest zip file from [here](https://github.com/Code52/carnac/releases/latest) and unpack it. +Alternatively, you can grab the latest zip file from [here](https://github.com/Code52/carnac/releases/latest), unpack it and run `Setup.exe`. **Note:** Carnac requires .NET 4.5.2 to work - you can install that from [here](https://www.microsoft.com/en-au/download/details.aspx?id=42643) if you don't have it already. +### Updating + +We use `Squirrel.Windows` to update your `carnac` application. + +The application will check for updates in the background, if a new version has been released, it will automatically install the new version and once you restart `carnac` you will be up-to-date. + ### Usage ** Enabling silent mode ** diff --git a/appveyor.yml b/appveyor.yml index 48d5fd24..f3513a97 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 2.0.0.{build} +version: 2.1.{build} configuration: Release skip_branch_with_pr: true skip_tags: true @@ -11,16 +11,20 @@ assembly_info: environment: Version: $(APPVEYOR_BUILD_VERSION) GithubRepo: $(APPVEYOR_REPO_NAME) + GithubAuthToken: + secure: tvr7i0kJpT3SAdYG037M6zU1g6FYXHAUUaseqBTUzasqsUo6mumdcW+huf5/351p build_script: -- build.cmd Release +- cmd: PowerShell -Version 2.0 .\build.ps1 -Configuration Release -Experimental -ScriptArgs '--packageversion="%APPVEYOR_BUILD_VERSION%" --authtoken="%GithubAuthToken%"' test: assemblies: - '**\Carnac.Tests.dll' artifacts: -- path: deploy\*.nupkg +- path: deploy\Chocolatey\*.nupkg name: ChocoPackage -- path: deploy\*.zip +- path: deploy\GitHub\*.zip name: ZipPackage +- path: deploy\Squirrel\Releases\* + name: SquirrelPackage deploy: - provider: GitHub auth_token: @@ -29,6 +33,13 @@ deploy: draft: false on: branch: master +- provider: GitHub + auth_token: + secure: tvr7i0kJpT3SAdYG037M6zU1g6FYXHAUUaseqBTUzasqsUo6mumdcW+huf5/351p + artifact: SquirrelPackage + draft: false + on: + branch: master - provider: NuGet server: https://chocolatey.org/ api_key: diff --git a/build.cake b/build.cake new file mode 100644 index 00000000..f3198763 --- /dev/null +++ b/build.cake @@ -0,0 +1,161 @@ +#tool "nuget:?package=xunit.runners&version=1.9.2"; +#tool "nuget:?package=Squirrel.Windows"; + +#addin Cake.FileHelpers +#addin Cake.Squirrel + +var target = Argument("target", "Default"); +var configuration = Argument("configuration", "Debug"); +var version = Argument("packageversion", "1.0.0"); +var githubRepo = Argument("githubrepo", "Code52/carnac"); +var githubAuthToken = Argument("authtoken", ""); + +var githubRepoUrl = $"https://github.com/{githubRepo}"; +var solutionFile = "./src/Carnac.sln"; +var buildDir = Directory("./src/Carnac/bin") + Directory(configuration); +var toolsDir = Directory("./tools"); +var deployDir = Directory("./deploy"); +var zipFileHash = ""; + +var squirrelDeployDir = deployDir + Directory("Squirrel"); +var squirrelReleaseDir = squirrelDeployDir + Directory("Releases"); + +Task("Clean") + .Does(() => + { + Func excludeSquirrelDir = + fileSystemInfo => !(fileSystemInfo.Path.FullPath.IndexOf("Squirrel", StringComparison.OrdinalIgnoreCase) >= 0); + + CleanDirectory(buildDir); + CleanDirectory(deployDir, excludeSquirrelDir); + }); + +Task("Restore-NuGet-Packages") + .IsDependentOn("Clean") + .Does(() => + { + NuGetRestore(solutionFile); + }); + +Task("Build") + .IsDependentOn("Restore-NuGet-Packages") + .Does(() => + { + MSBuild(solutionFile, settings => + settings.SetConfiguration(configuration)); + }); + +Task("Run-Unit-Tests") + .IsDependentOn("Build") + .Does(() => + { + XUnit($"./src/Carnac.Tests/bin/{configuration}/*.Tests.dll"); + }); + +Task("Package-Squirrel") + .IsDependentOn("Run-Unit-Tests") + .Does(() => + { + var syncReleasesDir = toolsDir + Directory("squirrel.windows/tools"); + + EnsureDirectoryExists(deployDir); + EnsureDirectoryExists(squirrelDeployDir); + + // Create nuget package + var appFiles = GetFiles(buildDir.Path + "/**/*.*").Select(f => f.FullPath); + var deltaCompressionFiles = GetFiles($"{(toolsDir + Directory("DeltaCompressionDotNet/lib/net45")).Path}/*.dll").Select(f => f.FullPath); + var monoCecilFiles = GetFiles($"{(toolsDir + Directory("Mono.Cecil/lib/net45")).Path}/*.dll").Select(f => f.FullPath); + var splatFiles = GetFiles($"{(toolsDir + Directory("Splat/lib/Net45")).Path}/*.dll").Select(f => f.FullPath); + var iCSharpCodeFiles = GetFiles($"{(toolsDir + Directory("squirrel.windows/lib/Net45")).Path}/ICSharpCode.SharpZipLib.*").Select(f => f.FullPath); + var squirrelFiles = GetFiles($"{(toolsDir + Directory("squirrel.windows/lib/Net45")).Path}/*Squirrel.dll").Select(f => f.FullPath); + var releaseFiles = new HashSet( + appFiles + .Concat(deltaCompressionFiles) + .Concat(monoCecilFiles) + .Concat(splatFiles) + .Concat(iCSharpCodeFiles) + .Concat(squirrelFiles) + ); + releaseFiles.RemoveWhere(f => f.Contains(".vshost.") || f.EndsWith(".pdb")); + + var nuGetPackSettings = new NuGetPackSettings + { + Version = version, + Files = releaseFiles.Select(f => new NuSpecContent { Source = f, Target = "lib/net45" + (f.Contains("Keymaps") ? "/Keymaps" : "") }).ToList(), + BasePath = buildDir, + OutputDirectory = squirrelDeployDir, + NoPackageAnalysis = true + }; + NuGetPack("./src/Carnac/Carnac.nuspec", nuGetPackSettings); + + // Sync latest release to build new package + var squirrelSyncReleasesExe = syncReleasesDir + File("SyncReleases.exe"); + StartProcess(squirrelSyncReleasesExe, new ProcessSettings { Arguments = $"--url {githubRepoUrl} --releaseDir {squirrelReleaseDir.Path}{(!string.IsNullOrEmpty(githubAuthToken) ? " --token " + githubAuthToken : "")}" }); + + // Create new squirrel package + Squirrel( + squirrelDeployDir + File($"carnac.{version}.nupkg"), + new SquirrelSettings + { + ReleaseDirectory = squirrelReleaseDir, + NoMsi = true, + Icon = "./src/Carnac/icon.ico", + SetupIcon = "./src/Carnac/icon.ico", + ShortCutLocations = "StartMenu", + Silent = true + } + ); + }); + +Task("Package-Zip") + .IsDependentOn("Package-Squirrel") + .Does(() => + { + var gitHubDeployDir = deployDir + Directory("GitHub"); + var zipFile = gitHubDeployDir + File($"carnac.{version}.zip"); + + EnsureDirectoryExists(deployDir); + EnsureDirectoryExists(gitHubDeployDir); + + Zip(squirrelReleaseDir, zipFile); + zipFileHash = CalculateFileHash(zipFile, HashAlgorithm.SHA256).ToHex(); + }); + +Task("Package-Choco") + .IsDependentOn("Package-Zip") + .Does(() => + { + var chocoSourceDir = Directory("./src/Chocolatey"); + var chocoToolsDir = chocoSourceDir + Directory("tools"); + var chocoInstallFile = chocoToolsDir + File("chocolateyinstall.ps1"); + var chocoSpecPath = chocoSourceDir + File("carnac.nuspec"); + var chocoDeployDir = deployDir + Directory("Chocolatey"); + + EnsureDirectoryExists(deployDir); + EnsureDirectoryExists(chocoDeployDir); + + var url = $"{githubRepoUrl}/releases/download/{version}"; + + ReplaceRegexInFiles(chocoInstallFile, @"\$url = '.+'", $"$url = '{url}/carnac.{version}.zip'"); + ReplaceRegexInFiles(chocoInstallFile, @"\$zipFileHash = '.+'", $"$zipFileHash = '{zipFileHash}'"); + + ChocolateyPack(chocoSpecPath, new ChocolateyPackSettings + { + Version = version + }); + MoveFiles("./*.nupkg", chocoDeployDir); + }); + +Task("Package") + .IsDependentOn("Package-Zip") + .IsDependentOn("Package-Squirrel") + .IsDependentOn("Package-Choco") + .Does(() => + { + EnsureDirectoryExists(deployDir); + }); + +Task("Default") + .IsDependentOn("Package"); + +RunTarget(target); \ No newline at end of file diff --git a/build.cmd b/build.cmd deleted file mode 100644 index d47a0bc7..00000000 --- a/build.cmd +++ /dev/null @@ -1,8 +0,0 @@ -@echo Off - -set config=%1 -if "%config%" == "" ( - set config=Debug -) - -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.proj /p:Configuration="%config%" /t:package /m /v:M /fl /flp:LogFile=msbuild.log;Verbosity=Normal /nr:false diff --git a/build.proj b/build.proj deleted file mode 100644 index 182ebbe4..00000000 --- a/build.proj +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - Debug - $(MSBuildProjectDirectory)\ - $(Root)src\Carnac\ - $(CarnacProjectDir)bin\$(Configuration)\ - $(Root)deploy\ - 0.0.0.9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://github.com/Code52/carnac - $(DeployPath)$(Version)\ - $(VersionDir)Carnac.exe.manifest - - - - - - - - - - - - - - - - - true - - - true - - - Managed - - - - - - - - - - - - - - - - - - - codebase="$(Version)\Carnac.exe.manifest" - Singleline - - - - - - - - - - - - - - - - - - - - $(Root)\src\Chocolatey\ - $(Root)\src\Chocolatey\carnac.nuspec - Code52/carnac - - - - - - $url = 'https://github.com/$(GithubRepo)/releases/download/$(Version)/carnac.$(Version).zip' - Singleline - - - - - - - - - - - - - - - - - - - - - - https://chocolatey.org/ - - - - - - - diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 00000000..314c4369 --- /dev/null +++ b/build.ps1 @@ -0,0 +1,228 @@ +########################################################################## +# This is the Cake bootstrapper script for PowerShell. +# This file was downloaded from https://github.com/cake-build/resources +# Feel free to change this file to fit your needs. +########################################################################## + +<# + +.SYNOPSIS +This is a Powershell script to bootstrap a Cake build. + +.DESCRIPTION +This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) +and execute your Cake build script with the parameters you provide. + +.PARAMETER Script +The build script to execute. +.PARAMETER Target +The build script target to run. +.PARAMETER Configuration +The build configuration to use. +.PARAMETER Verbosity +Specifies the amount of information to be displayed. +.PARAMETER Experimental +Tells Cake to use the latest Roslyn release. +.PARAMETER WhatIf +Performs a dry run of the build script. +No tasks will be executed. +.PARAMETER Mono +Tells Cake to use the Mono scripting engine. +.PARAMETER SkipToolPackageRestore +Skips restoring of packages. +.PARAMETER ScriptArgs +Remaining arguments are added here. + +.LINK +http://cakebuild.net + +#> + +[CmdletBinding()] +Param( + [string]$Script = "build.cake", + [string]$Target = "Default", + [ValidateSet("Release", "Debug")] + [string]$Configuration = "Debug", + [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] + [string]$Verbosity = "Verbose", + [switch]$Experimental, + [Alias("DryRun","Noop")] + [switch]$WhatIf, + [switch]$Mono, + [switch]$SkipToolPackageRestore, + [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] + [string[]]$ScriptArgs +) + +[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null +function MD5HashFile([string] $filePath) +{ + if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) + { + return $null + } + + [System.IO.Stream] $file = $null; + [System.Security.Cryptography.MD5] $md5 = $null; + try + { + $md5 = [System.Security.Cryptography.MD5]::Create() + $file = [System.IO.File]::OpenRead($filePath) + return [System.BitConverter]::ToString($md5.ComputeHash($file)) + } + finally + { + if ($file -ne $null) + { + $file.Dispose() + } + } +} + +Write-Host "Preparing to run build script..." + +if(!$PSScriptRoot){ + $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent +} + +$TOOLS_DIR = Join-Path $PSScriptRoot "tools" +$ADDINS_DIR = Join-Path $TOOLS_DIR "addins" +$MODULES_DIR = Join-Path $TOOLS_DIR "modules" +$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" +$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" +$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" +$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" +$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" +$ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config" +$MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config" + +# Should we use mono? +$UseMono = ""; +if($Mono.IsPresent) { + Write-Verbose -Message "Using the Mono based scripting engine." + $UseMono = "-mono" +} + +# Should we use the new Roslyn? +$UseExperimental = ""; +if($Experimental.IsPresent -and !($Mono.IsPresent)) { + Write-Verbose -Message "Using experimental version of Roslyn." + $UseExperimental = "-experimental" +} + +# Is this a dry run? +$UseDryRun = ""; +if($WhatIf.IsPresent) { + $UseDryRun = "-dryrun" +} + +# Make sure tools folder exists +if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { + Write-Verbose -Message "Creating tools directory..." + New-Item -Path $TOOLS_DIR -Type directory | out-null +} + +# Make sure that packages.config exist. +if (!(Test-Path $PACKAGES_CONFIG)) { + Write-Verbose -Message "Downloading packages.config..." + try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { + Throw "Could not download packages.config." + } +} + +# Try find NuGet.exe in path if not exists +if (!(Test-Path $NUGET_EXE)) { + Write-Verbose -Message "Trying to find nuget.exe in PATH..." + $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) } + $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 + if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { + Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." + $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName + } +} + +# Try download NuGet.exe if not exists +if (!(Test-Path $NUGET_EXE)) { + Write-Verbose -Message "Downloading NuGet.exe..." + try { + (New-Object System.Net.WebClient).DownloadFile($NUGET_URL, $NUGET_EXE) + } catch { + Throw "Could not download NuGet.exe." + } +} + +# Save nuget.exe path to environment to be available to child processed +$ENV:NUGET_EXE = $NUGET_EXE + +# Restore tools from NuGet? +if(-Not $SkipToolPackageRestore.IsPresent) { + Push-Location + Set-Location $TOOLS_DIR + + # Check for changes in packages.config and remove installed tools if true. + [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) + if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or + ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { + Write-Verbose -Message "Missing or changed package.config hash..." + Remove-Item * -Recurse -Exclude packages.config,nuget.exe + } + + Write-Verbose -Message "Restoring tools from NuGet..." + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`"" + + if ($LASTEXITCODE -ne 0) { + Throw "An error occured while restoring NuGet tools." + } + else + { + $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" + } + Write-Verbose -Message ($NuGetOutput | out-string) + + Pop-Location +} + +# Restore addins from NuGet +if (Test-Path $ADDINS_PACKAGES_CONFIG) { + Push-Location + Set-Location $ADDINS_DIR + + Write-Verbose -Message "Restoring addins from NuGet..." + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`"" + + if ($LASTEXITCODE -ne 0) { + Throw "An error occured while restoring NuGet addins." + } + + Write-Verbose -Message ($NuGetOutput | out-string) + + Pop-Location +} + +# Restore modules from NuGet +if (Test-Path $MODULES_PACKAGES_CONFIG) { + Push-Location + Set-Location $MODULES_DIR + + Write-Verbose -Message "Restoring modules from NuGet..." + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`"" + + if ($LASTEXITCODE -ne 0) { + Throw "An error occured while restoring NuGet modules." + } + + Write-Verbose -Message ($NuGetOutput | out-string) + + Pop-Location +} + +# Make sure that Cake has been installed. +if (!(Test-Path $CAKE_EXE)) { + Throw "Could not find Cake.exe at $CAKE_EXE" +} + +# Start Cake +Write-Host "Running build script..." +Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" -target=`"$Target`" -configuration=`"$Configuration`" -verbosity=`"$Verbosity`" $UseMono $UseDryRun $UseExperimental $ScriptArgs" +exit $LASTEXITCODE \ No newline at end of file diff --git a/src/Carnac.sln b/src/Carnac.sln index f6379f34..a04395fd 100644 --- a/src/Carnac.sln +++ b/src/Carnac.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.22310.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26403.7 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Carnac", "Carnac\Carnac.csproj", "{3D54543F-9FF2-4298-A621-0C66A36412CD}" EndProject @@ -18,8 +18,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeyStreamCapture", "KeyStre EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D23D1BAB-8B80-4B73-893C-F669039FC44D}" ProjectSection(SolutionItems) = preProject - ..\build.cmd = ..\build.cmd - ..\build.proj = ..\build.proj + ..\build.cake = ..\build.cake + ..\build.ps1 = ..\build.ps1 ..\README.md = ..\README.md EndProjectSection EndProject diff --git a/src/Carnac/App.xaml.cs b/src/Carnac/App.xaml.cs index 51991b99..98be0c52 100644 --- a/src/Carnac/App.xaml.cs +++ b/src/Carnac/App.xaml.cs @@ -1,10 +1,14 @@ -using System.Windows; +using System; +using System.IO; +using System.Reactive.Linq; +using System.Windows; using Carnac.Logic; using Carnac.Logic.KeyMonitor; using Carnac.Logic.Models; using Carnac.UI; using Carnac.Utilities; using SettingsProviderNet; +using Squirrel; namespace Carnac { @@ -17,6 +21,10 @@ public partial class App CarnacTrayIcon trayIcon; KeysController carnac; +#if !DEBUG + readonly string carnacUpdateUrl = "https://github.com/Code52/carnac"; +#endif + public App() { var keyProvider = new KeyProvider(InterceptKeys.Current, new PasswordModeService(), new DesktopLockEventService()); @@ -44,6 +52,25 @@ protected override void OnStartup(StartupEventArgs e) carnac = new KeysController(keyShowViewModel.Messages, messageProvider, new ConcurrencyService(), settingsProvider); carnac.Start(); +#if !DEBUG + Observable + .Timer(TimeSpan.FromMinutes(5)) + .Subscribe(async x => + { + try + { + using (var mgr = UpdateManager.GitHubUpdateManager(carnacUpdateUrl)) + { + await mgr.Result.UpdateApp(); + } + } + catch + { + // Do something useful with the exception + } + }); +#endif + base.OnStartup(e); } diff --git a/src/Carnac/Carnac.csproj b/src/Carnac/Carnac.csproj index 21e69fb5..04636d02 100644 --- a/src/Carnac/Carnac.csproj +++ b/src/Carnac/Carnac.csproj @@ -78,9 +78,36 @@ true + + ..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.dll + + + ..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.MsDelta.dll + + + ..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.PatchApi.dll + + + ..\packages\squirrel.windows.1.5.2\lib\Net45\ICSharpCode.SharpZipLib.dll + ..\packages\MahApps.Metro.1.5.0\lib\net40\MahApps.Metro.dll + + ..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.dll + + + ..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Mdb.dll + + + ..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Pdb.dll + + + ..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Rocks.dll + + + ..\packages\squirrel.windows.1.5.2\lib\Net45\NuGet.Squirrel.dll + ..\packages\PropertyChanged.Fody.1.52.1\Lib\portable-net4+sl4+wp8+win8+wpa81+MonoAndroid16+MonoTouch40\PropertyChanged.dll False @@ -88,6 +115,12 @@ ..\packages\SettingsProviderNet.2.1.1\lib\net40\SettingsProviderNet.dll + + ..\packages\Splat.1.6.2\lib\Net45\Splat.dll + + + ..\packages\squirrel.windows.1.5.2\lib\Net45\Squirrel.dll + @@ -96,6 +129,9 @@ ..\packages\System.Reactive.Interfaces.3.1.1\lib\net45\System.Reactive.Interfaces.dll + + ..\packages\System.Reactive.Linq.3.1.1\lib\net45\System.Reactive.Linq.dll + ..\packages\System.Reactive.Windows.Threading.3.1.1\lib\net45\System.Reactive.Windows.Threading.dll diff --git a/src/Carnac/Carnac.nuspec b/src/Carnac/Carnac.nuspec new file mode 100644 index 00000000..df2ceed1 --- /dev/null +++ b/src/Carnac/Carnac.nuspec @@ -0,0 +1,22 @@ + + + + carnac + carnac + 0.0.1 + Code52 + Carnac contributors + A keyboard utility for all your Windows presentation needs + + A keyboard utility for your Windows presentations, screencasts, and more. Carnac displays what you're typing in a modal as you type it. + + https://github.com/Code52/carnac + keyboard presentation screencast + Copyright (c) Carnac contributors + https://github.com/Code52/carnac/blob/master/LICENSE.md + false + https://cdn.rawgit.com/Code52/carnac/35d71121123471512e5623d1e8cbfae057d047d6/src/Carnac/carnac.png + + + + diff --git a/src/Carnac/Properties/AssemblyInfo.cs b/src/Carnac/Properties/AssemblyInfo.cs index 47609174..6ed0c58e 100644 --- a/src/Carnac/Properties/AssemblyInfo.cs +++ b/src/Carnac/Properties/AssemblyInfo.cs @@ -49,5 +49,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("0.0.1")] +[assembly: AssemblyFileVersion("0.0.1")] \ No newline at end of file diff --git a/src/Carnac/UI/PreferencesViewModel.cs b/src/Carnac/UI/PreferencesViewModel.cs index 0627c6bb..7eb14b5d 100644 --- a/src/Carnac/UI/PreferencesViewModel.cs +++ b/src/Carnac/UI/PreferencesViewModel.cs @@ -76,14 +76,16 @@ public string Version "Paul Jenkins", "Dmitry Pursanov", "Chris Sainty", - "Andrew Tobin" + "Andrew Tobin", + "Henrik Andersson" }; readonly List components = new List { "MahApps.Metro", "Fody", "NSubstitute", - "Reactive Extensions" + "Reactive Extensions", + "Squirrel.Windows" }; public string Authors { diff --git a/src/Carnac/packages.config b/src/Carnac/packages.config index c3b8a176..f61f5d46 100644 --- a/src/Carnac/packages.config +++ b/src/Carnac/packages.config @@ -1,11 +1,15 @@  + + + + diff --git a/src/Chocolatey/tools/chocolateyUninstall.ps1 b/src/Chocolatey/tools/chocolateyUninstall.ps1 index 4b713717..2b78c4a2 100644 --- a/src/Chocolatey/tools/chocolateyUninstall.ps1 +++ b/src/Chocolatey/tools/chocolateyUninstall.ps1 @@ -1,3 +1,9 @@ -# Remove User start menu link -$startMenuLink=$("$env:appdata\Microsoft\Windows\Start Menu\Programs\Carnac.lnk") -Remove-Item $startMenuLink -Force \ No newline at end of file +$ErrorActionPreference = 'Stop'; +$packageName = 'carnac' +$installLocation = "$env:LOCALAPPDATA\$packageName" + +# Uninstall carnac from Programs and Features +Uninstall-ChocolateyPackage "$packageName" -FileType "exe" -File "$installLocation\Update.exe" -SilentArgs "--uninstall" + +# Remove the left over files from the Squirrel.Windows install location +Remove-Item $installLocation -Recurse -Force \ No newline at end of file diff --git a/src/Chocolatey/tools/chocolateyinstall.ps1 b/src/Chocolatey/tools/chocolateyinstall.ps1 index b3143998..8c937ca8 100644 --- a/src/Chocolatey/tools/chocolateyinstall.ps1 +++ b/src/Chocolatey/tools/chocolateyinstall.ps1 @@ -1,15 +1,11 @@ $ErrorActionPreference = 'Stop'; $packageName = 'carnac' $url = 'Download Url Here' +$zipFileHash = 'Zip File Hash Here' $toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)" $installDir = "$toolsDir\Carnac" -# Include Carnac.exe as a GUI in the bin install and ignore vshost.exe -New-Item -ItemType file -force -path "$installDir\Carnac.exe.gui" | out-null -New-Item -ItemType file -force -path "$installDir\Carnac.vshost.exe.ignore" | out-null - -Install-ChocolateyZipPackage "$packageName" "$url" "$installDir" - -# Create User start menu link -$startMenuLink=$("$env:appdata\Microsoft\Windows\Start Menu\Programs\Carnac.lnk") -Install-ChocolateyShortcut -shortcutFilePath $startMenuLink -targetPath "$installDir\Carnac.exe" | out-null +# Download carnac package from GitHub +Install-ChocolateyZipPackage "$packageName" "$url" "$installDir" -Checksum $zipFileHash -ChecksumType 'sha256' +# Run the Squirrel.Windows installer to install carnac +Install-ChocolateyInstallPackage "$packageName" -FileType "exe" -File "$installDir\\Setup.exe" diff --git a/tools/AzCopy.exe b/tools/AzCopy.exe deleted file mode 100644 index 83f1d366..00000000 Binary files a/tools/AzCopy.exe and /dev/null differ diff --git a/tools/Microsoft.WindowsAzure.Storage.DataMovement.dll b/tools/Microsoft.WindowsAzure.Storage.DataMovement.dll deleted file mode 100644 index c0d24c0a..00000000 Binary files a/tools/Microsoft.WindowsAzure.Storage.DataMovement.dll and /dev/null differ diff --git a/tools/Microsoft.WindowsAzure.Storage.dll b/tools/Microsoft.WindowsAzure.Storage.dll deleted file mode 100644 index 0244ddde..00000000 Binary files a/tools/Microsoft.WindowsAzure.Storage.dll and /dev/null differ diff --git a/tools/packages.config b/tools/packages.config new file mode 100644 index 00000000..78141206 --- /dev/null +++ b/tools/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/tools/xunit/EULA.txt b/tools/xunit/EULA.txt deleted file mode 100644 index e7039f6d..00000000 --- a/tools/xunit/EULA.txt +++ /dev/null @@ -1,29 +0,0 @@ -This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. - -1. Definitions - -The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. - -A "contribution" is the original software, or any additions or changes to the software. - -A "contributor" is any person that distributes its contribution under this license. - -"Licensed patents" are a contributor's patent claims that read directly on its contribution. - -2. Grant of Rights - -(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. - -(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. - -3. Conditions and Limitations - -(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. - -(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. - -(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. - -(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. - -(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. \ No newline at end of file diff --git a/tools/xunit/HTML.xslt b/tools/xunit/HTML.xslt deleted file mode 100644 index 2a1a4c72..00000000 --- a/tools/xunit/HTML.xslt +++ /dev/null @@ -1,126 +0,0 @@ - - - - - ]]> - - - - xUnit.net Test Results - <xsl:value-of select="@name"/> - - - - - -

Assemblies Run

- - -

Summary

-
- Tests run:   - Failures: , - Skipped: , - Run time: s -
- -
-

Failed tests

- -
- -
-

Failed fixtures

- -
- -
-

Skipped tests

- -
-
-

All tests

-
Click test class name to expand/collapse test details
- - - -
- - -
-
- - -
- altrow - s - Skipped - - -   - : -
- -
-
- -

Output

-
-
-
-
- - - :
- Stack Trace:
-
-
- - -

- s - - ToggleClass('class') - ToggleClass('class') - - -   -  ( tests) - -
-

-
- display: none; - class - -
-
- -
\ No newline at end of file diff --git a/tools/xunit/NUnitXml.xslt b/tools/xunit/NUnitXml.xslt deleted file mode 100644 index 4d82799f..00000000 --- a/tools/xunit/NUnitXml.xslt +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - True - - - - - - - - - - - - - - - - - - False - True - - - - - - - - - - - - - - - - - - - - - - - - - False - True - - - - False - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tools/xunit/xunit.console.clr4.exe b/tools/xunit/xunit.console.clr4.exe deleted file mode 100644 index e90c90aa..00000000 Binary files a/tools/xunit/xunit.console.clr4.exe and /dev/null differ diff --git a/tools/xunit/xunit.console.clr4.exe.config b/tools/xunit/xunit.console.clr4.exe.config deleted file mode 100644 index 1aae4c31..00000000 --- a/tools/xunit/xunit.console.clr4.exe.config +++ /dev/null @@ -1,21 +0,0 @@ - - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/tools/xunit/xunit.console.clr4.x86.exe b/tools/xunit/xunit.console.clr4.x86.exe deleted file mode 100644 index 47e5da2b..00000000 Binary files a/tools/xunit/xunit.console.clr4.x86.exe and /dev/null differ diff --git a/tools/xunit/xunit.console.clr4.x86.exe.config b/tools/xunit/xunit.console.clr4.x86.exe.config deleted file mode 100644 index 24ca922c..00000000 --- a/tools/xunit/xunit.console.clr4.x86.exe.config +++ /dev/null @@ -1,21 +0,0 @@ - - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/tools/xunit/xunit.console.exe b/tools/xunit/xunit.console.exe deleted file mode 100644 index f4118e8c..00000000 Binary files a/tools/xunit/xunit.console.exe and /dev/null differ diff --git a/tools/xunit/xunit.console.exe.config b/tools/xunit/xunit.console.exe.config deleted file mode 100644 index a253b460..00000000 --- a/tools/xunit/xunit.console.exe.config +++ /dev/null @@ -1,21 +0,0 @@ - - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/tools/xunit/xunit.console.x86.exe b/tools/xunit/xunit.console.x86.exe deleted file mode 100644 index 102e4229..00000000 Binary files a/tools/xunit/xunit.console.x86.exe and /dev/null differ diff --git a/tools/xunit/xunit.console.x86.exe.config b/tools/xunit/xunit.console.x86.exe.config deleted file mode 100644 index 89e63fa2..00000000 --- a/tools/xunit/xunit.console.x86.exe.config +++ /dev/null @@ -1,21 +0,0 @@ - - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/tools/xunit/xunit.dll b/tools/xunit/xunit.dll deleted file mode 100644 index 86168af5..00000000 Binary files a/tools/xunit/xunit.dll and /dev/null differ diff --git a/tools/xunit/xunit.dll.tdnet b/tools/xunit/xunit.dll.tdnet deleted file mode 100644 index 4d8afc8e..00000000 --- a/tools/xunit/xunit.dll.tdnet +++ /dev/null @@ -1,5 +0,0 @@ - - xUnit.net {0}.{1}.{2} build {3} - xunit.runner.tdnet.dll - Xunit.Runner.TdNet.TdNetRunner - \ No newline at end of file diff --git a/tools/xunit/xunit.extensions.dll b/tools/xunit/xunit.extensions.dll deleted file mode 100644 index 0b1907e6..00000000 Binary files a/tools/xunit/xunit.extensions.dll and /dev/null differ diff --git a/tools/xunit/xunit.extensions.xml b/tools/xunit/xunit.extensions.xml deleted file mode 100644 index 270929f2..00000000 --- a/tools/xunit/xunit.extensions.xml +++ /dev/null @@ -1,805 +0,0 @@ - - - - xunit.extensions - - - - - A wrapper for Assert which is used by . - - - - - Verifies that a collection contains a given object. - - The type of the object to be verified - The object expected to be in the collection - The collection to be inspected - Thrown when the object is not present in the collection - - - - Verifies that a collection contains a given object, using an equality comparer. - - The type of the object to be verified - The object expected to be in the collection - The collection to be inspected - The comparer used to equate objects in the collection with the expected object - Thrown when the object is not present in the collection - - - - Verifies that a string contains a given sub-string, using the current culture. - - The sub-string expected to be in the string - The string to be inspected - Thrown when the sub-string is not present inside the string - - - - Verifies that a string contains a given sub-string, using the given comparison type. - - The sub-string expected to be in the string - The string to be inspected - The type of string comparison to perform - Thrown when the sub-string is not present inside the string - - - - Verifies that a collection does not contain a given object. - - The type of the object to be compared - The object that is expected not to be in the collection - The collection to be inspected - Thrown when the object is present inside the container - - - - Verifies that a collection does not contain a given object, using an equality comparer. - - The type of the object to be compared - The object that is expected not to be in the collection - The collection to be inspected - The comparer used to equate objects in the collection with the expected object - Thrown when the object is present inside the container - - - - Verifies that a string does not contain a given sub-string, using the current culture. - - The sub-string which is expected not to be in the string - The string to be inspected - Thrown when the sub-string is present inside the string - - - - Verifies that a string does not contain a given sub-string, using the current culture. - - The sub-string which is expected not to be in the string - The string to be inspected - The type of string comparison to perform - Thrown when the sub-string is present inside the given string - - - - Verifies that a block of code does not throw any exceptions. - - A delegate to the code to be tested - - - - Verifies that a collection is empty. - - The collection to be inspected - Thrown when the collection is null - Thrown when the collection is not empty - - - - Verifies that two objects are equal, using a default comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - Thrown when the objects are not equal - - - - Verifies that two objects are equal, using a custom equatable comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - The comparer used to compare the two objects - Thrown when the objects are not equal - - - - Verifies that two values are equal, within the number of decimal - places given by . - - The expected value - The value to be compared against - The number of decimal places (valid values: 0-15) - Thrown when the values are not equal - - - - Verifies that two values are equal, within the number of decimal - places given by . - - The expected value - The value to be compared against - The number of decimal places (valid values: 0-15) - Thrown when the values are not equal - - - - Verifies that the condition is false. - - The condition to be tested - Thrown if the condition is not false - - - - Verifies that the condition is false. - - The condition to be tested - The message to show when the condition is not false - Thrown if the condition is not false - - - - Verifies that a value is within a given range. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - Thrown when the value is not in the given range - - - - Verifies that a value is within a given range, using a comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - The comparer used to evaluate the value's range - Thrown when the value is not in the given range - - - - Verifies that an object is of the given type or a derived type. - - The type the object should be - The object to be evaluated - The object, casted to type T when successful - Thrown when the object is not the given type - - - - Verifies that an object is of the given type or a derived type. - - The type the object should be - The object to be evaluated - Thrown when the object is not the given type - - - - Verifies that an object is not exactly the given type. - - The type the object should not be - The object to be evaluated - Thrown when the object is the given type - - - - Verifies that an object is not exactly the given type. - - The type the object should not be - The object to be evaluated - Thrown when the object is the given type - - - - Verifies that an object is exactly the given type (and not a derived type). - - The type the object should be - The object to be evaluated - The object, casted to type T when successful - Thrown when the object is not the given type - - - - Verifies that an object is exactly the given type (and not a derived type). - - The type the object should be - The object to be evaluated - Thrown when the object is not the given type - - - - Verifies that a collection is not empty. - - The collection to be inspected - Thrown when a null collection is passed - Thrown when the collection is empty - - - - Verifies that two objects are not equal, using a default comparer. - - The type of the objects to be compared - The expected object - The actual object - Thrown when the objects are equal - - - - Verifies that two objects are not equal, using a custom equality comparer. - - The type of the objects to be compared - The expected object - The actual object - The comparer used to examine the objects - Thrown when the objects are equal - - - - Verifies that a value is not within a given range, using the default comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - Thrown when the value is in the given range - - - - Verifies that a value is not within a given range, using a comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - The comparer used to evaluate the value's range - Thrown when the value is in the given range - - - - Verifies that an object reference is not null. - - The object to be validated - Thrown when the object is not null - - - - Verifies that two objects are not the same instance. - - The expected object instance - The actual object instance - Thrown when the objects are the same instance - - - - Verifies that an object reference is null. - - The object to be inspected - Thrown when the object reference is not null - - - - Verifies that two objects are the same instance. - - The expected object instance - The actual object instance - Thrown when the objects are not the same instance - - - - Verifies that the given collection contains only a single - element of the given type. - - The collection. - The single item in the collection. - Thrown when the collection does not contain - exactly one element. - - - - Verifies that the given collection contains only a single - element of the given type. - - The collection type. - The collection. - The single item in the collection. - Thrown when the collection does not contain - exactly one element. - - - - Verifies that the exact exception is thrown (and not a derived exception type). - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - Generally used to test property accessors. - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - Generally used to test property accessors. - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that an expression is true. - - The condition to be inspected - Thrown when the condition is false - - - - Verifies that an expression is true. - - The condition to be inspected - The message to be shown when the condition is false - Thrown when the condition is false - - - - A class which can be derived from for test classes, which bring an overridable version - of Assert (using the class. - - - - - Gets a class which provides assertions. - - - - - Apply this attribute to your test method to replace the - with another role. - - - - - Replaces the identity of the current thread with . - - The role's name - - - - Restores the original . - - The method under test - - - - Stores the current and replaces it with - a new role identified in constructor. - - The method under test - - - - Gets the name. - - - - - Apply this attribute to your test method to automatically create a - that is rolled back when the test is - finished. - - - - - Rolls back the transaction. - - - - - Creates the transaction. - - - - - Gets or sets the isolation level of the transaction. - Default value is .Unspecified. - - - - - Gets or sets the scope option for the transaction. - Default value is .Required. - - - - - Gets or sets the timeout of the transaction, in milliseconds. - By default, the transaction will not timeout. - - - - - Provides a data source for a data theory, with the data coming from a class - which must implement IEnumerable<object[]>. - - - - - 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. - - - - - Returns the data to be used to test the theory. - - - The 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 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. - - The method that is being tested - The types of the parameters for the test method - The theory data - - - - - - - Initializes a new instance of the class. - - The class that provides the data. - - - - - - - Gets the type of the class that provides the data. - - - - - Represents an implementation of which uses an - instance of to get the data for a - decorated test method. - - - - - - - - Converts a parameter to its destination parameter type, if necessary. - - The parameter value - The destination parameter type (null if not known) - The converted parameter value - - - - Gets the data adapter to be used to retrieve the test data. - - - - - Provides a data source for a data theory, with the data coming from inline values. - - - - - Initializes a new instance of the class. - - The data values to pass to the theory - - - - Returns the data to be used to test the theory. - - The method that is being tested - The types of the parameters for the test method - The theory data, in table form - - - - Gets the data values. - - - - - Provides a data source for a data theory, with the data coming from an OLEDB connection. - - - - - Creates a new instance of . - - The OLEDB connection string to the data - The SELECT statement used to return the data for the theory - - - - Gets the connection string. - - - - - Gets the select statement. - - - - - - - - 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<object[]> with the test data. - - - - - Creates a new instance of / - - The name of the public static property on the test class that will provide the test data - - - - Returns the data to be used to test the theory. - - The method that is being tested - The types of the parameters for the test method - The theory data, in table form - - - - Gets the property name. - - - - - Provides a data source for a data theory, with the data coming a Microsoft SQL Server. - - - - - Creates a new instance of , using a trusted connection. - - The server name of the Microsoft SQL Server - The database name - The SQL SELECT statement to return the data for the data theory - - - - Creates a new instance of , using the provided username and password. - - The server name of the Microsoft SQL Server - The database name - The username for the server - The password for the server - The SQL SELECT statement to return the data for the data theory - - - - Provides a data source for a data theory, with the data coming a Microsoft Excel (.xls) spreadsheet. - - - - - Creates a new instance of . - - The filename of the XLS spreadsheet file; if the filename provided - is relative, then it is relative to the location of xunit.extensions.dll. - The SELECT statement that returns the data for the theory - - - - - - - A wrapper around the static operations on which allows time - to be frozen using the . The clock begins in the - thawed state; that is, calls to , , and - return current (non-frozen) values. - - - - - Freezes the clock with the current time. - Until is called, all calls to , , and - will return the exact same values. - - - - - Freezes the clock with the given date and time, considered to be local time. - Until is called, all calls to , , and - will return the exact same values. - - The local date and time to freeze to - - - - Freezes the clock with the given date and time, considered to be Coordinated Universal Time (UTC). - Until is called, all calls to , , and - will return the exact same values. - - The UTC date and time to freeze to - - - - Thaws the clock so that , , and - return normal values. - - - - - Gets a object that is set to the current date and time on this computer, - expressed as the local time. - - - - - Gets the current date. - - - - - Gets a object that is set to the current date and time on this computer, - expressed as the Coordinated Universal Time (UTC). - - - - - Apply this attribute to your test method to freeze the time represented by the - class. - - - - - Freeze the clock with the current date and time. - - - - - Freeze the clock with the given date, considered to be local time. - - The frozen year - The frozen month - The frozen day - - - - Freeze the clock with the given date and time, considered to be in local time. - - The frozen year - The frozen month - The frozen day - The frozen hour - The frozen minute - The frozen second - - - - Freeze the clock with the given date and time, with the given kind of time. - - The frozen year - The frozen month - The frozen day - The frozen hour - The frozen minute - The frozen second - The frozen time kind - - - - Thaws the clock. - - The method under test - - - - Freezes the clock. - - The method under test - - - - 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). - - - - - Creates instances of which represent individual intended - invocations of the test method, one per data row in the data source. - - The method under test - An enumerator through the desired test method invocations - - - - Represents a single invocation of a data theory test method. - - - - - Creates a new instance of . - - The method under test - The parameters to be passed to the test method - - - - Creates a new instance of based on a generic theory. - - The method under test - The parameters to be passed to the test method - The generic types that were used to resolved the generic method. - - - - - - - Gets the parameter values that are passed to the test method. - - - - - Apply to a test method to trace the method begin and end. - - - - - This method is called before the test method is executed. - - The method under test - - - - This method is called after the test method is executed. - - The method under test - - - diff --git a/tools/xunit/xunit.gui.clr4.exe b/tools/xunit/xunit.gui.clr4.exe deleted file mode 100644 index 773e4c4a..00000000 Binary files a/tools/xunit/xunit.gui.clr4.exe and /dev/null differ diff --git a/tools/xunit/xunit.gui.clr4.x86.exe b/tools/xunit/xunit.gui.clr4.x86.exe deleted file mode 100644 index af0da3cf..00000000 Binary files a/tools/xunit/xunit.gui.clr4.x86.exe and /dev/null differ diff --git a/tools/xunit/xunit.gui.exe b/tools/xunit/xunit.gui.exe deleted file mode 100644 index 01d59d2d..00000000 Binary files a/tools/xunit/xunit.gui.exe and /dev/null differ diff --git a/tools/xunit/xunit.gui.x86.exe b/tools/xunit/xunit.gui.x86.exe deleted file mode 100644 index 89fe19a3..00000000 Binary files a/tools/xunit/xunit.gui.x86.exe and /dev/null differ diff --git a/tools/xunit/xunit.installer.exe b/tools/xunit/xunit.installer.exe deleted file mode 100644 index 3decf031..00000000 Binary files a/tools/xunit/xunit.installer.exe and /dev/null differ diff --git a/tools/xunit/xunit.runner.msbuild.dll b/tools/xunit/xunit.runner.msbuild.dll deleted file mode 100644 index ac2065d0..00000000 Binary files a/tools/xunit/xunit.runner.msbuild.dll and /dev/null differ diff --git a/tools/xunit/xunit.runner.tdnet.dll b/tools/xunit/xunit.runner.tdnet.dll deleted file mode 100644 index f7d0639a..00000000 Binary files a/tools/xunit/xunit.runner.tdnet.dll and /dev/null differ diff --git a/tools/xunit/xunit.runner.utility.dll b/tools/xunit/xunit.runner.utility.dll deleted file mode 100644 index cc1f21bf..00000000 Binary files a/tools/xunit/xunit.runner.utility.dll and /dev/null differ diff --git a/tools/xunit/xunit.runner.utility.xml b/tools/xunit/xunit.runner.utility.xml deleted file mode 100644 index 0b2e37bd..00000000 --- a/tools/xunit/xunit.runner.utility.xml +++ /dev/null @@ -1,1212 +0,0 @@ - - - - xunit.runner.utility - - - - - Guard class, used for guard clauses and argument validation - - - - - - - - - - - - - - Wraps calls to the Executor. Used by runners to perform version-resilient test - enumeration and execution. - - - - - Wraps calls to the Executor. Used by runners to perform version-resilient test - enumeration and execution. - - - - - Enumerates the tests in an assembly. - - The fully-formed assembly node of the XML - - - - Gets a count of the tests in the assembly. - - Returns the number of tests, if known; returns -1 if not known. May not represent - an exact count, but should be a best effort guess by the framework. - - - - Runs all the tests in an assembly. - - The callback which is called as each test/class/assembly is - finished, providing XML nodes that are part of the xUnit.net XML output format. - Test runs can be cancelled by returning false to the callback. If null, there are - no status callbacks (and cancellation isn't possible). - Returns the fully-formed assembly node for the assembly that was just run. - - - - Runs all the tests in the given class. - - The type. - The callback which is called as each test/class is - finished, providing XML nodes that are part of the xUnit.net XML output format. - Test runs can be cancelled by returning false to the callback. If null, there are - no status callbacks (and cancellation isn't possible). - Returns the fully-formed class node for the class that was just run. - - - - Runs a single test in a class. - - The type to run. - The method to run. - The callback which is called as each test/class is - finished, providing XML nodes that are part of the xUnit.net XML output format. - Test runs can be cancelled by returning false to the callback. If null, there are - no status callbacks (and cancellation isn't possible). - Returns the fully-formed class node for the class of the test that was just run. - - - - Runs several tests in a single class. - - The type. - The methods to run. - The callback which is called as each test/class is - finished, providing XML nodes that are part of the xUnit.net XML output format. - Test runs can be cancelled by returning false to the callback. If null, there are - no status callbacks (and cancellation isn't possible). - Returns the fully-formed class node for the class of the tests that were just run. - - - - Gets the full pathname to the assembly under test. - - - - - Gets the full pathname to the configuration file. - - - - - Gets the version of xunit.dll used by the test assembly. - - - - - Initializes the class. - - - - - Initializes a new instance of the class. - - The assembly filename. - The config filename. If null, the default config filename will be used. - Set to true to enable shadow copying; false, otherwise. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - THIS CLASS IS FOR INTERNAL USE ONLY. - - - - - - - - - - - THIS CLASS IS FOR INTERNAL USE ONLY. - - - - - - - - - - - - - - THIS CLASS IS FOR INTERNAL USE ONLY. - - - - - - - - - - - - - - THIS CLASS IS FOR INTERNAL USE ONLY. - - - - - - - - - - - - - - - - - - - - - - - THIS CLASS IS FOR INTERNAL USE ONLY. - - - - - - - - - - - - - - - - - THIS CLASS IS FOR INTERNAL USE ONLY. - - - - - - - - - - - - - - THIS CLASS IS FOR INTERNAL USE ONLY. - - - - - - - - - - - The callback object which receives real-time status notifications from the - test runner. - - - - - Called when the assembly has finished running. - - The test assembly. - The total number of tests run. - The number of failed tests. - The number of skipped tests. - The time taken to run, in seconds. - - - - Called when the assembly has started running. - - The test assembly. - - - - Called when a class failure is encountered (i.e., when a fixture from - IUseFixture throws an exception during construction or . - - The test class. - The full type name of the exception. - The exception message. - The exception stack trace. - - - - - Called when an exception is thrown (i.e., a catastrophic failure of the testing system). - - The test assembly. - The exception that was thrown. - - - - Called when a test has finished running, regardless of what the result was. - - The test method. - Return true to continue running tests; return false to stop the test run. - - - - Called when a test has started running. - - The test method. - Return true to continue running tests; return false to stop the test run. - - - - Represents the ability to load and unload test assemblies, as well as enumerate - the test assemblies, the test methods, and run tests. - - - - - Represents the ability to enumerate and filter test methods. - - - - - Enumerates all test methods. - - - - - Enumerates test methods which pass the given filter. - - The test method filter. - - - - The test assemblies loaded into the environment. - - - - - - - - Enumerates the test assemblies in the environment. - - - - - - - - - - - Enumerates the traits across all the loaded assemblies. - - - - - Loads the specified assembly, using the default configuration file. - - The assembly filename. - The which represents the newly - loaded test assembly. - - - - Loads the specified assembly using the specified configuration file. - - The assembly filename. - The config filename. - The which represents the newly - loaded test assembly. - - - - Loads the specified assembly using the specified configuration file. - - The assembly filename. - The config filename. - Whether the DLLs should be shadow copied. - The which represents the newly - loaded test assembly. - - - - Adds the assembly loaded into the given - into the environment. - - The executor wrapper. - The which represents the newly - loaded test assembly. - - - - Runs the specified test methods. - - The test methods to run. - The run status information callback. - Returns the result as XML. - - - - Unloads the specified assembly. - - The assembly to unload. - - - - Represents a failed test run in the object model. - - - - - Base class for all test results in the object model. - - - - - Initializes a new instance of the class. - - The duration the test took to run. For skipped tests, should be 0.0. - The display name of the test result. - - - - Gets the display name of the test result. - - - - - Gets the duration the test took to run. - - - - - Initializes a new instance of the class. - - The duration the test took to run. - The display name of the test result. - The output that was captured during the test run. - Type of the exception. - The exception message. - The exception stack trace. - - - - Gets the output that was captured during the test run. - - - - - Gets the type of the exception. - - - - - Gets the exception message. - - - - - Gets the exception stack trace. - - - - - Represents a skipped test run in the object model. - - - - - Initializes a new instance of the class. - - The display name of the test result. - The skip reason. - - - - Gets the skip reason. - - - - - Acts as an and adapts the callback messages - into calls to an instance of . - - - - - Represents a logger used by and . - - - - - Called when the assembly has finished running. - - The assembly filename. - The total number of tests run. - The number of failed tests. - The number of skipped tests. - The time taken to run, in seconds. - - - - Called when the assembly has started running. - - The assembly filename. - The configuration filename, if given; null, otherwise. - The version of xunit.dll. - - - - Called when a class failure is encountered (i.e., when a fixture from - IUseFixture throws an exception during construction or . - - The full type name of the class. - The full type name of the exception. - The exception message. - The exception stack trace. - - - - - Called when an exception is thrown (i.e., a catastrophic failure of the testing system). - - The assembly filename. - The exception that was thrown. - - - - Called when a test fails. - - The description name of the test. - The full type name of the test class. - The name of the method. - The time spent running the test, in seconds. - The output of the test during its run. - The full type name of the exception. - The exception message. - The exception stack trace. - - - - Called when a test has finished running, regardless of what the result was. - - The description name of the test. - The full type name of the test class. - The name of the method. - Return true to continue running tests; return false to stop the test run. - - - - Called when a test has passed. - - The description name of the test. - The full type name of the test class. - The name of the method. - The time spent running the test, in seconds. - The output of the test during its run. - - - - Called when a test was finished. - - The description name of the test. - The full type name of the test class. - The name of the method. - The skip reason. - - - - Called when a test has started running. - - The description name of the test. - The full type name of the test class. - The name of the method. - Return true to continue running tests; return false to stop the test run. - - - - Initializes a new instance of the class. - - The test class. - The run status information callback. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a passed test run in the object model. - - - - - Initializes a new instance of the class. - - The duration the test took to run. - The display name of the test result. - The output that was captured during the test run. - - - - Gets the output that was captured during the test run. - - - - - Indicates the composite test method status - - - - - The method has not been run - - - - - All test results for the last run passed - - - - - At least one test result for the last run failed - - - - - At least one test result for the last run was skipped, and none failed - - - - - Represents a set of filters for an . - - - - - Initializes a new instance of the class. - - - - - Filters the given method using the defined filter values. - - The methods to filter. - Returns true if the method passed the filter; return false otherwise. - - - - Gets the set of trait filters for tests to exclude. - - - - - Gets the set of trait filters for tests to include. - - - - - Represents an xUnit Test Project file (.xunit file) - - - - - Initializes a new instance of the class. - - - - - Adds an assembly to the project - - The assembly to be added - - - - Loads an xUnit.net Test Project file from disk. - - The test project filename - - - - Removes assembly from the assembly list - - The assembly to be removed - - - - Saves the xUnit.net Test Project file to disk using the project's filename. - - - - - Saves the xUnit.net Test Project file to disk using the provided filename. - The projects filename is updated to match this new name. - - The test project filename - - - - Gets or sets the assemblies in the project. - - - - - Gets or set the filename of the project. - - - - - Gets the filters applied to this project. - - - - - Gets or sets a flag which indicates if this project has been modified since - the last time it was loaded or saved. - - - - - Represents an assembly in an . - - - - - Initializes a new instance of the class. - - - - - Gets or sets the assembly filename. - - - - - Gets or sets the config filename. - - - - - Gets or sets a value indicating whether to shadow copy the assembly - when running the tests. - - - The xUnit.net GUI runner does not support this field. - - - - - Gets or sets the output filenames. The dictionary key is the type - of the file to be output; the dictionary value is the filename to - write the output to. - - - The xUnit.net GUI runner does not support this field. The MSBuild - runner only supports output of type 'xml', 'html', and 'nunit'. - - - - - Interface which represents a high level test runner. - - - - - Executes the tests in the assembly. - - Returns true if there were no failures; return false otherwise. - - - - Executes the tests in the assembly, and then executes the transforms with the - resulting assembly XML. - - The transforms to execute. - Returns true if there were no failures; return false otherwise. - - - - Runs the class. - - The type. - - - - - Runs a single test in a test class. - - The full name of the class. - The name of the method. - - - - Runs the list of tests in a test class. - - The full name of the class. - The names of the methods to run. - - - - Represents a single test assembly with test classes. - - - - - Initializes a new instance of the class. - - The executor wrapper. - The test classes. - - - - - - - Enumerates the test classes in the assembly. - - - - - - - - - - - Runs the specified test methods. - - The test methods to run. - The run status information callback. - Returns the result as XML. - - - - Gets the assembly filename. - - - - - Gets the config filename. - - - - - Gets the executor wrapper. - - - - - Gets the version of xunit.dll that the tests are linked against. - - - - - Represents a single class with test methods. - - - - - Initializes a new instance of the class. - - The namespace-qualified type name that - this class represents. - The test methods inside this test class. - - - - - - - - - - Runs the specified test methods. - - The test methods to run. - The run status information callback. - Returns the result as XML. - - - - Runs the specified tests in the given type, calling the callback as appropriate. - This override point exists primarily for unit testing purposes. - - The test methods to run - The run status information callback. - - - - Gets the test assembly that this class belongs to. - - - - - Gets the namespace-qualified type name of this class. - - - - - Represents a single test method. - - - - - Initializes a new instance of the class. - - The method name. - The method's display name. - The method's traits. - - - - Gets the method's display name. - - - - - Gets the method's name. - - - - - Gets the run results for the last run. - - - - - Gets the composite run status for all the results of the last run. - - - - - Gets the test class this test method belongs to. - - - - - Gets the method's traits. - - - - - The result of a test run via . - - - - - All tests passed, with no class-level failures - - - - - At least one test failed, or there was a class-level failure - - - - - There were no tests to run - - - - - Represents a transformation of the resulting assembly XML into some output format. - - - - - Transforms the given assembly XML into the destination format. - - The assembly XML. - - - - Gets the output filename, if known; returns null if the output isn't done to file. - - - - - Runs tests in an assembly, and transforms the XML results into calls to - the provided . - - - - - Initializes a new instance of the class. - - The executor wrapper. - The logger. - - - - - - - - - - - - - - - - - - - An implementation of which writes the - XML to a file without any transformation applied. - - - - - Initializes a new instance of the class. - - The output filename. - - - - - - - - - - An implementation of which writes the - XML to a file after applying the XSL stylesheet in the given stream. - - - - - Initializes a new instance of the class. - - The XSL filename. - The output filename. - - - - Initializes a new instance of the class. - - The stream with the XSL stylesheet. - The output filename. - - - - - - - - - - Gets or sets the XSL filename. - - - - - Gets or sets the XSL stream. - - - - - A dictionary which contains multiple unique values for each key. - - The type of the key. - The type of the value. - - - - Adds the value for the given key. If the key does not exist in the - dictionary yet, it will add it. - - The key. - The value. - - - - Removes all keys and values from the dictionary. - - - - - Determines whether the dictionary contains to specified key and value. - - The key. - The value. - - - - Calls the delegate once for each key/value pair in the dictionary. - - - - - Removes the given key and all of its values. - - - - - Removes the given value from the given key. If this was the - last value for the key, then the key is removed as well. - - The key. - The value. - - - - Gets the values for the given key. - - - - - Gets the count of the keys in the dictionary. - - - - - Gets the keys. - - - - - - - - Responsible for building instances. Uses an instance - of to interrogate the list of available tests - and create the entire object model tree. - - - - - Creates a which is a complete object model over - the tests inside of instance of . - - The executor wrapper - The fully populated object model - - - - Parses the XML nodes from the version resilient runner facility and converts - them into calls against the provided . - - - - - Logs a result XML node. Maybe be any kind of XML node. - - The node to be logged. - The logger. - Returns true if the user wishes to continue running tests; returns false otherwise. - - - - Logs the assembly node by calling . - - The assembly node. - The logger. - - - - Logs the class node by calling (if the class failed). - The exception type was added in xUnit.net 1.1, so when the test assembly is linked against - xUnit.net versions prior to 1.1, the exception type will be null. - - The class node. - The logger. - Returns true if the user wishes to continue running tests; returns false otherwise. - - - - Logs the start node by calling . The start node was added - in xUnit.net 1.1, so it will only be present when the test assembly is linked against xunit.dll - version 1.1 or later. - - The start node. - The logger. - Returns true if the user wishes to continue running tests; returns false otherwise. - - - - Logs the test node by calling . It will also call - , , or - as appropriate. - - The test node. - The logger. - Returns true if the user wishes to continue running tests; returns false otherwise. - - - diff --git a/tools/xunit/xunit.xml b/tools/xunit/xunit.xml deleted file mode 100644 index cfc4cb21..00000000 --- a/tools/xunit/xunit.xml +++ /dev/null @@ -1,2604 +0,0 @@ - - - - xunit - - - - - Contains various static methods that are used to verify that conditions are met during the - process of running tests. - - - - - Initializes a new instance of the class. - - - - - Verifies that a collection contains a given object. - - The type of the object to be verified - The object expected to be in the collection - The collection to be inspected - Thrown when the object is not present in the collection - - - - Verifies that a collection contains a given object, using an equality comparer. - - The type of the object to be verified - The object expected to be in the collection - The collection to be inspected - The comparer used to equate objects in the collection with the expected object - Thrown when the object is not present in the collection - - - - Verifies that a string contains a given sub-string, using the current culture. - - The sub-string expected to be in the string - The string to be inspected - Thrown when the sub-string is not present inside the string - - - - Verifies that a string contains a given sub-string, using the given comparison type. - - The sub-string expected to be in the string - The string to be inspected - The type of string comparison to perform - Thrown when the sub-string is not present inside the string - - - - Verifies that a collection does not contain a given object. - - The type of the object to be compared - The object that is expected not to be in the collection - The collection to be inspected - Thrown when the object is present inside the container - - - - Verifies that a collection does not contain a given object, using an equality comparer. - - The type of the object to be compared - The object that is expected not to be in the collection - The collection to be inspected - The comparer used to equate objects in the collection with the expected object - Thrown when the object is present inside the container - - - - Verifies that a string does not contain a given sub-string, using the current culture. - - The sub-string which is expected not to be in the string - The string to be inspected - Thrown when the sub-string is present inside the string - - - - Verifies that a string does not contain a given sub-string, using the current culture. - - The sub-string which is expected not to be in the string - The string to be inspected - The type of string comparison to perform - Thrown when the sub-string is present inside the given string - - - - Verifies that a block of code does not throw any exceptions. - - A delegate to the code to be tested - - - - Verifies that a collection is empty. - - The collection to be inspected - Thrown when the collection is null - Thrown when the collection is not empty - - - - Verifies that two objects are equal, using a default comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - Thrown when the objects are not equal - - - - Verifies that two objects are equal, using a custom equatable comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - The comparer used to compare the two objects - Thrown when the objects are not equal - - - - Verifies that two values are equal, within the number of decimal - places given by . - - The expected value - The value to be compared against - The number of decimal places (valid values: 0-15) - Thrown when the values are not equal - - - - Verifies that two values are equal, within the number of decimal - places given by . - - The expected value - The value to be compared against - The number of decimal places (valid values: 0-15) - Thrown when the values are not equal - - - - Verifies that two sequences are equivalent, using a default comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - Thrown when the objects are not equal - - - - Verifies that two sequences are equivalent, using a custom equatable comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - The comparer used to compare the two objects - Thrown when the objects are not equal - - - Do not call this method. - - - - Verifies that the condition is false. - - The condition to be tested - Thrown if the condition is not false - - - - Verifies that the condition is false. - - The condition to be tested - The message to show when the condition is not false - Thrown if the condition is not false - - - - Verifies that a value is within a given range. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - Thrown when the value is not in the given range - - - - Verifies that a value is within a given range, using a comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - The comparer used to evaluate the value's range - Thrown when the value is not in the given range - - - - Verifies that an object is of the given type or a derived type. - - The type the object should be - The object to be evaluated - The object, casted to type T when successful - Thrown when the object is not the given type - - - - Verifies that an object is of the given type or a derived type. - - The type the object should be - The object to be evaluated - Thrown when the object is not the given type - - - - Verifies that an object is not exactly the given type. - - The type the object should not be - The object to be evaluated - Thrown when the object is the given type - - - - Verifies that an object is not exactly the given type. - - The type the object should not be - The object to be evaluated - Thrown when the object is the given type - - - - Verifies that an object is exactly the given type (and not a derived type). - - The type the object should be - The object to be evaluated - The object, casted to type T when successful - Thrown when the object is not the given type - - - - Verifies that an object is exactly the given type (and not a derived type). - - The type the object should be - The object to be evaluated - Thrown when the object is not the given type - - - - Verifies that a collection is not empty. - - The collection to be inspected - Thrown when a null collection is passed - Thrown when the collection is empty - - - - Verifies that two objects are not equal, using a default comparer. - - The type of the objects to be compared - The expected object - The actual object - Thrown when the objects are equal - - - - Verifies that two objects are not equal, using a custom equality comparer. - - The type of the objects to be compared - The expected object - The actual object - The comparer used to examine the objects - Thrown when the objects are equal - - - - Verifies that two sequences are not equivalent, using a default comparer. - - The type of the objects to be compared - The expected object - The actual object - Thrown when the objects are equal - - - - Verifies that two sequences are not equivalent, using a custom equality comparer. - - The type of the objects to be compared - The expected object - The actual object - The comparer used to compare the two objects - Thrown when the objects are equal - - - - Verifies that a value is not within a given range, using the default comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - Thrown when the value is in the given range - - - - Verifies that a value is not within a given range, using a comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - The comparer used to evaluate the value's range - Thrown when the value is in the given range - - - - Verifies that an object reference is not null. - - The object to be validated - Thrown when the object is not null - - - - Verifies that two objects are not the same instance. - - The expected object instance - The actual object instance - Thrown when the objects are the same instance - - - - Verifies that an object reference is null. - - The object to be inspected - Thrown when the object reference is not null - - - - Verifies that the provided object raised INotifyPropertyChanged.PropertyChanged - as a result of executing the given test code. - - The object which should raise the notification - The property name for which the notification should be raised - The test code which should cause the notification to be raised - Thrown when the notification is not raised - - - - Verifies that two objects are the same instance. - - The expected object instance - The actual object instance - Thrown when the objects are not the same instance - - - - Verifies that the given collection contains only a single - element of the given type. - - The collection. - The single item in the collection. - Thrown when the collection does not contain - exactly one element. - - - - Verifies that the given collection contains only a single - element of the given value. The collection may or may not - contain other values. - - The collection. - The value to find in the collection. - The single item in the collection. - Thrown when the collection does not contain - exactly one element. - - - - Verifies that the given collection contains only a single - element of the given type. - - The collection type. - The collection. - The single item in the collection. - Thrown when the collection does not contain - exactly one element. - - - - Verifies that the given collection contains only a single - element of the given type which matches the given predicate. The - collection may or may not contain other values which do not - match the given predicate. - - The collection type. - The collection. - The item matching predicate. - The single item in the filtered collection. - Thrown when the filtered collection does - not contain exactly one element. - - - - Verifies that the exact exception is thrown (and not a derived exception type). - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - Generally used to test property accessors. - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - Generally used to test property accessors. - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that an expression is true. - - The condition to be inspected - Thrown when the condition is false - - - - Verifies that an expression is true. - - The condition to be inspected - The message to be shown when the condition is false - Thrown when the condition is false - - - - Used by the PropertyChanged. - - - - - Used by the Throws and DoesNotThrow methods. - - - - - Used by the Throws and DoesNotThrow methods. - - - - - This command sets up the necessary trace listeners and standard - output/error listeners to capture Assert/Debug.Trace failures, - output to stdout/stderr, and Assert/Debug.Write text. It also - captures any exceptions that are thrown and packages them as - FailedResults, including the possibility that the configuration - file is messed up (which is exposed when we attempt to manipulate - the trace listener list). - - - - - Base class used by commands which delegate to inner commands. - - - - - Interface which represents the ability to invoke of a test method. - - - - - Executes the test method. - - The instance of the test class - Returns information about the test run - - - - Creates the start XML to be sent to the callback when the test is about to start - running. - - Return the of the start node, or null if the test - is known that it will not be running. - - - - Gets the display name of the test method. - - - - - Determines if the test runner infrastructure should create a new instance of the - test class before running the test. - - - - - Determines if the test should be limited to running a specific amount of time - before automatically failing. - - The timeout value, in milliseconds; if zero, the test will not have - a timeout. - - - - Creates a new instance of the class. - - The inner command to delegate to. - - - - - - - - - - - - - - - - - - - - - - Initializes a new instance of the - class. - - The command that will be wrapped. - The test method. - - - - - - - Represents an implementation of to be used with - tests which are decorated with the . - - - - - Represents an xUnit.net test command. - - - - - The method under test. - - - - - Initializes a new instance of the class. - - The method under test. - The display name of the test. - The timeout, in milliseconds. - - - - - - - - - - - - - Gets the name of the method under test. - - - - - - - - - - - Gets the name of the type under test. - - - - - Initializes a new instance of the class. - - The test method. - - - - - - - Base class for exceptions that have actual and expected values - - - - - The base assert exception class - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The user message to be displayed - - - - Initializes a new instance of the class. - - The user message to be displayed - The inner exception - - - - Initializes a new instance of the class. - - The user message to be displayed - The stack trace to be displayed - - - - - - - Determines whether to exclude a line from the stack frame. By default, this method - removes all stack frames from methods beginning with Xunit.Assert or Xunit.Sdk. - - The stack frame to be filtered. - Return true to exclude the line from the stack frame; false, otherwise. - - - - Filters the stack trace to remove all lines that occur within the testing framework. - - The original stack trace - The filtered stack trace - - - - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - A string that describes the contents of the call stack, with the most recent method call appearing first. - - - - Gets the user message - - - - - Creates a new instance of the class. - - The expected value - The actual value - The user message to be shown - - - - Creates a new instance of the class. - - The expected value - The actual value - The user message to be shown - Set to true to skip the check for difference position - - - - - - - - - - Gets the actual value. - - - - - Gets the expected value. - - - - - Gets a message that describes the current exception. Includes the expected and actual values. - - The error message that explains the reason for the exception, or an empty string(""). - 1 - - - - Exception thrown when a collection unexpectedly does not contain the expected value. - - - - - Creates a new instance of the class. - - The expected object value - - - - Creates a new instance of the class. - - The expected object value - The actual value - - - - - - - Exception to be thrown from when the number of - parameter values does not the test method signature. - - - - - - - - - - - Exception thrown when code unexpectedly fails change a property. - - - - - Creates a new instance of the class. Call this constructor - when no exception was thrown. - - The name of the property that was expected. - - - - - - - Exception thrown when the collection did not contain exactly one element. - - - - - Initializes a new instance of the class. - - The numbers of items in the collection. - - - - Initializes a new instance of the class. - - The numbers of items in the collection. - The object expected to be in the collection. - - - - - - - Internal class used for version-resilient test runners. DO NOT CALL DIRECTLY. - Version-resilient runners should link against xunit.runner.utility.dll and use - ExecutorWrapper instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Exception thrown when the value is unexpectedly not of the given type or a derived type. - - - - - Creates a new instance of the class. - - The expected type - The actual object value - - - - - - - Allows the user to record actions for a test. - - - - - Records any exception which is thrown by the given code. - - The code which may thrown an exception. - Returns the exception that was thrown by the code; null, otherwise. - - - - Records any exception which is thrown by the given code that has - a return value. Generally used for testing property accessors. - - The code which may thrown an exception. - Returns the exception that was thrown by the code; null, otherwise. - - - - Exception that is thrown when one or more exceptions are thrown from - the After method of a . - - - - - Initializes a new instance of the class. - - The exceptions. - - - - Initializes a new instance of the class. - - The exceptions. - - - - - - - - - - Gets the list of exceptions thrown in the After method. - - - - - Gets a message that describes the current exception. - - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - - - - Implementation of which executes the - instances attached to a test method. - - - - - Initializes a new instance of the class. - - The inner command. - The method. - - - - Executes the test method. - - The instance of the test class - Returns information about the test run - - - - This class supports the xUnit.net infrastructure and is not intended to be used - directly from your code. - - - - - This API supports the xUnit.net infrastructure and is not intended to be used - directly from your code. - - - - - This API supports the xUnit.net infrastructure and is not intended to be used - directly from your code. - - - - - This API supports the xUnit.net infrastructure and is not intended to be used - directly from your code. - - - - - Guard class, used for guard clauses and argument validation - - - - - - - - - - - - - - Base class which contains XML manipulation helper methods - - - - - Interface that represents a single test result. - - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - The amount of time spent in execution - - - - - Adds the test execution time to the XML node. - - The XML node. - - - - - - - - - - Utility methods for dealing with exceptions. - - - - - Gets the message for the exception, including any inner exception messages. - - The exception - The formatted message - - - - Gets the stack trace for the exception, including any inner exceptions. - - The exception - The formatted stack trace - - - - Rethrows an exception object without losing the existing stack trace information - - The exception to re-throw. - - For more information on this technique, see - http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx - - - - - A dictionary which contains multiple unique values for each key. - - The type of the key. - The type of the value. - - - - Adds the value for the given key. If the key does not exist in the - dictionary yet, it will add it. - - The key. - The value. - - - - Removes all keys and values from the dictionary. - - - - - Determines whether the dictionary contains to specified key and value. - - The key. - The value. - - - - Calls the delegate once for each key/value pair in the dictionary. - - - - - Removes the given key and all of its values. - - - - - Removes the given value from the given key. If this was the - last value for the key, then the key is removed as well. - - The key. - The value. - - - - Gets the values for the given key. - - - - - Gets the count of the keys in the dictionary. - - - - - Gets the keys. - - - - - - - - XML utility methods - - - - - Adds an attribute to an XML node. - - The XML node. - The attribute name. - The attribute value. - - - - Adds a child element to an XML node. - - The parent XML node. - The child element name. - The new child XML element. - - - - Exception that is thrown when a call to Debug.Assert() fails. - - - - - Creates a new instance of the class. - - The original assert message - - - - Creates a new instance of the class. - - The original assert message - The original assert detailed message - - - - - - - - - - Gets the original assert detailed message. - - - - - Gets the original assert message. - - - - - Gets a message that describes the current exception. - - - - - Exception thrown when a collection unexpectedly contains the expected value. - - - - - Creates a new instance of the class. - - The expected object value - - - - - - - Exception thrown when code unexpectedly throws an exception. - - - - - Creates a new instance of the class. - - Actual exception - - - - THIS CONSTRUCTOR IS FOR UNIT TESTING PURPOSES ONLY. - - - - - - - - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - A string that describes the contents of the call stack, with the most recent method call appearing first. - - - - Exception thrown when a collection is unexpectedly not empty. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when two values are unexpectedly not equal. - - - - - Creates a new instance of the class. - - The expected object value - The actual object value - - - - Creates a new instance of the class. - - The expected object value - The actual object value - Set to true to skip the check for difference position - - - - - - - Exception thrown when a value is unexpectedly true. - - - - - Creates a new instance of the class. - - The user message to be display, or null for the default message - - - - - - - Exception thrown when a value is unexpectedly not in the given range. - - - - - Creates a new instance of the class. - - The actual object value - The low value of the range - The high value of the range - - - - - - - - - - Gets the actual object value - - - - - Gets the high value of the range - - - - - Gets the low value of the range - - - - - Gets a message that describes the current exception. - - The error message that explains the reason for the exception, or an empty string(""). - - - - Exception thrown when the value is unexpectedly of the exact given type. - - - - - Creates a new instance of the class. - - The expected type - The actual object value - - - - - - - Exception thrown when the value is unexpectedly not of the exact given type. - - - - - Creates a new instance of the class. - - The expected type - The actual object value - - - - - - - Used to decorate xUnit.net test classes that utilize fixture classes. - An instance of the fixture data is initialized just before the first - test in the class is run, and if it implements IDisposable, is disposed - after the last test in the class is run. - - The type of the fixture - - - - Called on the test class just before each test method is run, - passing the fixture data so that it can be used for the test. - All test runs share the same instance of fixture data. - - The fixture data - - - - Exception thrown when a value is unexpectedly in the given range. - - - - - Creates a new instance of the class. - - The actual object value - The low value of the range - The high value of the range - - - - - - - - - - Gets the actual object value - - - - - Gets the high value of the range - - - - - Gets the low value of the range - - - - - Gets a message that describes the current exception. - - The error message that explains the reason for the exception, or an empty string(""). - - - - Base attribute which indicates a test method interception (allows code to be run before and - after the test is run). - - - - - This method is called after the test method is executed. - - The method under test - - - - This method is called before the test method is executed. - - The method under test - - - - - - - Exception thrown when a collection is unexpectedly empty. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when two values are unexpectedly equal. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when an object is unexpectedly null. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when two values are unexpected the same instance. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when an object reference is unexpectedly not null. - - - - - Creates a new instance of the class. - - - - - - - - - Command that automatically creates the instance of the test class - and disposes it (if it implements ). - - - - - Creates a new instance of the object. - - The command that is bring wrapped - The method under test - - - - Executes the test method. Creates a new instance of the class - under tests and passes it to the inner command. Also catches - any exceptions and converts them into s. - - The instance of the test class - Returns information about the test run - - - - Command used to wrap a which has associated - fixture data. - - - - - Creates a new instance of the class. - - The inner command - The fixtures to be set on the test class - - - - Sets the fixtures on the test class by calling SetFixture, then - calls the inner command. - - The instance of the test class - Returns information about the test run - - - - A timer class used to figure out how long tests take to run. On most .NET implementations - this will use the class because it's a high - resolution timer; however, on Silverlight/CoreCLR, it will use - (which will provide lower resolution results). - - - - - Creates a new instance of the class. - - - - - Starts timing. - - - - - Stops timing. - - - - - Gets how long the timer ran, in milliseconds. In order for this to be valid, - both and must have been called. - - - - - Attribute used to decorate a test method with arbitrary name/value pairs ("traits"). - - - - - Creates a new instance of the class. - - The trait name - The trait value - - - - Gets the trait name. - - - - - - - - Gets the trait value. - - - - - Runner that executes an synchronously. - - - - - Execute the . - - The test class command to execute - The methods to execute; if null or empty, all methods will be executed - The start run callback - The end run result callback - A with the results of the test run - - - - Factory for objects, based on the type under test. - - - - - Creates the test class command, which implements , for a given type. - - The type under test - The test class command, if the class is a test class; null, otherwise - - - - Creates the test class command, which implements , for a given type. - - The type under test - The test class command, if the class is a test class; null, otherwise - - - - Represents an xUnit.net test class - - - - - Interface which describes the ability to executes all the tests in a test class. - - - - - Allows the test class command to choose the next test to be run from the list of - tests that have not yet been run, thereby allowing it to choose the run order. - - The tests remaining to be run - The index of the test that should be run - - - - Execute actions to be run after all the test methods of this test class are run. - - Returns the thrown during execution, if any; null, otherwise - - - - Execute actions to be run before any of the test methods of this test class are run. - - Returns the thrown during execution, if any; null, otherwise - - - - Enumerates the test commands for a given test method in this test class. - - The method under test - The test commands for the given test method - - - - Enumerates the methods which are test methods in this test class. - - The test methods - - - - Determines if a given refers to a test method. - - The test method to validate - True if the method is a test method; false, otherwise - - - - Gets the object instance that is under test. May return null if you wish - the test framework to create a new object instance for each test method. - - - - - Gets or sets the type that is being tested - - - - - Creates a new instance of the class. - - - - - Creates a new instance of the class. - - The type under test - - - - Creates a new instance of the class. - - The type under test - - - - Chooses the next test to run, randomly, using the . - - The tests remaining to be run - The index of the test that should be run - - - - Execute actions to be run after all the test methods of this test class are run. - - Returns the thrown during execution, if any; null, otherwise - - - - Execute actions to be run before any of the test methods of this test class are run. - - Returns the thrown during execution, if any; null, otherwise - - - - Enumerates the test commands for a given test method in this test class. - - The method under test - The test commands for the given test method - - - - Enumerates the methods which are test methods in this test class. - - The test methods - - - - Determines if a given refers to a test method. - - The test method to validate - True if the method is a test method; false, otherwise - - - - Gets the object instance that is under test. May return null if you wish - the test framework to create a new object instance for each test method. - - - - - Gets or sets the randomizer used to determine the order in which tests are run. - - - - - Sets the type that is being tested - - - - - Implementation of that represents a skipped test. - - - - - Creates a new instance of the class. - - The method that is being skipped - The display name for the test. If null, the fully qualified - type name is used. - The reason the test was skipped. - - - - - - - - - - Gets the skip reason. - - - - - - - - Factory for creating objects. - - - - - Make instances of objects for the given class and method. - - The class command - The method under test - The set of objects - - - - A command wrapper which times the running of a command. - - - - - Creates a new instance of the class. - - The command that will be timed. - - - - Executes the inner test method, gathering the amount of time it takes to run. - - Returns information about the test run - - - - Wraps a command which should fail if it runs longer than the given timeout value. - - - - - Creates a new instance of the class. - - The command to be run - The timout, in milliseconds - The method under test - - - - Executes the test method, failing if it takes too long. - - Returns information about the test run - - - - - - - Attributes used to decorate a test fixture that is run with an alternate test runner. - The test runner must implement the interface. - - - - - Creates a new instance of the class. - - The class which implements ITestClassCommand and acts as the runner - for the test fixture. - - - - Gets the test class command. - - - - - Exception thrown when two object references are unexpectedly not the same instance. - - - - - Creates a new instance of the class. - - The expected object reference - The actual object reference - - - - - - - Contains the test results from an assembly. - - - - - Contains multiple test results, representing them as a composite test result. - - - - - Adds a test result to the composite test result list. - - - - - - Gets the test results. - - - - - Creates a new instance of the class. - - The filename of the assembly - - - - Creates a new instance of the class. - - The filename of the assembly - The configuration filename - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets the fully qualified filename of the configuration file. - - - - - Gets the directory where the assembly resides. - - - - - Gets the number of failed results. - - - - - Gets the fully qualified filename of the assembly. - - - - - Gets the number of passed results. - - - - - Gets the number of skipped results. - - - - - Contains the test results from a test class. - - - - - Creates a new instance of the class. - - The type under test - - - - Creates a new instance of the class. - - The simple name of the type under test - The fully qualified name of the type under test - The namespace of the type under test - - - - Sets the exception thrown by the test fixture. - - The thrown exception - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets the fully qualified test fixture exception type, when an exception has occurred. - - - - - Gets the number of tests which failed. - - - - - Gets the fully qualified name of the type under test. - - - - - Gets the test fixture exception message, when an exception has occurred. - - - - - Gets the simple name of the type under test. - - - - - Gets the namespace of the type under test. - - - - - Gets the number of tests which passed. - - - - - Gets the number of tests which were skipped. - - - - - Gets the test fixture exception stack trace, when an exception has occurred. - - - - - Represents a failed test result. - - - - - Represents the results from running a test method - - - - - Initializes a new instance of the class. The traits for - the test method are discovered using reflection. - - The method under test. - The display name for the test. If null, the fully qualified - type name is used. - - - - Initializes a new instance of the class. - - The name of the method under test. - The type of the method under test. - The display name for the test. If null, the fully qualified - type name is used. - The traits. - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets or sets the display name of the method under test. This is the value that's shown - during failures and in the resulting output XML. - - - - - Gets the name of the method under test. - - - - - Gets or sets the standard output/standard error from the test that was captured - while the test was running. - - - - - Gets the traits attached to the test method. - - - - - Gets the name of the type under test. - - - - - Creates a new instance of the class. - - The method under test - The exception throw by the test - The display name for the test. If null, the fully qualified - type name is used. - - - - Creates a new instance of the class. - - The name of the method under test - The name of the type under test - The display name of the test - The custom properties attached to the test method - The full type name of the exception throw - The exception message - The exception stack trace - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets the exception type thrown by the test method. - - - - - Gets the exception message thrown by the test method. - - - - - Gets the stack trace of the exception thrown by the test method. - - - - - Represents a passing test result. - - - - - Create a new instance of the class. - - The method under test - The display name for the test. If null, the fully qualified - type name is used. - - - - Create a new instance of the class. - - The name of the method under test - The name of the type under test - The display name for the test. If null, the fully qualified - type name is used. - The custom properties attached to the test method - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Represents a skipped test result. - - - - - Creates a new instance of the class. Uses reflection to discover - the skip reason. - - The method under test - The display name for the test. If null, the fully qualified - type name is used. - The reason the test was skipped. - - - - Creates a new instance of the class. - - The name of the method under test - The name of the type under test - The display name for the test. If null, the fully qualified - type name is used. - The traits attached to the method under test - The skip reason - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets the skip reason. - - - - - Represents information about an attribute. - - - - - Gets the instance of the attribute, if available. - - The type of the attribute - The instance of the attribute, if available. - - - - Gets an initialized property value of the attribute. - - The type of the property - The name of the property - The property value - - - - Represents information about a method. - - - - - Creates an instance of the type where this test method was found. If using - reflection, this should be the ReflectedType. - - A new instance of the type. - - - - Gets all the custom attributes for the method that are of the given type. - - The type of the attribute - The matching attributes that decorate the method - - - - Determines if the method has at least one instance of the given attribute type. - - The type of the attribute - True if the method has at least one instance of the given attribute type; false, otherwise - - - - Invokes the test on the given class, with the given parameters. - - The instance of the test class (may be null if - the test method is static). - The parameters to be passed to the test method. - - - - Gets a value which represents the class that this method was - reflected from (i.e., equivalent to MethodInfo.ReflectedType) - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is static. - - - - - Gets the underlying for the method, if available. - - - - - Gets the name of the method. - - - - - Gets the fully qualified type name of the return type. - - - - - Gets the fully qualified type name of the type that this method belongs to. If - using reflection, this should be the ReflectedType. - - - - - Represents information about a type. - - - - - Gets all the custom attributes for the type that are of the given attribute type. - - The type of the attribute - The matching attributes that decorate the type - - - - Gets a test method by name. - - The name of the method - The method, if it exists; null, otherwise. - - - - Gets all the methods - - - - - - Determines if the type has at least one instance of the given attribute type. - - The type of the attribute - True if the type has at least one instance of the given attribute type; false, otherwise - - - - Determines if the type implements the given interface. - - The type of the interface - True if the type implements the given interface; false, otherwise - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets the underlying object, if available. - - - - - Utility class which inspects methods for test information - - - - - Gets the display name. - - The method to be inspected - The display name - - - - Gets the skip reason from a test method. - - The method to be inspected - The skip reason - - - - Gets the test commands for a test method. - - The method to be inspected - The objects for the test method - - - - Gets the timeout value for a test method. - - The method to be inspected - The timeout, in milliseconds - - - - Gets the traits on a test method. - - The method to be inspected - A dictionary of the traits - - - - Determines whether a test method has a timeout. - - The method to be inspected - True if the method has a timeout; false, otherwise - - - - Determines whether a test method has traits. - - The method to be inspected - True if the method has traits; false, otherwise - - - - Determines whether a test method should be skipped. - - The method to be inspected - True if the method should be skipped; false, otherwise - - - - Determines whether a method is a test method. A test method must be decorated - with the (or derived class) and must not be abstract. - - The method to be inspected - True if the method is a test method; false, otherwise - - - - Wrapper to implement and using reflection. - - - - - Converts an into an using reflection. - - - - - - - Converts a into an using reflection. - - The method to wrap - The wrapper - - - - Converts a into an using reflection. - - The type to wrap - The wrapper - - - - Utility class which inspects types for test information - - - - - Determines if a type contains any test methods - - The type to be inspected - True if the class contains any test methods; false, otherwise - - - - Retrieves the type to run the test class with from the , if present. - - The type to be inspected - The type of the test class runner, if present; null, otherwise - - - - Retrieves a list of the test methods from the test class. - - The type to be inspected - The test methods - - - - Determines if the test class has a applied to it. - - The type to be inspected - True if the test class has a run with attribute; false, otherwise - - - - Determines if the type implements . - - The type to be inspected - True if the type implements ; false, otherwise - - - - Determines whether the specified type is abstract. - - The type. - - true if the specified type is abstract; otherwise, false. - - - - - Determines whether the specified type is static. - - The type. - - true if the specified type is static; otherwise, false. - - - - - Determines if a class is a test class. - - The type to be inspected - True if the type is a test class; false, otherwise - - - - Attribute that is applied to a method to indicate that it is a fact that should be run - by the test runner. It can also be extended to support a customized definition of a - test method. - - - - - Creates instances of which represent individual intended - invocations of the test method. - - The method under test - An enumerator through the desired test method invocations - - - - Enumerates the test commands represented by this test method. Derived classes should - override this method to return instances of , one per execution - of a test method. - - The test method - The test commands which will execute the test runs for the given method - - - - Gets the name of the test to be used when the test is skipped. Defaults to - null, which will cause the fully qualified test name to be used. - - - - - Obsolete. Please use the property instead. - - - - - Marks the test so that it will not be run, and gets or sets the skip reason - - - - - Marks the test as failing if it does not finish running within the given time - period, in milliseconds; set to 0 or less to indicate the method has no timeout - - - - - Exception thrown when code unexpectedly fails to throw an exception. - - - - - Creates a new instance of the class. Call this constructor - when no exception was thrown. - - The type of the exception that was expected - - - - Creates a new instance of the class. Call this constructor - when an exception of the wrong type was thrown. - - The type of the exception that was expected - The actual exception that was thrown - - - - - - - THIS CONSTRUCTOR IS FOR UNIT TESTING PURPOSES ONLY. - - - - - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - A string that describes the contents of the call stack, with the most recent method call appearing first. - - - - Exception thrown when a test method exceeds the given timeout value - - - - - Creates a new instance of the class. - - The timeout value, in milliseconds - - - - - - - Exception thrown when a value is unexpectedly false. - - - - - Creates a new instance of the class. - - The user message to be displayed, or null for the default message - - - - - -