System.IO.Abstractions.TestingHelpers 19.1.14

.NET 5.0 .NET Standard 2.0 .NET Framework 4.6.1
dotnet add package System.IO.Abstractions.TestingHelpers --version 19.1.14
NuGet\Install-Package System.IO.Abstractions.TestingHelpers -Version 19.1.14
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="System.IO.Abstractions.TestingHelpers" Version="19.1.14" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add System.IO.Abstractions.TestingHelpers --version 19.1.14
#r "nuget: System.IO.Abstractions.TestingHelpers, 19.1.14"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install System.IO.Abstractions.TestingHelpers as a Cake Addin
#addin nuget:?package=System.IO.Abstractions.TestingHelpers&version=19.1.14

// Install System.IO.Abstractions.TestingHelpers as a Cake Tool
#tool nuget:?package=System.IO.Abstractions.TestingHelpers&version=19.1.14

System.IO.Abstractions NuGet Continuous Integration Codacy Badge Renovate enabled FOSSA Status

At the core of the library is IFileSystem and FileSystem. Instead of calling methods like File.ReadAllText directly, use IFileSystem.File.ReadAllText. We have exactly the same API, except that ours is injectable and testable.

Usage

dotnet add package TestableIO.System.IO.Abstractions

Note: This NuGet package is also published as System.IO.Abstractions but we suggest to use the prefix to make clear that this is not an official .NET package.

public class MyComponent
{
    readonly IFileSystem fileSystem;

    // <summary>Create MyComponent with the given fileSystem implementation</summary>
    public MyComponent(IFileSystem fileSystem)
    {
        this.fileSystem = fileSystem;
    }
    /// <summary>Create MyComponent</summary>
    public MyComponent() : this(
        fileSystem: new FileSystem() //use default implementation which calls System.IO
    )
    {
    }

    public void Validate()
    {
        foreach (var textFile in fileSystem.Directory.GetFiles(@"c:\", "*.txt", SearchOption.TopDirectoryOnly))
        {
            var text = fileSystem.File.ReadAllText(textFile);
            if (text != "Testing is awesome.")
                throw new NotSupportedException("We can't go on together. It's not me, it's you.");
        }
    }
}

Test helpers

The library also ships with a series of test helpers to save you from having to mock out every call, for basic scenarios. They are not a complete copy of a real-life file system, but they'll get you most of the way there.

dotnet add package TestableIO.System.IO.Abstractions.TestingHelpers

Note: This NuGet package is also published as System.IO.Abstractions.TestingHelpers but we suggest to use the prefix to make clear that this is not an official .NET package.

[Test]
public void MyComponent_Validate_ShouldThrowNotSupportedExceptionIfTestingIsNotAwesome()
{
    // Arrange
    var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
    {
        { @"c:\myfile.txt", new MockFileData("Testing is meh.") },
        { @"c:\demo\jQuery.js", new MockFileData("some js") },
        { @"c:\demo\image.gif", new MockFileData(new byte[] { 0x12, 0x34, 0x56, 0xd2 }) }
    });
    var component = new MyComponent(fileSystem);

    try
    {
        // Act
        component.Validate();
    }
    catch (NotSupportedException ex)
    {
        // Assert
        Assert.AreEqual("We can't go on together. It's not me, it's you.", ex.Message);
        return;
    }

    Assert.Fail("The expected exception was not thrown.");
}

We even support casting from the .NET Framework's untestable types to our testable wrappers:

FileInfo SomeApiMethodThatReturnsFileInfo()
{
    return new FileInfo("a");
}

void MyFancyMethod()
{
    var testableFileInfo = (FileInfoBase)SomeApiMethodThatReturnsFileInfo();
    ...
}

Mock support

Since version 4.0 the top-level APIs expose interfaces instead of abstract base classes (these still exist, though), allowing you to completely mock the file system. Here's a small example, using Moq:

[Test]
public void Test1()
{
    var watcher = Mock.Of<IFileSystemWatcher>();
    var file = Mock.Of<IFile>();

    Mock.Get(file).Setup(f => f.Exists(It.IsAny<string>())).Returns(true);
    Mock.Get(file).Setup(f => f.ReadAllText(It.IsAny<string>())).Throws<OutOfMemoryException>();

    var unitUnderTest = new SomeClassUsingFileSystemWatcher(watcher, file);

    Assert.Throws<OutOfMemoryException>(() => {
        Mock.Get(watcher).Raise(w => w.Created += null, new System.IO.FileSystemEventArgs(System.IO.WatcherChangeTypes.Created, @"C:\Some\Directory", "Some.File"));
    });

    Mock.Get(file).Verify(f => f.Exists(It.IsAny<string>()), Times.Once);

    Assert.True(unitUnderTest.FileWasCreated);
}

public class SomeClassUsingFileSystemWatcher
{
    private readonly IFileSystemWatcher _watcher;
    private readonly IFile _file;

