public IDownloadSlotsViewModel CreateDownloadSlotsViewModel(Download download)
 {
     IDownloadSlotsViewModel downloadSlotsViewModel =
         new DownloadSlotsViewModel(download, downloadingClientFactory, fileStreamClientFactory);
     return downloadSlotsViewModel;
 }
        protected override void Establish_context()
        {
            base.Establish_context();

            DownloadSlotsModel = new Mock<IDownloadSlotsModel>();

            NetworkClientFactory = new Mock<INetworkClientFactory>();
            NetworkClient = new Mock<INetworkClient>();
            NetworkClientFactory.Setup(clientFactory => clientFactory.CreateClient(It.IsAny<IUriSource>()))
                .Returns(NetworkClient.Object);

            FileStreamClientFactory= new Mock<IFileStreamClientFactory>();
            FileStreamClient = new Mock<IFileStreamClient>();
            FileStreamClientFactory.Setup(clientFactory => clientFactory.CreateFileStreamClient(It.IsAny<IFilePathSource>()))
                .Returns(FileStreamClient.Object);

            List<DownloadSlot> downloadSlots = this.createDownloadSlots();
            DownloadSlotsModel.SetupGet(slotsModel => slotsModel.DownloadSlots).Returns(downloadSlots);
            DownloadSlotsViewModel = new DownloadSlotsViewModel(DownloadSlotsModel.Object,
                NetworkClientFactory.Object, FileStreamClientFactory.Object);
        }