protected override void GivenThat()
        {
            base.GivenThat();

            var podcast1 = new PodcastInfo(ControlFile)
            {
                Folder = "pod1"
            };

            podcast1.Pattern.Value = "*.mp3";
            podcast1.MaximumNumberOfFiles.Value = 2;
            podcast1.AscendingSort.Value        = true;
            podcast1.DeleteEmptyFolder.Value    = true;
            podcast1.SortField.Value            = PodcastFileSortField.FileName;

            var podcast2 = new PodcastInfo(ControlFile)
            {
                Folder = "AnotherPodcast"
            };

            podcast2.Pattern.Value = "*.wma";
            podcast2.MaximumNumberOfFiles.Value = 3;
            podcast2.AscendingSort.Value        = false;
            podcast2.DeleteEmptyFolder.Value    = false;
            podcast2.SortField.Value            = PodcastFileSortField.CreationTime;

            PodcastFiles1 = new List <IFileInfo> {
                GenerateMock <IFileInfo>(), GenerateMock <IFileInfo>()
            };
            PodcastFiles2 = new List <IFileInfo> {
                GenerateMock <IFileInfo>(), GenerateMock <IFileInfo>(), GenerateMock <IFileInfo>()
            };

            ControlFile.Stub(c => c.GetPodcasts())
            .Return(new List <PodcastInfo> {
                podcast1, podcast2
            });

            ControlFile.Stub(c => c.GetSourceRoot())
            .Return(@"c:\media\blah");
            ControlFile.Stub(c => c.GetDestinationRoot())
            .Return(@"k:\podcasts");
            ControlFile.Stub(c => c.GetFreeSpaceToLeaveOnDestination())
            .Return(500);

            FileFinder.Stub(f => f.GetFiles(@"c:\media\blah\pod1", "*.mp3", 2, PodcastFileSortField.FileName, true))
            .Return(PodcastFiles1);
            FileFinder.Stub(f => f.GetFiles(@"c:\media\blah\AnotherPodcast", "*.wma", 3, PodcastFileSortField.CreationTime, false))
            .Return(PodcastFiles2);

            FileCopier.Stub(c => c.CopyFilesToTarget(null, null, null, 0, false))
            .IgnoreArguments()
            .WhenCalled(invocation => FilesToCopy = (List <FileSyncItem>)invocation.Arguments[0]);
        }