    public bool FileWasCreated { get; private set; }

    public SomeClassUsingFileSystemWatcher(IFileSystemWatcher watcher, IFile file)
    {
        this._file = file;
        this._watcher = watcher;
        this._watcher.Created += Watcher_Created;
    }

    private void Watcher_Created(object sender, System.IO.FileSystemEventArgs e)
    {
        FileWasCreated = true;

        if(_file.Exists(e.FullPath))
        {
            var text = _file.ReadAllText(e.FullPath);
        }
    }
}
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48 net481
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (8)

Showing the top 5 NuGet packages that depend on System.IO.Abstractions.TestingHelpers:

Package Downloads
Reo.Core.Testing

Package Description

Glob.cs

File system path globbing library (wildcards like in bash).

Noggog.Testing

Package Description

Smusdi.Testing

Utilities to test .NET services.

CreativeCoders.UnitTests

Package Description

GitHub repositories (37)

Showing the top 5 popular GitHub repositories that depend on System.IO.Abstractions.TestingHelpers:

Repository Stars
microsoft/PowerToys
Windows system utilities to maximize productivity
gitextensions/gitextensions
Git Extensions is a standalone UI tool for managing git repositories. It also integrates with Windows Explorer and Microsoft Visual Studio (2015/2017/2019).
JosefNemec/Playnite
Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.
Lidarr/Lidarr
Looks and smells like Sonarr but made for music.
hirschmann/nbfc
NoteBook FanControl
Version Downloads Last updated
19.1.14 3,894 1/31/2023
19.1.13 7,489 1/24/2023
19.1.5 47,284 12/19/2022
19.1.1 7,085 12/13/2022
19.0.1 21,849 12/8/2022
18.0.1 13,868 11/28/2022
17.2.26 17,931 11/18/2022
17.2.3 258,786 9/16/2022
17.2.1 32,227 9/10/2022
17.1.1 70,562 8/15/2022
17.0.28 800 8/15/2022
17.0.24 152,697 7/19/2022
17.0.23 10,146 7/15/2022
17.0.21 32,260 7/4/2022
17.0.18 93,664 6/9/2022
17.0.15 67,767 5/20/2022
17.0.14 14,691 5/18/2022
17.0.13 8,431 5/17/2022
17.0.12 7,955 5/16/2022
17.0.11 1,867 5/15/2022
17.0.10 38,849 5/12/2022
17.0.9 677 5/11/2022
17.0.8 1,121 5/11/2022
17.0.7 317 5/11/2022
17.0.6 319 5/11/2022
17.0.5 306 5/11/2022
17.0.4 15,227 5/11/2022
17.0.3 54,487 4/26/2022
17.0.2 340 4/26/2022
17.0.1 3,147 4/25/2022
16.1.26 22,150 4/24/2022
16.1.25 117,916 3/23/2022
16.1.24 14,062 3/22/2022
16.1.23 15,814 3/14/2022
16.1.22 1,860 3/11/2022
16.1.21 342 3/11/2022
16.1.20 19,560 3/8/2022
16.1.19 316 3/8/2022
16.1.18 317 3/8/2022
16.1.17 364 3/8/2022
16.1.16 9,964 3/3/2022
16.1.15 74,831 2/19/2022
16.1.14 322 2/19/2022
16.1.13 466 2/19/2022
16.1.12 321 2/19/2022
16.1.11 6,541 2/17/2022
16.1.10 67,713 2/4/2022
16.1.9 4,474 2/2/2022
16.1.8 339 2/2/2022
16.1.7 4,113 1/31/2022
16.1.6 358 1/31/2022
16.1.5 553 1/31/2022
16.1.4 136,151 1/12/2022
16.1.2 1,094 1/12/2022
16.1.1 4,280 1/11/2022
16.0.8 12,329 1/9/2022
16.0.7 8,991 1/8/2022
16.0.6 261 1/8/2022
16.0.5 241 1/8/2022
16.0.4 240 1/8/2022
16.0.3 2,125 1/6/2022
16.0.2 1,189 1/6/2022
16.0.1 167,394 12/22/2021
15.0.1 1,300 12/22/2021
14.0.13 58,391 12/11/2021
14.0.12 239 12/11/2021
14.0.11 434 12/11/2021
14.0.10 397 12/11/2021
14.0.9 413 12/11/2021
14.0.8 508 12/11/2021
14.0.7 348 12/10/2021
14.0.6 255 12/10/2021
14.0.5 247 12/10/2021
14.0.4 361 12/10/2021
14.0.3 81,702 11/27/2021
14.0.2 2,105 11/26/2021
14.0.1 1,985 11/26/2021
13.2.47 450,887 8/25/2021
13.2.46 337 8/25/2021
13.2.45 333 8/25/2021
13.2.43 102,839 7/27/2021
13.2.42 17,261 7/23/2021
13.2.41 21,353 7/15/2021
13.2.40 1,430 7/14/2021
13.2.39 771 7/14/2021
13.2.38 79,314 6/15/2021
13.2.37 2,671 6/10/2021
13.2.36 382 6/10/2021
13.2.35 336 6/10/2021
13.2.34 357 6/10/2021
13.2.33 87,302 5/15/2021
13.2.32 442 5/15/2021
13.2.31 45,882 5/2/2021
13.2.30 480 5/2/2021
13.2.29 124,546 4/14/2021
13.2.28 58,769 3/25/2021
13.2.27 1,404 3/25/2021
13.2.25 148,901 3/9/2021
13.2.24 4,703 3/6/2021
13.2.23 64,523 2/24/2021
13.2.22 477 2/24/2021
13.2.20 2,547 2/23/2021
13.2.19 385 2/23/2021
13.2.18 586 2/23/2021
13.2.17 1,521 2/23/2021
13.2.16 483 2/22/2021
13.2.15 11,279 2/18/2021
13.2.14 434 2/18/2021
13.2.13 439 2/18/2021
13.2.12 383 2/18/2021
13.2.11 5,249 2/16/2021
13.2.10 92,363 2/10/2021
13.2.9 202,984 1/14/2021
13.2.8 64,975 12/22/2020
13.2.7 6,549 12/20/2020
13.2.6 7,220 12/16/2020
13.2.5 49,553 12/9/2020
13.2.4 16,700 12/5/2020
13.2.3 692 12/4/2020
13.2.2 56,240 11/26/2020
13.2.1 1,828 11/26/2020
13.1.2 536 11/25/2020
13.1.1 535 11/25/2020
13.0.1 29,521 11/21/2020
12.2.27 13,704 11/21/2020
12.2.26 1,348 11/20/2020
12.2.25 6,450 11/17/2020
12.2.24 6,300 11/15/2020
12.2.23 544 11/15/2020
12.2.22 599 11/14/2020
12.2.21 4,454 11/12/2020
12.2.20 480 11/12/2020
12.2.19 24,470 11/5/2020
12.2.7 53,966 10/15/2020
12.2.6 20,886 10/15/2020
12.2.5 4,356 10/12/2020
12.2.4 512 10/12/2020
12.2.3 48,594 10/12/2020
12.2.2 6,225 10/7/2020
12.2.1 73,270 9/28/2020
12.1.11 1,636 9/28/2020
12.1.10 6,950 9/24/2020
12.1.9 40,056 9/11/2020
12.1.2 501 9/11/2020
12.1.1 207,119 8/3/2020
12.0.13 4,351 8/2/2020
12.0.10 11,085 7/25/2020
12.0.9 13,392 7/21/2020
12.0.5 38,126 7/11/2020
12.0.4 29,600 7/2/2020
12.0.3 6,316 6/29/2020
12.0.2 57,793 6/23/2020
12.0.1 15,260 6/20/2020
11.0.18 11,398 6/20/2020
11.0.17 3,187 6/19/2020
11.0.16 651 6/18/2020
11.0.15 1,675 6/18/2020
11.0.14 816 6/17/2020
11.0.13 684 6/17/2020
11.0.12 594 6/17/2020
11.0.7 59,853 5/28/2020
11.0.6 89,624 5/8/2020
11.0.5 11,669 5/6/2020
11.0.4 12,652 5/1/2020
11.0.3 1,407 4/30/2020
11.0.2 62,492 4/26/2020
11.0.1 578 4/26/2020
10.0.10 9,170 4/20/2020
10.0.9 10,599 4/17/2020
10.0.8 32,905 4/7/2020
10.0.7 8,155 4/3/2020
10.0.6 11,204 4/1/2020
10.0.5 599 4/1/2020
10.0.4 596 4/1/2020
10.0.1 44,257 3/21/2020
9.0.6 4,631 3/19/2020
9.0.5 32,725 3/16/2020
9.0.4 134,376 2/18/2020
9.0.3 647 2/18/2020
9.0.2 8,598 2/11/2020
9.0.1 662 2/11/2020
8.1.1 944 2/11/2020
8.0.6 673 2/11/2020
8.0.5 29,990 1/29/2020
8.0.4 1,236 1/27/2020
8.0.3 10,435 1/19/2020
7.1.10 64,532 1/17/2020
7.1.8 660 1/17/2020
7.1.4 16,744 1/13/2020
7.1.3 36,597 1/6/2020
7.1.1 23,622 12/21/2019
7.0.16 4,735 12/19/2019
7.0.15 40,139 12/5/2019
7.0.7 124,923 10/21/2019
7.0.5 13,142 10/11/2019
7.0.4 215,063 9/29/2019
6.0.38 82,942 9/26/2019
6.0.36 2,036 9/24/2019
6.0.34 1,159 9/24/2019
6.0.32 29,818 9/9/2019
6.0.27 13,241 9/3/2019
6.0.25 743 9/2/2019
6.0.23 22,385 8/26/2019
6.0.21 46,262 8/12/2019
6.0.19 41,515 8/9/2019
6.0.17 7,562 8/5/2019
6.0.15 66,950 7/9/2019
6.0.14 22,089 6/29/2019
6.0.13 1,001 6/28/2019
6.0.11 15,809 6/21/2019
6.0.9 695 6/21/2019
6.0.7 13,701 6/16/2019
6.0.6 661 6/16/2019
6.0.5 2,384 6/13/2019
6.0.3 10,203 6/13/2019
6.0.1 79,952 6/7/2019
5.0.1 8,704 6/3/2019
4.2.17 2,120 5/30/2019
4.2.15 5,684 5/28/2019
4.2.13 39,003 5/15/2019
4.2.12 730 5/15/2019
4.2.10 20,052 5/10/2019
4.2.9 842 5/10/2019
4.2.8 23,570 4/28/2019
4.2.4 14,906 4/19/2019
4.1.6 78,327 4/9/2019
4.0.11 82,997 3/30/2019
3.1.1 38,052 3/10/2019
3.0.10 301,477 1/5/2019
3.0.2 56,149 12/7/2018
2.2.18-beta 617 12/3/2018
2.2.17-beta 605 12/2/2018
2.2.16-beta 569 12/1/2018
2.2.15-beta 622 12/1/2018
2.2.14-beta 584 12/1/2018
2.2.13-beta 655 12/1/2018
2.2.12-beta 618 12/1/2018
2.2.11-beta 589 12/1/2018
2.2.10-beta 589 11/28/2018
2.2.9-beta 701 11/16/2018
2.2.8-beta 658 11/9/2018
2.2.7-beta 636 11/5/2018
2.2.6-beta 651 10/30/2018
2.2.5-beta 616 10/30/2018
2.2.4-beta 631 10/30/2018
2.2.3-beta 621 10/29/2018
2.2.2-beta 621 10/25/2018
2.1.0.256 109,474 10/20/2018
2.1.0.247 27,756 10/15/2018
2.1.0.237 3,717 10/14/2018
2.1.0.236 49,605 10/10/2018
2.1.0.235 17,723 10/8/2018
2.1.0.234 919 10/8/2018
2.1.0.233 2,424 10/6/2018
2.1.0.232 1,897 10/4/2018
2.1.0.231 20,282 9/19/2018
2.1.0.230 40,581 9/8/2018
2.1.0.229 1,938 9/6/2018
2.1.0.228 9,428 8/27/2018
2.1.0.227 59,832 8/16/2018
2.1.0.226 10,162 8/14/2018
2.1.0.217 2,281 8/10/2018
2.1.0.216 4,827 8/9/2018
2.1.0.215 4,540 8/6/2018
2.1.0.214 1,278 8/5/2018
2.1.0.213 1,049 8/4/2018
2.1.0.211 26,299 7/25/2018
2.1.0.210 3,710 7/21/2018
2.1.0.209 4,806 7/20/2018
2.1.0.208 3,325 7/17/2018
2.1.0.207 1,100 7/17/2018
2.1.0.206 11,733 7/15/2018
2.1.0.205 1,337 7/12/2018
2.1.0.204 1,189 7/11/2018
2.1.0.203 1,137 7/11/2018
2.1.0.202 1,305 7/10/2018
2.1.0.201 1,644 7/10/2018
2.1.0.200 1,469 7/9/2018
2.1.0.199 1,116 7/9/2018
2.1.0.198 1,899 7/8/2018
2.1.0.197 1,105 7/8/2018
2.1.0.196 1,116 7/8/2018
2.1.0.195 1,110 7/7/2018
2.1.0.194 1,088 7/7/2018
2.1.0.193 1,118 7/7/2018
2.1.0.192 1,094 7/7/2018
2.1.0.191 1,011 7/7/2018
2.1.0.190 1,089 7/7/2018
2.1.0.189 1,111 7/7/2018
2.1.0.188 1,003 7/6/2018
2.1.0.187 7,151 7/6/2018
2.1.0.186 11,773 7/6/2018
2.1.0.185 1,098 7/5/2018
2.1.0.184 8,384 7/4/2018
2.1.0.183 1,142 7/4/2018
2.1.0.182 1,080 7/4/2018
2.1.0.181 1,102 7/4/2018
2.1.0.180 1,063 7/4/2018
2.1.0.179 1,095 7/4/2018
2.1.0.178 216,618 1/11/2018
2.1.0.177 5,196 1/2/2018
2.1.0.176 10,647 12/8/2017
2.1.0.175 24,864 11/16/2017
2.1.0.174 23,500 11/7/2017
2.1.0.173 1,037 11/7/2017
2.1.0.172 1,009 11/7/2017
2.1.0.171 1,563 11/4/2017
2.1.0.170 1,031 11/4/2017
2.1.0.169 1,027 11/4/2017
2.1.0.168 1,019 11/4/2017
2.1.0.166 1,036 11/4/2017
2.1.0.164 1,009 11/4/2017
2.1.0.163 992 11/4/2017
2.1.0.159 35,896 10/22/2017
2.0.0.143 480,543 4/7/2017
2.0.0.142 1,121 4/7/2017
2.0.0.141 10,744 3/2/2017
2.0.0.140 13,402 1/17/2017
2.0.0.139 20,579 1/6/2017
2.0.0.138 25,134 11/17/2016
2.0.0.137 5,052 10/14/2016
2.0.0.136 2,747 10/1/2016
2.0.0.124 169,711 2/8/2016
2.0.0.123 8,222 12/29/2015
2.0.0.122 1,139 12/28/2015
2.0.0.121 1,121 12/28/2015
2.0.0.120 6,652 12/6/2015
2.0.0.119 1,143 12/6/2015
2.0.0.118 3,997 11/4/2015
2.0.0.117 2,116 10/19/2015
2.0.0.116 9,294 7/20/2015
2.0.0.115 8,695 5/18/2015
2.0.0.114 1,286 5/18/2015
2.0.0.113 7,064 3/18/2015
2.0.0.112 1,538 3/11/2015
2.0.0.111 1,135 3/11/2015
2.0.0.110 1,171 3/11/2015
2.0.0.109 1,179 3/11/2015
2.0.0.108 1,788 3/4/2015
2.0.0.107 1,912 2/23/2015
2.0.0.106 1,940 2/20/2015
2.0.0.105 1,481 2/19/2015
2.0.0.104 1,624 2/14/2015
2.0.0.103 1,658 2/7/2015
2.0.0.102 1,194 2/7/2015
2.0.0.101 1,589 1/25/2015
2.0.0.100 1,211 1/25/2015
2.0.0.99 1,181 1/25/2015
2.0.0.98 1,237 1/25/2015
1.4.0.93 9,899 1/25/2015
1.4.0.92 16,397 9/29/2014
1.4.0.89 1,161 9/29/2014
1.4.0.88 1,176 9/29/2014
1.4.0.87 1,542 9/21/2014
1.4.0.86 6,741 5/7/2014
1.4.0.85 2,880 4/23/2014
1.4.0.84 1,492 4/7/2014
1.4.0.83 1,742 3/24/2014
1.4.0.82 1,302 3/24/2014
1.4.0.81 5,778 3/17/2014
1.4.0.80 1,246 3/17/2014
1.4.0.79 6,060 3/10/2014
1.4.0.78 1,333 3/2/2014
1.4.0.77 1,236 3/2/2014
1.4.0.76 1,466 2/21/2014
1.4.0.75 1,302 2/20/2014
1.4.0.74 25,801 1/12/2014
1.4.0.73 1,355 12/22/2013
1.4.0.72 1,653 12/1/2013
1.4.0.71 1,237 12/1/2013
1.4.0.70 1,460 11/21/2013
1.4.0.69 1,341 11/20/2013
1.4.0.68 2,863 10/15/2013
1.4.0.67 1,237 10/15/2013
1.4.0.66 2,709 7/31/2013
1.4.0.65 1,896 7/9/2013
1.4.0.64 2,150 4/26/2013
1.4.0.63 1,359 4/26/2013
1.4.0.62 1,310 4/26/2013
1.4.0.61 1,334 4/25/2013
1.4.0.60 1,277 4/25/2013
1.4.0.59 1,281 4/25/2013
1.4.0.58 1,282 4/25/2013
1.4.0.57 1,314 4/25/2013
1.4.0.56 1,332 4/25/2013
1.4.0.55 1,335 4/25/2013
1.4.0.54 1,383 4/25/2013
1.4.0.53 1,303 4/25/2013
1.4.0.52 1,386 4/25/2013
1.4.0.51 1,327 4/22/2013
1.4.0.50 1,303 4/22/2013
1.4.0.49 1,511 4/11/2013
1.4.0.48 1,405 3/24/2013
1.4.0.47 1,362 3/24/2013
1.4.0.46 1,288 3/24/2013
1.4.0.45 1,307 3/24/2013
1.4.0.44 1,737 3/16/2013
1.4.0.43 1,295 3/16/2013
1.4.0.42 1,360 3/16/2013
1.4.0.41 1,365 3/6/2013
1.4.0.40 1,884 12/24/2012
1.4.0.39 1,356 12/23/2012
1.4.0.38 1,315 12/23/2012
1.4.0.37 2,232 11/29/2012
1.4.0.36 1,412 11/29/2012
1.4.0.35 1,724 9/25/2012
1.4.0.32 2,577 7/14/2012
1.4.0.31 1,353 7/14/2012
1.4.0.30 1,376 7/12/2012
1.4.0.29 1,339 7/12/2012
1.4.0.28 1,314 7/12/2012
1.4.0.27 1,329 7/12/2012
1.4.0.26 1,418 7/2/2012
1.4.0.25 1,370 7/2/2012
1.4.0.24 1,874 5/15/2012
1.4.0.23 1,748 4/25/2012
1.4.0.22 1,377 4/25/2012
1.4.0.21 1,333 4/25/2012
1.4.0.20 1,475 4/18/2012
1.4.0.19 1,377 4/18/2012
1.4.0.18 1,382 4/18/2012
1.4.0.17 1,385 4/18/2012
1.4.0.14 1,402 4/4/2012
1.4.0.13 1,669 3/27/2012
1.4.0.12 1,972 9/16/2011
1.4.0.11 1,538 9/16/2011
1.3.0 1,755 5/27/2011
1.2.0 2,734 5/26/2011