diff --git a/ConventionTests.sln b/ConventionTests.sln index c497571..a4cc3ee 100644 --- a/ConventionTests.sln +++ b/ConventionTests.sln @@ -1,11 +1,12 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.22823.1 +VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{AF9054EE-FE89-47A4-9156-BE54A837F2F7}" ProjectSection(SolutionItems) = preProject appveyor.yml = appveyor.yml + GitVersionConfig.yaml = GitVersionConfig.yaml README.md = README.md EndProjectSection EndProject diff --git a/ConventionTests.sln.DotSettings b/ConventionTests.sln.DotSettings index bcc6c47..5be309a 100644 --- a/ConventionTests.sln.DotSettings +++ b/ConventionTests.sln.DotSettings @@ -10,5 +10,6 @@ MQ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + True True True \ No newline at end of file diff --git a/GitVersionConfig.yaml b/GitVersionConfig.yaml index 995ac05..0d06d01 100644 --- a/GitVersionConfig.yaml +++ b/GitVersionConfig.yaml @@ -1 +1,4 @@ -next-version: 2.3.0 \ No newline at end of file +next-version: 3.0.0 +branches: + master: + tag: beta \ No newline at end of file diff --git a/Samples/SampleApp.Tests/ProjectConfigurationTests.cs b/Samples/SampleApp.Tests/ProjectConfigurationTests.cs index 1564718..5197bf1 100644 --- a/Samples/SampleApp.Tests/ProjectConfigurationTests.cs +++ b/Samples/SampleApp.Tests/ProjectConfigurationTests.cs @@ -2,54 +2,51 @@ { using System; using System.IO; - using System.Xml.Linq; - using NSubstitute; using NUnit.Framework; - using SampleApp.Domain; - using SampleApp.Dtos; using TestStack.ConventionTests; using TestStack.ConventionTests.ConventionData; using TestStack.ConventionTests.Conventions; - using TestStack.ConventionTests.Internal; [TestFixture] public class ProjectConfigurationTests { - IProjectLocator projectLocator; - IProjectProvider projectProvider; + string projectLocation; - [SetUp] - public void Setup() + public ProjectConfigurationTests() { - projectLocator = Substitute.For(); - projectProvider = Substitute.For(); - projectProvider - .LoadProjectDocument(Arg.Any()) - .Returns(XDocument.Parse(File.ReadAllText(Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @"..\..\..\SampleApp\SampleApp.csproj"))))); + projectLocation = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @"..\..\..\SampleApp\SampleApp.csproj")); } [Test] public void debug_configurations_should_have_debug_type_pdb_only() { - Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Debug, "DebugType", "full"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator)); + var configurationHasSpecificValue = new ConfigurationHasSpecificValue(ConfigurationType.Debug, "DebugType", "full"); + var projectPropertyGroups = new ProjectPropertyGroups(projectLocation); + Convention.Is(configurationHasSpecificValue, projectPropertyGroups); } [Test] public void debug_configurations_should_have_optimize_false() { - Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Debug, "Optimize", "false"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator)); + var configurationHasSpecificValue = new ConfigurationHasSpecificValue(ConfigurationType.Debug, "Optimize", "false"); + var projectPropertyGroups = new ProjectPropertyGroups(projectLocation); + Convention.Is(configurationHasSpecificValue, projectPropertyGroups); } [Test] public void release_configurations_should_have_debug_type_pdb_only() { - Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Release, "DebugType", "pdbonly"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator)); + var configurationHasSpecificValue = new ConfigurationHasSpecificValue(ConfigurationType.Release, "DebugType", "pdbonly"); + var projectPropertyGroups = new ProjectPropertyGroups(projectLocation); + Convention.Is(configurationHasSpecificValue, projectPropertyGroups); } [Test] public void release_configurations_should_have_optimize_true() { - Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Release, "Optimize", "true"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator)); + var configurationHasSpecificValue = new ConfigurationHasSpecificValue(ConfigurationType.Release, "Optimize", "true"); + var projectPropertyGroups = new ProjectPropertyGroups(projectLocation); + Convention.Is(configurationHasSpecificValue, projectPropertyGroups); } } } \ No newline at end of file diff --git a/Samples/SampleApp.Tests/SqlScriptTests.cs b/Samples/SampleApp.Tests/SqlScriptTests.cs index c86a91b..b9319df 100644 --- a/Samples/SampleApp.Tests/SqlScriptTests.cs +++ b/Samples/SampleApp.Tests/SqlScriptTests.cs @@ -1,5 +1,7 @@ namespace SampleApp.Tests { + using System; + using System.IO; using NUnit.Framework; using SampleApp.Domain; using TestStack.ConventionTests; @@ -9,11 +11,17 @@ [TestFixture] public class SqlScriptTests { + string projectLocation; + + public SqlScriptTests() + { + projectLocation = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @"..\..\..\SampleApp\SampleApp.csproj")); + } + [Test] - [Explicit] // Only works when shadow copy disabled for tests public void SqlScriptsShouldBeEmbeddedResources() { - Convention.Is(new FilesAreEmbeddedResources(".sql"), new ProjectFileItems(typeof(DomainClass).Assembly)); + Convention.Is(new FilesAreEmbeddedResources(".sql"), new ProjectFileItems(projectLocation)); } } } diff --git a/TestStack.ConventionTests.Tests/ConventionAssertionClassTests.cs b/TestStack.ConventionTests.Tests/ConventionAssertionClassTests.cs deleted file mode 100644 index 36d9d01..0000000 --- a/TestStack.ConventionTests.Tests/ConventionAssertionClassTests.cs +++ /dev/null @@ -1,41 +0,0 @@ -namespace TestStack.ConventionTests.Tests -{ - using ApprovalTests.Reporters; - using NUnit.Framework; - - [TestFixture] - [UseReporter(typeof(QuietReporter))] //NOTE: Can we take care of this in IsWithApprovedExceptions? - public class ConventionAssertionClassTests - { - [Test] - public void approval_mismatch() - { - //NOTE Do not approve any changes to this test - var ex = Assert.Throws(() => Convention.IsWithApprovedExeptions(new FailingConvention(), new FakeData())); - - StringAssert.Contains("Approved exceptions for convention differs", ex.Message); - StringAssert.Contains("Failed Approval: Received file ", ex.Message); - StringAssert.Contains("does not match approved file", ex.Message); - } - - class FakeData : IConventionData - { - public string Description { get { return "Fake data"; } } - - public bool HasData { get { return true; } } - } - - class FailingConvention : IConvention - { - public void Execute(FakeData data, IConventionResultContext result) - { - result.Is("Header", new[] {"Different"}); - } - - public string ConventionReason - { - get { return "Because fail.."; } - } - } - } -} \ No newline at end of file diff --git a/TestStack.ConventionTests.Tests/ConventionData/ProjectPropertyGroupsTests.cs b/TestStack.ConventionTests.Tests/ConventionData/ProjectPropertyGroupsTests.cs index 6843a8d..7d899e1 100644 --- a/TestStack.ConventionTests.Tests/ConventionData/ProjectPropertyGroupsTests.cs +++ b/TestStack.ConventionTests.Tests/ConventionData/ProjectPropertyGroupsTests.cs @@ -23,10 +23,10 @@ public void Setup() public void can_parse_a_normal_project_file_to_read_global_debug_and_release_property_groups() { projectProvider - .LoadProjectDocument(Arg.Any()) + .LoadProjectDocument() .Returns(XDocument.Parse(Resources.ProjectFileWithBinReference)); - var projectGroups = new ProjectPropertyGroups(typeof(ProjectPropertyGroups).Assembly, projectProvider, Substitute.For()); + var projectGroups = new ProjectPropertyGroups(projectProvider); Assert.That(projectGroups.PropertyGroups.Length, Is.EqualTo(3)); Assert.That(projectGroups.PropertyGroups.Any(item => item.Debug)); diff --git a/TestStack.ConventionTests.Tests/CsvReportTests.cs b/TestStack.ConventionTests.Tests/CsvReportTests.cs index e9649c3..95d7064 100644 --- a/TestStack.ConventionTests.Tests/CsvReportTests.cs +++ b/TestStack.ConventionTests.Tests/CsvReportTests.cs @@ -1,14 +1,13 @@ namespace TestStack.ConventionTests.Tests { using System.Linq; - using ApprovalTests.Reporters; using NUnit.Framework; + using Shouldly; using TestAssembly.Collections; using TestStack.ConventionTests.ConventionData; using TestStack.ConventionTests.Reporting; using TestStack.ConventionTests.Tests.TestConventions; - - [UseReporter(typeof(DiffReporter))] + public class CsvReportTests { [Test] @@ -17,9 +16,11 @@ public void Can_run_convention_with_simple_reporter() var typesToVerify = typeof (Leaf).Assembly.GetExportedTypes() .Where(t => t.Namespace == typeof (Leaf).Namespace); - Convention.IsWithApprovedExeptions(new CollectionsRelationsConvention(), + var failures = Convention.GetFailures(new CollectionsRelationsConvention(), new Types(typesToVerify, "Entities"), new CsvReporter()); + + failures.ShouldMatchApproved(); } } } \ No newline at end of file diff --git a/TestStack.ConventionTests.Tests/MvcConventions.cs b/TestStack.ConventionTests.Tests/MvcConventions.cs index 261ae8c..41cbfdf 100644 --- a/TestStack.ConventionTests.Tests/MvcConventions.cs +++ b/TestStack.ConventionTests.Tests/MvcConventions.cs @@ -1,14 +1,12 @@ namespace TestStack.ConventionTests.Tests { - using ApprovalTests; - using ApprovalTests.Reporters; using NUnit.Framework; + using Shouldly; using TestAssembly.Controllers; using TestStack.ConventionTests.ConventionData; using TestStack.ConventionTests.Conventions; [TestFixture] - [UseReporter(typeof(DiffReporter))] public class MvcConventions { [Test] @@ -17,8 +15,9 @@ public void controller_conventions() var types = Types.InAssemblyOf(); var convention = new MvcControllerNameAndBaseClassConvention(); - var ex = Assert.Throws(() => Convention.Is(convention, types)); - Approvals.Verify(ex.Message); + var failures = Convention.GetFailures(convention, types); + + failures.ShouldMatchApproved(); } [Test] @@ -27,8 +26,9 @@ public void api_controller_conventions() var types = Types.InAssemblyOf(); var convention = new ApiControllerNamingAndBaseClassConvention(); - var ex = Assert.Throws(() => Convention.Is(convention, types)); - Approvals.Verify(ex.Message); + var failures = Convention.GetFailures(convention, types); + + failures.ShouldMatchApproved(); } } } \ No newline at end of file diff --git a/TestStack.ConventionTests.Tests/ProjectBasedConventions.all_configuration_groups_should_have_optimize_true_if_property_defined.approved.txt b/TestStack.ConventionTests.Tests/ProjectBasedConventions.all_configuration_groups_should_have_optimize_true_if_property_defined.approved.txt index 183a444..096f871 100644 --- a/TestStack.ConventionTests.Tests/ProjectBasedConventions.all_configuration_groups_should_have_optimize_true_if_property_defined.approved.txt +++ b/TestStack.ConventionTests.Tests/ProjectBasedConventions.all_configuration_groups_should_have_optimize_true_if_property_defined.approved.txt @@ -1,4 +1,4 @@ -'Optimize property in Release|AnyCPU must have a value of true' for 'Project property groups in TestStack.ConventionTests.Tests' --------------------------------------------------------------------------------------------------------------------------------- +'Optimize property in Release|AnyCPU must have a value of true' for 'Project property groups in ProjectName' +------------------------------------------------------------------------------------------------------------ Optimize:false diff --git a/TestStack.ConventionTests.Tests/ProjectBasedConventions.all_configuration_groups_should_have_platform_AnyCPU.approved.txt b/TestStack.ConventionTests.Tests/ProjectBasedConventions.all_configuration_groups_should_have_platform_AnyCPU.approved.txt index f8ebe7a..34f7c3e 100644 --- a/TestStack.ConventionTests.Tests/ProjectBasedConventions.all_configuration_groups_should_have_platform_AnyCPU.approved.txt +++ b/TestStack.ConventionTests.Tests/ProjectBasedConventions.all_configuration_groups_should_have_platform_AnyCPU.approved.txt @@ -1,4 +1,12 @@ -'Platform property in Release|x86 must have a value of AnyCPU' for 'Project property groups in TestStack.ConventionTests.Tests' -------------------------------------------------------------------------------------------------------------------------------- +'Platform property in Global must have a value of AnyCPU' for 'Project property groups in ProjectName' +------------------------------------------------------------------------------------------------------ + + +'Platform property in Release|AnyCPU must have a value of AnyCPU' for 'Project property groups in ProjectName' +-------------------------------------------------------------------------------------------------------------- + + +'Platform property in Release|x86 must have a value of AnyCPU' for 'Project property groups in ProjectName' +----------------------------------------------------------------------------------------------------------- Platform:x86 diff --git a/TestStack.ConventionTests.Tests/ProjectBasedConventions.assemblies_referencing_bin_obj.approved.txt b/TestStack.ConventionTests.Tests/ProjectBasedConventions.assemblies_referencing_bin_obj.approved.txt index 1e8871b..57b2b9c 100644 --- a/TestStack.ConventionTests.Tests/ProjectBasedConventions.assemblies_referencing_bin_obj.approved.txt +++ b/TestStack.ConventionTests.Tests/ProjectBasedConventions.assemblies_referencing_bin_obj.approved.txt @@ -1,4 +1,4 @@ -'Project must not reference dlls from bin or obj directories' for 'Project references in TestStack.ConventionTests.Tests' -------------------------------------------------------------------------------------------------------------------------- +'Project must not reference dlls from bin or obj directories' for 'Project references in ProjectName' +----------------------------------------------------------------------------------------------------- bin\Debug\ApprovalTests.dll diff --git a/TestStack.ConventionTests.Tests/ProjectBasedConventions.assemblies_referencing_bin_obj_with_approved_exceptions.approved.txt b/TestStack.ConventionTests.Tests/ProjectBasedConventions.assemblies_referencing_bin_obj_with_approved_exceptions.approved.txt index 1e8871b..57b2b9c 100644 --- a/TestStack.ConventionTests.Tests/ProjectBasedConventions.assemblies_referencing_bin_obj_with_approved_exceptions.approved.txt +++ b/TestStack.ConventionTests.Tests/ProjectBasedConventions.assemblies_referencing_bin_obj_with_approved_exceptions.approved.txt @@ -1,4 +1,4 @@ -'Project must not reference dlls from bin or obj directories' for 'Project references in TestStack.ConventionTests.Tests' -------------------------------------------------------------------------------------------------------------------------- +'Project must not reference dlls from bin or obj directories' for 'Project references in ProjectName' +----------------------------------------------------------------------------------------------------- bin\Debug\ApprovalTests.dll diff --git a/TestStack.ConventionTests.Tests/ProjectBasedConventions.cs b/TestStack.ConventionTests.Tests/ProjectBasedConventions.cs index b2734fd..dd2c76e 100644 --- a/TestStack.ConventionTests.Tests/ProjectBasedConventions.cs +++ b/TestStack.ConventionTests.Tests/ProjectBasedConventions.cs @@ -1,17 +1,15 @@ namespace TestStack.ConventionTests.Tests { using System.Xml.Linq; - using ApprovalTests; - using ApprovalTests.Reporters; using NSubstitute; using NUnit.Framework; + using Shouldly; using TestStack.ConventionTests.ConventionData; using TestStack.ConventionTests.Conventions; using TestStack.ConventionTests.Internal; using TestStack.ConventionTests.Tests.Properties; [TestFixture] - [UseReporter(typeof(DiffReporter))] public class ProjectBasedConventions { IProjectProvider projectProvider; @@ -20,107 +18,98 @@ public class ProjectBasedConventions public void Setup() { projectProvider = Substitute.For(); + projectProvider.GetName().Returns("ProjectName"); } [Test] public void assemblies_referencing_bin_obj() { projectProvider - .LoadProjectDocument(Arg.Any()) + .LoadProjectDocument() .Returns(XDocument.Parse(Resources.ProjectFileWithBinReference)); - - var projectLocator = Substitute.For(); - var project = new ProjectReferences(typeof(ProjectBasedConventions).Assembly, projectProvider, projectLocator); - var ex = Assert.Throws(() => Convention.Is(new ProjectDoesNotReferenceDllsFromBinOrObjDirectories(), project)); - - Approvals.Verify(ex.Message); + + var project = new ProjectReferences(projectProvider); + var failures = Convention.GetFailures(new ProjectDoesNotReferenceDllsFromBinOrObjDirectories(), project); + + failures.ShouldMatchApproved(); } [Test] public void assemblies_referencing_bin_obj_with_approved_exceptions() { projectProvider - .LoadProjectDocument(Arg.Any()) + .LoadProjectDocument() .Returns(XDocument.Parse(Resources.ProjectFileWithBinReference)); + var project = new ProjectReferences(projectProvider); + var failures = Convention.GetFailures(new ProjectDoesNotReferenceDllsFromBinOrObjDirectories(), project); - var projectLocator = Substitute.For(); - var project = new ProjectReferences(typeof(ProjectBasedConventions).Assembly, projectProvider, projectLocator); - Convention.IsWithApprovedExeptions(new ProjectDoesNotReferenceDllsFromBinOrObjDirectories(), project); + failures.ShouldMatchApproved(); } [Test] public void scripts_not_embedded_resources() { projectProvider - .LoadProjectDocument(Arg.Any()) + .LoadProjectDocument() .Returns(XDocument.Parse(Resources.ProjectFileWithInvalidSqlScriptFile)); + + var project = new ProjectFileItems(projectProvider); + var failures = Convention.GetFailures(new FilesAreEmbeddedResources(".sql"), project); - var projectLocator = Substitute.For(); - var project = new ProjectFileItems(typeof (ProjectBasedConventions).Assembly, projectProvider, projectLocator); - var ex = Assert.Throws(() => Convention.Is(new FilesAreEmbeddedResources(".sql"), project)); - - Approvals.Verify(ex.Message); + failures.ShouldMatchApproved(); } [Test] public void scripts_not_embedded_resources_with_approved_exceptions() { - var projectLocator = Substitute.For(); - var project = new ProjectFileItems(typeof (ProjectBasedConventions).Assembly, projectProvider, projectLocator); + var project = new ProjectFileItems(projectProvider); projectProvider - .LoadProjectDocument(Arg.Any()) + .LoadProjectDocument() .Returns(XDocument.Parse(Resources.ProjectFileWithInvalidSqlScriptFile)); - Convention.IsWithApprovedExeptions(new FilesAreEmbeddedResources(".sql"), project); + Convention.GetFailures(new FilesAreEmbeddedResources(".sql"), project); } [Test] public void release_debug_type_should_be_pdb_only() { projectProvider - .LoadProjectDocument(Arg.Any()) + .LoadProjectDocument() .Returns(XDocument.Parse(Resources.ProjectFileWithReleaseDebugTypeFull)); - var projectLocator = Substitute.For(); - var propertyGroups = new ProjectPropertyGroups(typeof(ProjectBasedConventions).Assembly, projectProvider, projectLocator); - var ex = - Assert.Throws( - () => Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Release, "DebugType", "pdbonly"), propertyGroups)); + var propertyGroups = new ProjectPropertyGroups(projectProvider); + var failures = Convention.GetFailures(new ConfigurationHasSpecificValue(ConfigurationType.Release, "DebugType", "pdbonly"), propertyGroups); - Approvals.Verify(ex.Message); + failures.ShouldMatchApproved(); } [Test] public void all_configuration_groups_should_have_platform_AnyCPU() { projectProvider - .LoadProjectDocument(Arg.Any()) + .LoadProjectDocument() .Returns(XDocument.Parse(Resources.ProjectFileWithReleaseDebugTypeFull)); - var projectLocator = Substitute.For(); - var propertyGroups = new ProjectPropertyGroups(typeof(ProjectBasedConventions).Assembly, projectProvider, projectLocator); - var ex = - Assert.Throws( - () => Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.All, "Platform", "AnyCPU"), propertyGroups)); + var propertyGroups = new ProjectPropertyGroups(projectProvider); + var failures = Convention.GetFailures(new ConfigurationHasSpecificValue(ConfigurationType.All, "Platform", "AnyCPU"), propertyGroups); - Approvals.Verify(ex.Message); + failures.ShouldMatchApproved(); } [Test] public void all_configuration_groups_should_have_optimize_true_if_property_defined() { projectProvider - .LoadProjectDocument(Arg.Any()) + .LoadProjectDocument() .Returns(XDocument.Parse(Resources.ProjectFileWithReleaseDebugTypeFull)); - var projectLocator = Substitute.For(); - var propertyGroups = new ProjectPropertyGroups(typeof(ProjectBasedConventions).Assembly, projectProvider, projectLocator); - var ex = - Assert.Throws( - () => Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.All, "Optimize", "true"), propertyGroups)); + var propertyGroups = new ProjectPropertyGroups(projectProvider); + var failures = + Convention.GetFailures(new ConfigurationHasSpecificValue(ConfigurationType.All, "Optimize", "true"), + propertyGroups); - Approvals.Verify(ex.Message); + failures.ShouldMatchApproved(); } } } \ No newline at end of file diff --git a/TestStack.ConventionTests.Tests/ProjectBasedConventions.release_debug_type_should_be_pdb_only.approved.txt b/TestStack.ConventionTests.Tests/ProjectBasedConventions.release_debug_type_should_be_pdb_only.approved.txt index 525c95e..132cc84 100644 --- a/TestStack.ConventionTests.Tests/ProjectBasedConventions.release_debug_type_should_be_pdb_only.approved.txt +++ b/TestStack.ConventionTests.Tests/ProjectBasedConventions.release_debug_type_should_be_pdb_only.approved.txt @@ -1,9 +1,9 @@ -'DebugType property in Release|AnyCPU must have a value of pdbonly' for 'Project property groups in TestStack.ConventionTests.Tests' ------------------------------------------------------------------------------------------------------------------------------------- +'DebugType property in Release|AnyCPU must have a value of pdbonly' for 'Project property groups in ProjectName' +---------------------------------------------------------------------------------------------------------------- DebugType:full -'DebugType property in Release|x86 must have a value of pdbonly' for 'Project property groups in TestStack.ConventionTests.Tests' ---------------------------------------------------------------------------------------------------------------------------------- +'DebugType property in Release|x86 must have a value of pdbonly' for 'Project property groups in ProjectName' +------------------------------------------------------------------------------------------------------------- DebugType:full diff --git a/TestStack.ConventionTests.Tests/ProjectBasedConventions.scripts_not_embedded_resources.approved.txt b/TestStack.ConventionTests.Tests/ProjectBasedConventions.scripts_not_embedded_resources.approved.txt index 3202fa8..2b1d9bb 100644 --- a/TestStack.ConventionTests.Tests/ProjectBasedConventions.scripts_not_embedded_resources.approved.txt +++ b/TestStack.ConventionTests.Tests/ProjectBasedConventions.scripts_not_embedded_resources.approved.txt @@ -1,4 +1,4 @@ -'.sql Files must be embedded resources' for 'Project file items in TestStack.ConventionTests.Tests' ---------------------------------------------------------------------------------------------------- +'.sql Files must be embedded resources' for 'Project file items in ProjectName' +------------------------------------------------------------------------------- Scripts\Script2.sql diff --git a/TestStack.ConventionTests.Tests/TestStack.ConventionTests.Tests.csproj b/TestStack.ConventionTests.Tests/TestStack.ConventionTests.Tests.csproj index fd63170..842230f 100644 --- a/TestStack.ConventionTests.Tests/TestStack.ConventionTests.Tests.csproj +++ b/TestStack.ConventionTests.Tests/TestStack.ConventionTests.Tests.csproj @@ -31,12 +31,6 @@ 4 - - ..\packages\ApprovalTests.3.0.01\lib\net40\ApprovalTests.dll - - - ..\packages\ApprovalUtilities.3.0.01\lib\net35\ApprovalUtilities.dll - ..\packages\Autofac.3.1.1\lib\net40\Autofac.dll @@ -46,6 +40,10 @@ ..\packages\NUnit.2.6.2\lib\nunit.framework.dll + + ..\packages\Shouldly.2.7.0-beta0002\lib\net40\Shouldly.dll + True + @@ -61,7 +59,6 @@ - diff --git a/TestStack.ConventionTests.Tests/TypeBasedConventions.cs b/TestStack.ConventionTests.Tests/TypeBasedConventions.cs index f78eda9..5e30e75 100644 --- a/TestStack.ConventionTests.Tests/TypeBasedConventions.cs +++ b/TestStack.ConventionTests.Tests/TypeBasedConventions.cs @@ -1,14 +1,12 @@ namespace TestStack.ConventionTests.Tests { - using ApprovalTests; - using ApprovalTests.Reporters; using NUnit.Framework; + using Shouldly; using TestAssembly; using TestStack.ConventionTests.ConventionData; using TestStack.ConventionTests.Conventions; [TestFixture] - [UseReporter(typeof (DiffReporter))] public class TypeBasedConventions { readonly Types nhibernateEntities; @@ -22,29 +20,33 @@ public TypeBasedConventions() [Test] public void all_classes_have_default_constructor() { - var ex = Assert.Throws(()=>Convention.Is(new AllClassesHaveDefaultConstructor(), nhibernateEntities)); + var failures = Convention.GetFailures(new AllClassesHaveDefaultConstructor(), nhibernateEntities); - Approvals.Verify(ex.Message); + failures.ShouldMatchApproved(); } [Test] public void all_classes_have_default_constructor_wth_approved_exceptions() { - Convention.IsWithApprovedExeptions(new AllClassesHaveDefaultConstructor(), nhibernateEntities); + var failures = Convention.GetFailures(new AllClassesHaveDefaultConstructor(), nhibernateEntities); + + failures.ShouldMatchApproved(); } [Test] public void all_methods_are_virtual() { - var ex = Assert.Throws(()=>Convention.Is(new AllMethodsAreVirtual(), nhibernateEntities)); + var failures = Convention.GetFailures(new AllMethodsAreVirtual(), nhibernateEntities); - Approvals.Verify(ex.Message); + failures.ShouldMatchApproved(); } [Test] public void all_methods_are_virtual_wth_approved_exceptions() { - Convention.IsWithApprovedExeptions(new AllMethodsAreVirtual(), nhibernateEntities); + var failures = Convention.GetFailures(new AllMethodsAreVirtual(), nhibernateEntities); + + failures.ShouldMatchApproved(); } [Test] @@ -53,8 +55,9 @@ public void dtos_exists_in_dto_namespace() var types = Types.InAssemblyOf(); var convention = new ClassTypeHasSpecificNamespace(t => t.Name.EndsWith("Dto"), "TestAssembly.Dtos", "Dto"); - var ex = Assert.Throws(() =>Convention.Is(convention, types)); - Approvals.Verify(ex.Message); + var failures = Convention.GetFailures(convention, types); + + failures.ShouldMatchApproved(); } [Test] @@ -63,7 +66,7 @@ public void dtos_exists_in_dto_namespace_wth_approved_exceptions() var types = Types.InAssemblyOf(); var convention = new ClassTypeHasSpecificNamespace(t => t.Name.EndsWith("Dto"), "TestAssembly.Dtos", "Dto"); - Convention.IsWithApprovedExeptions(convention, types); + Convention.GetFailures(convention, types); } } } diff --git a/TestStack.ConventionTests.Tests/packages.config b/TestStack.ConventionTests.Tests/packages.config index 468ba84..0f0fc04 100644 --- a/TestStack.ConventionTests.Tests/packages.config +++ b/TestStack.ConventionTests.Tests/packages.config @@ -1,8 +1,7 @@  - - + \ No newline at end of file diff --git a/TestStack.ConventionTests/Convention.cs b/TestStack.ConventionTests/Convention.cs index adf34cb..f9496e4 100644 --- a/TestStack.ConventionTests/Convention.cs +++ b/TestStack.ConventionTests/Convention.cs @@ -2,6 +2,7 @@ { using System; using System.Collections.Generic; + using System.Linq; using System.Reflection; using TestStack.ConventionTests.ConventionData; using TestStack.ConventionTests.Internal; @@ -10,7 +11,6 @@ public static class Convention { static IResultsProcessor[] defaultProcessors; - static IResultsProcessor[] defaultApprovalProcessors; static Convention() { @@ -32,26 +32,31 @@ public static void Is(IConvention convention, TDataSou ITestResultProcessor resultProcessor = null) where TDataSource : IConventionData { - if (defaultProcessors == null || defaultApprovalProcessors == null) + if (defaultProcessors == null) Init(Assembly.GetCallingAssembly()); - Execute(convention, data, defaultProcessors, resultProcessor ?? new ConventionReportTextRenderer()); + + Execute(convention, data, defaultProcessors.Concat(new[] { new ThrowOnFailureResultsProcessor() }), resultProcessor ?? new ConventionReportTextRenderer()); } /// - /// Verifies a convention, any exceptions are written to ApprovalTests to approve + /// Verifies a convention, returning the failures as a string instead of throwing an exception + /// + /// Allows you to approve or assert against the failures yourself /// - /// Convention.IsWithApprovedExeptions(new SomeConvention(), Types.InAssemblyOf<SomeTypeOfMine>()) - public static void IsWithApprovedExeptions(IConvention convention, TDataSource data, + /// Convention.GetFailures(new SomeConvention(), Types.InAssemblyOf<SomeTypeOfMine>()) + public static string GetFailures(IConvention convention, TDataSource data, ITestResultProcessor resultProcessor = null) where TDataSource : IConventionData { - if (defaultProcessors == null || defaultApprovalProcessors == null) + if (defaultProcessors == null) Init(Assembly.GetCallingAssembly()); - Execute(convention, data, defaultApprovalProcessors, resultProcessor ?? new ConventionReportTextRenderer()); + var captureFailuresProcessor = new CaptureFailuresProcessor(); + Execute(convention, data, defaultProcessors.Concat(new [] { captureFailuresProcessor }), resultProcessor ?? new ConventionReportTextRenderer()); + return captureFailuresProcessor.Failures; } static void Execute(IConvention convention, TDataSource data, - IResultsProcessor[] processors, ITestResultProcessor resultProcessor) + IEnumerable processors, ITestResultProcessor resultProcessor) where TDataSource : IConventionData { var dataDescription = string.Format("{0} in {1}", data.GetType().GetSentenceCaseName(), data.Description); @@ -63,22 +68,17 @@ static void Init(Assembly assembly) { var customReporters = assembly.GetCustomAttributes(typeof(ConventionReporterAttribute), false); - defaultProcessors = new IResultsProcessor[customReporters.Length + 2]; - defaultApprovalProcessors = new IResultsProcessor[customReporters.Length + 2]; + defaultProcessors = new IResultsProcessor[customReporters.Length + 1]; for (var index = 0; index < customReporters.Length; index++) { var customReporter = (ConventionReporterAttribute)customReporters[index]; var resultsProcessor = (IResultsProcessor)Activator.CreateInstance(customReporter.ReporterType); defaultProcessors[index] = resultsProcessor; - defaultApprovalProcessors[index] = resultsProcessor; } var conventionReportTraceRenderer = new ConventionReportTraceRenderer(); - defaultProcessors[defaultProcessors.Length - 2] = conventionReportTraceRenderer; - defaultApprovalProcessors[defaultProcessors.Length - 2] = conventionReportTraceRenderer; - defaultProcessors[defaultProcessors.Length - 1] = new ThrowOnFailureResultsProcessor(); - defaultApprovalProcessors[defaultProcessors.Length - 1] = new ApproveResultsProcessor(); + defaultProcessors[defaultProcessors.Length - 1] = conventionReportTraceRenderer; } } } \ No newline at end of file diff --git a/TestStack.ConventionTests/ConventionData/AbstractProjectData.cs b/TestStack.ConventionTests/ConventionData/AbstractProjectData.cs index 071949a..7688060 100644 --- a/TestStack.ConventionTests/ConventionData/AbstractProjectData.cs +++ b/TestStack.ConventionTests/ConventionData/AbstractProjectData.cs @@ -1,33 +1,29 @@ namespace TestStack.ConventionTests.ConventionData { - using System.Reflection; + using System.IO; using System.Xml.Linq; using TestStack.ConventionTests.Internal; public abstract class AbstractProjectData : IConventionData { - protected AbstractProjectData(Assembly assembly, IProjectProvider projectProvider = null, IProjectLocator projectLocator = null) + protected AbstractProjectData(IProjectProvider projectProvider) { - Assembly = assembly; - ProjectProvider = projectProvider ?? new ProjectProvider(); - ProjectLocator = projectLocator ?? new AssemblyProjectLocator(); + ProjectProvider = projectProvider; + } + protected AbstractProjectData(string projectFilePath) + { + ProjectProvider = new ProjectFileFromDiskProvider(projectFilePath); } - - public Assembly Assembly { get; private set; } - - public IProjectLocator ProjectLocator { get; private set; } public IProjectProvider ProjectProvider { get; private set; } - public string Description { get { return Assembly.GetName().Name; } } + public string Description { get { return ProjectProvider.GetName(); } } - public bool HasData { get { return ProjectLocator.ResolveProjectFilePath(Assembly) != null; } } + public bool HasData { get { return true; } } protected XDocument GetProject() { - var location = ProjectLocator.ResolveProjectFilePath(Assembly); - var project = ProjectProvider.LoadProjectDocument(location); - return project; + return ProjectProvider.LoadProjectDocument(); } } } \ No newline at end of file diff --git a/TestStack.ConventionTests/ConventionData/ProjectFileItems.cs b/TestStack.ConventionTests/ConventionData/ProjectFileItems.cs index fdeb0f8..4d1665f 100644 --- a/TestStack.ConventionTests/ConventionData/ProjectFileItems.cs +++ b/TestStack.ConventionTests/ConventionData/ProjectFileItems.cs @@ -1,7 +1,6 @@ namespace TestStack.ConventionTests.ConventionData { using System.Linq; - using System.Reflection; using System.Xml.Linq; using TestStack.ConventionTests.Internal; @@ -10,8 +9,12 @@ /// public class ProjectFileItems : AbstractProjectData { - public ProjectFileItems(Assembly assembly, IProjectProvider projectProvider = null, IProjectLocator projectLocator = null) - : base(assembly, projectProvider, projectLocator) + public ProjectFileItems(IProjectProvider projectProvider) + : base(projectProvider) + { + } + + public ProjectFileItems(string projectFilePath) : base(projectFilePath) { } diff --git a/TestStack.ConventionTests/ConventionData/ProjectPropertyGroups.cs b/TestStack.ConventionTests/ConventionData/ProjectPropertyGroups.cs index d48be37..5a5d32a 100644 --- a/TestStack.ConventionTests/ConventionData/ProjectPropertyGroups.cs +++ b/TestStack.ConventionTests/ConventionData/ProjectPropertyGroups.cs @@ -2,14 +2,17 @@ { using System.Collections.Generic; using System.Linq; - using System.Reflection; using System.Xml.Linq; using TestStack.ConventionTests.Internal; public class ProjectPropertyGroups : AbstractProjectData { - public ProjectPropertyGroups(Assembly assembly, IProjectProvider projectProvider = null, IProjectLocator projectLocator = null) - : base(assembly, projectProvider, projectLocator) + public ProjectPropertyGroups(IProjectProvider projectProvider) + : base(projectProvider) + { + } + public ProjectPropertyGroups(string projectFileLocation) + : base(projectFileLocation) { } diff --git a/TestStack.ConventionTests/ConventionData/ProjectReferences.cs b/TestStack.ConventionTests/ConventionData/ProjectReferences.cs index e5e60d2..8ef4e95 100644 --- a/TestStack.ConventionTests/ConventionData/ProjectReferences.cs +++ b/TestStack.ConventionTests/ConventionData/ProjectReferences.cs @@ -1,16 +1,18 @@ namespace TestStack.ConventionTests.ConventionData { - using System; using System.Collections.Generic; using System.Linq; - using System.Reflection; using System.Xml.Linq; using TestStack.ConventionTests.Internal; public class ProjectReferences : AbstractProjectData { - public ProjectReferences(Assembly assembly, IProjectProvider projectProvider = null, IProjectLocator projectLocator = null) - : base(assembly, projectProvider, projectLocator) + public ProjectReferences(IProjectProvider projectProvider) + : base(projectProvider) + { + } + + public ProjectReferences(string projectFilePath) : base(projectFilePath) { } diff --git a/TestStack.ConventionTests/Internal/AssemblyProjectLocator.cs b/TestStack.ConventionTests/Internal/AssemblyProjectLocator.cs deleted file mode 100644 index 7241e0e..0000000 --- a/TestStack.ConventionTests/Internal/AssemblyProjectLocator.cs +++ /dev/null @@ -1,43 +0,0 @@ -namespace TestStack.ConventionTests.Internal -{ - using System; - using System.Reflection; - using Mono.Cecil; - using Mono.Cecil.Cil; - - public class AssemblyProjectLocator : IProjectLocator - { - public string ResolveProjectFilePath(Assembly assembly) - { - var readerParameters = new ReaderParameters {ReadSymbols = true, ReadingMode = ReadingMode.Deferred}; - var definition = AssemblyDefinition.ReadAssembly(assembly.Location, readerParameters); - var methodDefinition = GetMethodWithBody(definition); - var document = GetMethodDocument(methodDefinition); - return document.Url; - } - - static Document GetMethodDocument(MethodDefinition methodDefinition) - { - var instruction = methodDefinition.Body.Instructions[0]; - var document = instruction.SequencePoint.Document; - return document; - } - - static MethodDefinition GetMethodWithBody(AssemblyDefinition definition) - { - foreach (var type in definition.MainModule.Types) - { - if (type.HasMethods == false) continue; - - foreach (var method in type.Methods) - { - if (method.HasBody) - { - return method; - } - } - } - throw new InvalidOperationException("Couldn't find any type with methods with body"); - } - } -} \ No newline at end of file diff --git a/TestStack.ConventionTests/Internal/ConventionContext.cs b/TestStack.ConventionTests/Internal/ConventionContext.cs index 2f9c870..c628d4a 100644 --- a/TestStack.ConventionTests/Internal/ConventionContext.cs +++ b/TestStack.ConventionTests/Internal/ConventionContext.cs @@ -10,14 +10,14 @@ public class ConventionContext : IConventionResultContext, IConventionFormatCont { readonly string dataDescription; readonly IList formatters; - readonly IList processors; + readonly IEnumerable processors; readonly ITestResultProcessor testResultProcessor; readonly IList results = new List(); string conventionReason; bool resultSet; public ConventionContext(string dataDescription, IList formatters, - IList processors, ITestResultProcessor testResultProcessor) + IEnumerable processors, ITestResultProcessor testResultProcessor) { this.formatters = formatters; this.processors = processors; diff --git a/TestStack.ConventionTests/Internal/ConventionTestsApprovalTextWriter.cs b/TestStack.ConventionTests/Internal/ConventionTestsApprovalTextWriter.cs deleted file mode 100644 index 7a35101..0000000 --- a/TestStack.ConventionTests/Internal/ConventionTestsApprovalTextWriter.cs +++ /dev/null @@ -1,35 +0,0 @@ -namespace TestStack.ConventionTests.Internal -{ - using ApprovalTests; - using ApprovalTests.Core; - - public class ConventionTestsApprovalTextWriter : ApprovalTextWriter, IApprovalWriter - { - readonly int count; - - - public ConventionTestsApprovalTextWriter(string formattedResult, int count, string extensionWithoutDot) - : base(formattedResult, extensionWithoutDot) - { - this.count = count; - } - - string IApprovalWriter.GetApprovalFilename(string basename) - { - if (count == 0) - { - return GetApprovalFilename(basename); - } - return GetApprovalFilename(basename + count); - } - - string IApprovalWriter.GetReceivedFilename(string basename) - { - if (count == 0) - { - return GetReceivedFilename(basename); - } - return GetReceivedFilename(basename + count); - } - } -} \ No newline at end of file diff --git a/TestStack.ConventionTests/Internal/IProjectLocator.cs b/TestStack.ConventionTests/Internal/IProjectLocator.cs deleted file mode 100644 index 7bd0721..0000000 --- a/TestStack.ConventionTests/Internal/IProjectLocator.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace TestStack.ConventionTests.Internal -{ - using System.Reflection; - - public interface IProjectLocator - { - string ResolveProjectFilePath(Assembly assembly); - } -} \ No newline at end of file diff --git a/TestStack.ConventionTests/Internal/IProjectProvider.cs b/TestStack.ConventionTests/Internal/IProjectProvider.cs index 2431303..c4eb1c9 100644 --- a/TestStack.ConventionTests/Internal/IProjectProvider.cs +++ b/TestStack.ConventionTests/Internal/IProjectProvider.cs @@ -4,6 +4,7 @@ public interface IProjectProvider { - XDocument LoadProjectDocument(string resolveProjectFilePath); + XDocument LoadProjectDocument(); + string GetName(); } } \ No newline at end of file diff --git a/TestStack.ConventionTests/Internal/ProjectFileFromDiskProvider.cs b/TestStack.ConventionTests/Internal/ProjectFileFromDiskProvider.cs new file mode 100644 index 0000000..6ccfd86 --- /dev/null +++ b/TestStack.ConventionTests/Internal/ProjectFileFromDiskProvider.cs @@ -0,0 +1,25 @@ +namespace TestStack.ConventionTests.Internal +{ + using System.IO; + using System.Xml.Linq; + + public class ProjectFileFromDiskProvider : IProjectProvider + { + readonly string projectFilePath; + + public ProjectFileFromDiskProvider(string projectFilePath) + { + this.projectFilePath = projectFilePath; + } + + public XDocument LoadProjectDocument() + { + return XDocument.Load(projectFilePath); + } + + public string GetName() + { + return Path.GetFileNameWithoutExtension(projectFilePath); + } + } +} \ No newline at end of file diff --git a/TestStack.ConventionTests/Internal/ProjectProvider.cs b/TestStack.ConventionTests/Internal/ProjectProvider.cs deleted file mode 100644 index 4c79b67..0000000 --- a/TestStack.ConventionTests/Internal/ProjectProvider.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace TestStack.ConventionTests.Internal -{ - using System.Xml.Linq; - - public class ProjectProvider : IProjectProvider - { - public XDocument LoadProjectDocument(string resolveProjectFilePath) - { - return XDocument.Load(resolveProjectFilePath); - } - } -} \ No newline at end of file diff --git a/TestStack.ConventionTests/Reporting/ApproveResultsProcessor.cs b/TestStack.ConventionTests/Reporting/ApproveResultsProcessor.cs deleted file mode 100644 index c670d78..0000000 --- a/TestStack.ConventionTests/Reporting/ApproveResultsProcessor.cs +++ /dev/null @@ -1,50 +0,0 @@ -namespace TestStack.ConventionTests.Reporting -{ - using System; - using System.Collections.Generic; - using System.Linq; - using ApprovalTests; - using ApprovalTests.Core.Exceptions; - using TestStack.ConventionTests.Internal; - - public class ApproveResultsProcessor : IResultsProcessor - { - public void Process(IConventionFormatContext context, params ConventionResult[] results) - { - var failedApprovals = new List(); - for (var count = 0; count < results.Length; count++) - { - var result = results[count]; - try - { - //TODO Law of Demeter - var formattedResult = context.TestResultProcessor.Process(context, result); - var recommendedFileExtension = context.TestResultProcessor.RecommendedFileExtension; - Approvals.Verify(new ConventionTestsApprovalTextWriter(formattedResult, count, recommendedFileExtension)); - } - catch (ApprovalException ex) - { - failedApprovals.Add(ex); - } - } - if (failedApprovals.Count == 0) - { - return; - } - if (failedApprovals.Count == 1) - { - var ex = failedApprovals[0]; - throw new ConventionFailedException("Approved exceptions for convention differs" + - Environment.NewLine + - Environment.NewLine + - ex.Message, ex); - } - throw new ConventionFailedException("Approved exceptions for convention differs" + - Environment.NewLine + - Environment.NewLine + - string.Join(Environment.NewLine, - failedApprovals.Select(x => x.Message)), - new AggregateException(failedApprovals.ToArray())); - } - } -} \ No newline at end of file diff --git a/TestStack.ConventionTests/Reporting/CaptureFailuresProcessor.cs b/TestStack.ConventionTests/Reporting/CaptureFailuresProcessor.cs new file mode 100644 index 0000000..a2c40b1 --- /dev/null +++ b/TestStack.ConventionTests/Reporting/CaptureFailuresProcessor.cs @@ -0,0 +1,32 @@ +namespace TestStack.ConventionTests.Reporting +{ + using System; + using System.Collections.Generic; + using System.Linq; + using TestStack.ConventionTests.Internal; + + public class CaptureFailuresProcessor : IResultsProcessor + { + public void Process(IConventionFormatContext context, params ConventionResult[] results) + { + var failedApprovals = results.Select(result => context.TestResultProcessor.Process(context, result)).ToList(); + switch (failedApprovals.Count) + { + case 0: + Failures = string.Empty; + break; + case 1: + Failures = failedApprovals[0]; + break; + default: + Failures = string.Join(Environment.NewLine, failedApprovals); + break; + } + } + + /// + /// The captured failures + /// + public string Failures { get; private set; } + } +} \ No newline at end of file diff --git a/TestStack.ConventionTests/TestStack.ConventionTests.csproj b/TestStack.ConventionTests/TestStack.ConventionTests.csproj index ef84d96..b3bfa49 100644 --- a/TestStack.ConventionTests/TestStack.ConventionTests.csproj +++ b/TestStack.ConventionTests/TestStack.ConventionTests.csproj @@ -35,24 +35,6 @@ bin\Release\TestStack.ConventionTests.xml - - ..\packages\ApprovalTests.3.0.01\lib\net40\ApprovalTests.dll - - - ..\packages\ApprovalUtilities.3.0.01\lib\net35\ApprovalUtilities.dll - - - ..\packages\Mono.Cecil.0.9.5.4\lib\net40\Mono.Cecil.dll - - - ..\packages\Mono.Cecil.0.9.5.4\lib\net40\Mono.Cecil.Mdb.dll - - - ..\packages\Mono.Cecil.0.9.5.4\lib\net40\Mono.Cecil.Pdb.dll - - - ..\packages\Mono.Cecil.0.9.5.4\lib\net40\Mono.Cecil.Rocks.dll - @@ -73,11 +55,10 @@ - - + @@ -101,18 +82,16 @@ - - - + @@ -124,7 +103,6 @@ - Designer diff --git a/TestStack.ConventionTests/packages.config b/TestStack.ConventionTests/packages.config deleted file mode 100644 index 9e75dc7..0000000 --- a/TestStack.ConventionTests/packages.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/packages/ApprovalTests.3.0.01/ApprovalTests.3.0.01.nupkg b/packages/ApprovalTests.3.0.01/ApprovalTests.3.0.01.nupkg deleted file mode 100644 index f08966c..0000000 Binary files a/packages/ApprovalTests.3.0.01/ApprovalTests.3.0.01.nupkg and /dev/null differ diff --git a/packages/ApprovalTests.3.0.01/ApprovalTests.3.0.01.nuspec b/packages/ApprovalTests.3.0.01/ApprovalTests.3.0.01.nuspec deleted file mode 100644 index 9fd5754..0000000 --- a/packages/ApprovalTests.3.0.01/ApprovalTests.3.0.01.nuspec +++ /dev/null @@ -1,25 +0,0 @@ - - - - ApprovalTests - 3.0.01 - ApprovalTests - Llewellyn Falco & Dan Gilkerson - Llewellyn Falco & Dan Gilkerson - https://github.com/approvals/ApprovalTests.Net - http://approvaltests.sourceforge.net/sites/all/themes/corolla/logo.png - false - A picture's worth a 1000 tests. - Unit testing asserts can be difficult to use. - Approval tests simplify this by taking a snapshot of the results, - and confirming that they have not changed. - - - en-US - - - - - - - \ No newline at end of file diff --git a/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.XML b/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.XML deleted file mode 100644 index ad6c9b8..0000000 --- a/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.XML +++ /dev/null @@ -1,23 +0,0 @@ - - - - ApprovalTests - - - - - Uses PortFactory.AspPort - - - - - Throws exception if Html is incorrectly formatted - - - - - Throws exception if Xml is incorrectly formatted - - - - diff --git a/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.dll b/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.dll deleted file mode 100644 index a1b8b38..0000000 Binary files a/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.dll and /dev/null differ diff --git a/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.pdb b/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.pdb deleted file mode 100644 index e4147b7..0000000 Binary files a/packages/ApprovalTests.3.0.01/lib/net40/ApprovalTests.pdb and /dev/null differ diff --git a/packages/ApprovalUtilities.3.0.01/ApprovalUtilities.3.0.01.nupkg b/packages/ApprovalUtilities.3.0.01/ApprovalUtilities.3.0.01.nupkg deleted file mode 100644 index 7df2199..0000000 Binary files a/packages/ApprovalUtilities.3.0.01/ApprovalUtilities.3.0.01.nupkg and /dev/null differ diff --git a/packages/ApprovalUtilities.3.0.01/ApprovalUtilities.3.0.01.nuspec b/packages/ApprovalUtilities.3.0.01/ApprovalUtilities.3.0.01.nuspec deleted file mode 100644 index c8c0479..0000000 --- a/packages/ApprovalUtilities.3.0.01/ApprovalUtilities.3.0.01.nuspec +++ /dev/null @@ -1,14 +0,0 @@ - - - - ApprovalUtilities - 3.0.01 - Llewellyn Falco & Dan Gilkerson - Llewellyn Falco & Dan Gilkerson - https://github.com/approvals/ApprovalTests.Net - http://approvaltests.sourceforge.net/sites/all/themes/corolla/logo.png - false - Common helper classes developed with ApprovalTests - en-US - - \ No newline at end of file diff --git a/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.XML b/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.XML deleted file mode 100644 index ba7dd24..0000000 --- a/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.XML +++ /dev/null @@ -1,13 +0,0 @@ - - - - ApprovalUtilities - - - - - A better string formatter for enumerables. - - - - diff --git a/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.dll b/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.dll deleted file mode 100644 index ae235fd..0000000 Binary files a/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.dll and /dev/null differ diff --git a/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.pdb b/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.pdb deleted file mode 100644 index 57fa91e..0000000 Binary files a/packages/ApprovalUtilities.3.0.01/lib/net35/ApprovalUtilities.pdb and /dev/null differ