public void Setup()
        {
            _mockMp3Representation = MockRepository.GenerateStub<IMp3Representation>();
            _mockMp3Representation.AlbumName = SomeAlbumName;
            _mockMp3Representation.ArtistName = SomeArtistName;
            _mockMp3Representation.FileName = SomeFileName;

            _mockFileSystem = MockRepository.GenerateStub<IFileSystem>();
            _mockFileSystem.Stub(system => system.GetAllMp3Files(SomeStartDirectory)).Return(new List<string> { SomeFileName });

            _mockMp3TagHierarchy = MockRepository.GenerateStub<IMp3TagsHierarchy>();
            _mockMp3TagHierarchy.Stub(hierarchy => hierarchy.Artists).Return(new List<string> {SomeArtistName});
            _mockMp3TagHierarchy.Stub(tagsHierarchy => tagsHierarchy.GetAlbumsForArtist(SomeArtistName)).Return(
                new List<string> {SomeAlbumName});

            _mockMp3TagHierarchy.Stub(
                mp3TagsHierarchy => mp3TagsHierarchy.GetSongsForAlbumOfArtist(SomeAlbumName, SomeArtistName)).Return(
                    new List<string> {SomeFileName});
            _mockMp3FileReader = MockRepository.GenerateStub<IMp3FileReader>();
            _mockMp3FileReader.Stub(reader => reader.RetrieveTagsFromMp3Files(new List<string> {SomeFileName})).Return(
                new List<IMp3Representation>
                    {
                        new Mp3Representation
                            {AlbumName = SomeAlbumName, ArtistName = SomeArtistName, FileName = SomeFileName}
                    });

            _mp3LibrarySorter = new Mp3LibrarySorter.Mp3LibrarySorter(_mockFileSystem, SomeStartDirectory, _mockMp3TagHierarchy, _mockMp3FileReader);
            _mp3LibrarySorter.CreateFoldersForArtists();
        }
        public Mp3LibrarySorter(IFileSystem fileSystem, string startDirectory, IMp3TagsHierarchy mp3TagsHierarchy, IMp3FileReader mp3FileReader)
        {
            _fileSystem = fileSystem;
            _startDirectory = startDirectory;
            _mp3TagsHierarchy = mp3TagsHierarchy;
            _mp3FileReader = mp3FileReader;

            var files = _fileSystem.GetAllMp3Files(startDirectory);
            _mp3Files = _mp3FileReader.RetrieveTagsFromMp3Files(files);
            foreach (var mp3Representation in _mp3Files)
            {
                _mp3TagsHierarchy.AddInformation(mp3Representation);
            }
        }