diff --git a/Source/MoreDotNet.Test/Extensions/Collections/EnumerableExtensions/ToStringTests.cs b/Source/MoreDotNet.Test/Extensions/Collections/EnumerableExtensions/ToStringTests.cs index 8a03ffb..b198eee 100644 --- a/Source/MoreDotNet.Test/Extensions/Collections/EnumerableExtensions/ToStringTests.cs +++ b/Source/MoreDotNet.Test/Extensions/Collections/EnumerableExtensions/ToStringTests.cs @@ -1,9 +1,10 @@ -using System.Collections.Generic; - -namespace MoreDotNet.Tests.Extensions.Collections.EnumerableExtensions +namespace MoreDotNet.Tests.Extensions.Collections.EnumerableExtensions { using System; + using System.Collections.Generic; + using MoreDotNet.Extensions.Collections; + using Xunit; public class ToStringTests diff --git a/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/CreateTempDirectoryTests.cs b/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/CreateTempDirectoryTests.cs new file mode 100644 index 0000000..acd06e0 --- /dev/null +++ b/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/CreateTempDirectoryTests.cs @@ -0,0 +1,48 @@ +namespace MoreDotNet.Tests.Helpers.DirectoryHelpers +{ + using System; + using System.IO; + using System.IO.Abstractions.TestingHelpers; + using System.IO.Fakes; + + using Microsoft.QualityTools.Testing.Fakes; + + using MoreDotNet.Helpers; + + using Xunit; + + public class CreateTempDirectoryTests : IDisposable + { + private readonly MockFileSystem fileSystem; + private readonly IDisposable shimsContext; + + public CreateTempDirectoryTests() + { + this.fileSystem = new MockFileSystem(); + this.shimsContext = ShimsContext.Create(); + this.PrepareFileSystemShims(); + } + + [Fact] + public void CreateTempDirectory_ShouldCreateTempDirectory() + { + var path = DirectoryHelpers.CreateTempDirectory(); + Assert.True(Directory.Exists(path)); + } + + public void Dispose() + { + this.shimsContext.Dispose(); + } + + private void PrepareFileSystemShims() + { + ShimDirectory.ExistsString = dirPath => this.fileSystem.Directory.Exists(dirPath); + ShimDirectory.CreateDirectoryString = dirPath => + { + this.fileSystem.AddDirectory(dirPath); + return new DirectoryInfo(dirPath); + }; + } + } +} diff --git a/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/DirectoryHelpersTests.cs b/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/DirectoryHelpersTests.cs deleted file mode 100644 index 83d0b27..0000000 --- a/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/DirectoryHelpersTests.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace MoreDotNet.Tests.Helpers.DirectoryHelpers -{ - using System.IO; - using MoreDotNet.Helpers; - using Xunit; - - // TODO: Improve test by mocking the Directory object - public class DirectoryHelpersTests - { - [Fact] - public void CreateTempDirectory_ShouldCreateTempDirectory() - { - var path = DirectoryHelpers.CreateTempDirectory(); - Assert.True(Directory.Exists(path)); - } - } -} diff --git a/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/SafeDeleteDirectoryTests.cs b/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/SafeDeleteDirectoryTests.cs index ef1a6a3..79e6487 100644 --- a/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/SafeDeleteDirectoryTests.cs +++ b/Source/MoreDotNet.Test/Helpers/DirectoryHelpers/SafeDeleteDirectoryTests.cs @@ -1,7 +1,9 @@ namespace MoreDotNet.Tests.Helpers.DirectoryHelpers { using System.IO; + using MoreDotNet.Helpers; + using Xunit; public class SafeDeleteDirectoryTests diff --git a/Source/MoreDotNet.Test/MoreDotNet.Tests.csproj b/Source/MoreDotNet.Test/MoreDotNet.Tests.csproj index 269ce45..60e5b64 100644 --- a/Source/MoreDotNet.Test/MoreDotNet.Tests.csproj +++ b/Source/MoreDotNet.Test/MoreDotNet.Tests.csproj @@ -44,13 +44,28 @@ ..\packages\Castle.Core.3.3.3\lib\net45\Castle.Core.dll True + ..\packages\Moq.4.5.23\lib\net45\Moq.dll True + + ..\MoreDotNet.Tests.Fakes\FakesAssemblies\mscorlib.Fakes.dll + + + ..\MoreDotNet.Tests.Fakes\FakesAssemblies\System.Fakes.dll + + + ..\packages\System.IO.Abstractions.2.0.0.137\lib\net40\System.IO.Abstractions.dll + True + + + ..\packages\System.IO.Abstractions.TestingHelpers.2.0.0.137\lib\net40\System.IO.Abstractions.TestingHelpers.dll + True + ..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll @@ -111,7 +126,7 @@ - + @@ -126,6 +141,10 @@ + + {71270963-e392-45b4-847a-3a3c33d81de1} + MoreDotNet.Tests.Fakes + {35bb3946-1a1b-4426-93bd-62d3adc44abe} MoreDotNet diff --git a/Source/MoreDotNet.Test/packages.config b/Source/MoreDotNet.Test/packages.config index af7a489..7f9c653 100644 --- a/Source/MoreDotNet.Test/packages.config +++ b/Source/MoreDotNet.Test/packages.config @@ -3,6 +3,8 @@ + + diff --git a/Source/MoreDotNet.Tests.Fakes/Fakes/System.fakes b/Source/MoreDotNet.Tests.Fakes/Fakes/System.fakes new file mode 100644 index 0000000..34916f8 Binary files /dev/null and b/Source/MoreDotNet.Tests.Fakes/Fakes/System.fakes differ diff --git a/Source/MoreDotNet.Tests.Fakes/Fakes/mscorlib.fakes b/Source/MoreDotNet.Tests.Fakes/Fakes/mscorlib.fakes new file mode 100644 index 0000000..155bece Binary files /dev/null and b/Source/MoreDotNet.Tests.Fakes/Fakes/mscorlib.fakes differ diff --git a/Source/MoreDotNet.Tests.Fakes/MoreDotNet.Tests.Fakes.csproj b/Source/MoreDotNet.Tests.Fakes/MoreDotNet.Tests.Fakes.csproj new file mode 100644 index 0000000..4fc1fac --- /dev/null +++ b/Source/MoreDotNet.Tests.Fakes/MoreDotNet.Tests.Fakes.csproj @@ -0,0 +1,72 @@ + + + + + Debug + AnyCPU + {71270963-E392-45B4-847A-3A3C33D81DE1} + Library + Properties + MoreDotNet.Tests.Fakes + MoreDotNet.Tests.Fakes + v4.5.2 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/MoreDotNet.Tests.Fakes/Properties/AssemblyInfo.cs b/Source/MoreDotNet.Tests.Fakes/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f5ee01f --- /dev/null +++ b/Source/MoreDotNet.Tests.Fakes/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MoreDotNet.Tests.Fakes")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MoreDotNet.Tests.Fakes")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("71270963-e392-45b4-847a-3a3c33d81de1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// 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")] diff --git a/Source/MoreDotNet.sln b/Source/MoreDotNet.sln index b30d622..939a332 100644 --- a/Source/MoreDotNet.sln +++ b/Source/MoreDotNet.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoreDotNet", "MoreDotNet\Mo EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoreDotNet.Tests", "MoreDotNet.Test\MoreDotNet.Tests.csproj", "{26E622DD-17FA-4B3A-A076-78DD5A2113D4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoreDotNet.Tests.Fakes", "MoreDotNet.Tests.Fakes\MoreDotNet.Tests.Fakes.csproj", "{71270963-E392-45B4-847A-3A3C33D81DE1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {26E622DD-17FA-4B3A-A076-78DD5A2113D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {26E622DD-17FA-4B3A-A076-78DD5A2113D4}.Release|Any CPU.ActiveCfg = Release|Any CPU {26E622DD-17FA-4B3A-A076-78DD5A2113D4}.Release|Any CPU.Build.0 = Release|Any CPU + {71270963-E392-45B4-847A-3A3C33D81DE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71270963-E392-45B4-847A-3A3C33D81DE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71270963-E392-45B4-847A-3A3C33D81DE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71270963-E392-45B4-847A-3A3C33D81DE1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE