private static string GetTestData(FilerViewModel.FilerArgs args) { if (args.CurrentDirectory.StartsWith("Endless")) { return(FilerTestData.GetEndless(args.CurrentDirectory)); } switch (args.CurrentDirectory) { case "": return(FilerTestData.Root); case "LV1_Dynamic/": return(FilerTestData.Lv1Dynamic); case "BigDir500/": return(FilerTestData.GetBigDir(args.CurrentDirectory, 500)); case "MobileAppTestData/": return(FilerTestData.MobileAppTestData); default: return(FilerTestData.Empty); } }
public async Task TestDeepLink() { // Setup var path = "/This/is/a/deeplink/"; var storageService = new Mock <IIOStorageService>(MockBehavior.Strict); storageService.Setup(r => r.DirectoryExists(path)).Returns(true); storageService.Setup(r => r.StartOpenFile(It.IsNotNull <string>())); storageService.Setup(r => r.GetDirectoryNames(path)).Returns <string>(a => RandomEntries(2)); storageService.Setup(r => r.GetFileNames(path)).Returns <string>(a => RandomEntries(3)); storageService.Setup(r => r.Download(It.IsAny <IOListing>(), It.IsNotNull <Action <ResultState> >())) .Callback((IOListing a, Action <ResultState> b) => b(ResultState.Success)); var args = new FilerViewModel.FilerArgs { CurrentDirectory = path }; var filerWebHandler = new Mock <IFilerWebHandler>(MockBehavior.Strict); filerWebHandler .Setup(r => r.GetDirectoryListingAsync(args, It.IsNotNull <CancellationToken>())) .Returns <FilerViewModel.FilerArgs, CancellationToken>((a, b) => this.GetRandomEntriesAsync(path)); var navigationService = new Mock <IMvxNavigationService>(MockBehavior.Strict); navigationService.Setup(r => r.Navigate <FilerViewModel, FilerViewModel.FilerArgs>(It.IsAny <FilerViewModel.FilerArgs>(), null)).Returns(Task.CompletedTask); this.Ioc.RegisterSingleton(navigationService.Object); this.Ioc.RegisterSingleton(filerWebHandler.Object); this.Ioc.RegisterSingleton(storageService.Object); var viewModel = this.Ioc.IoCConstruct <FilerViewModel>(); // Exercise await viewModel.Init(args); // Verify storageService.Verify(r => r.DirectoryExists(path), Times.Once); Assert.AreEqual(7, viewModel.Listings.Count); // Exercise viewModel.ShowDetailCommand.Execute(viewModel.Listings.First(t => t.IsDirectory)); // Open local file viewModel.ShowDetailCommand.Execute(viewModel.Listings.First(t => !t.IsDirectory && t.IsLocal)); // Verify storageService.Verify(t => t.StartOpenFile(It.IsNotNull <string>()), Times.Once); // Download Remote Assert.AreEqual(5, viewModel.Listings.Count(t => t.IsLocal)); // Exercise viewModel.ShowDetailCommand.Execute(viewModel.Listings.First(t => !t.IsDirectory && !t.IsLocal)); // Verify Assert.AreEqual(6, viewModel.Listings.Count(t => t.IsLocal)); }
protected virtual async Task <string> GetDirectoryListingJsonAsync(FilerViewModel.FilerArgs args, CancellationToken cancellationToken) { var webClient = new NativeHttpClient(this.httpClientConfiguration); webClient .AssignAgent(this.device) .AssignAcceptTypeJson() .AssignBearerToken(await this.oAuth.BearerTokenAsync()); return(await webClient.GetStringAsync(this.serviceApi.FilerApiUriBase + args.CurrentDirectory, cancellationToken)); }
public async Task <IEnumerable <IOListing> > GetDirectoryListingAsync(FilerViewModel.FilerArgs args, CancellationToken cancellationToken) { if (!this.account.HasAccount) { return(null); } var response = await this.GetDirectoryListingJsonAsync(args, cancellationToken); return(cancellationToken.IsCancellationRequested ? null : response.CreateFromJsonString <Holding>().Data); }
public async Task TestExisting() { // Setup var path = "/This/is/a/deeplink/"; var storageService = new Mock <IIOStorageService>(MockBehavior.Strict); storageService.Setup(r => r.DirectoryExists(path)).Returns(true); storageService.Setup(r => r.GetDirectoryNames(path)).Returns <string>(a => RandomEntries(2)); storageService.Setup(r => r.GetFileNames(path)).Returns <string>(a => RandomEntries(3, true)); var args = new FilerViewModel.FilerArgs { CurrentDirectory = path }; var filerWebHandler = new Mock <IFilerWebHandler>(MockBehavior.Strict); filerWebHandler .Setup(r => r.GetDirectoryListingAsync(args, It.IsNotNull <CancellationToken>())) .Returns <FilerViewModel.FilerArgs, CancellationToken>((a, b) => this.GetRandomEntriesAsync(path, true)); var navigationService = new Mock <IMvxNavigationService>(MockBehavior.Strict); this.Ioc.RegisterSingleton(navigationService.Object); this.Ioc.RegisterSingleton(filerWebHandler.Object); this.Ioc.RegisterSingleton(storageService.Object); var viewModel = this.Ioc.IoCConstruct <FilerViewModel>(); // Exercise await viewModel.Init(args); // Verify Assert.AreEqual(8, viewModel.Listings.Count); Assert.AreEqual(1, viewModel.Listings.Count(t => t.Name.Equals("existing"))); }
protected override Task <string> GetDirectoryListingJsonAsync(FilerViewModel.FilerArgs args, CancellationToken cancellationToken) { return(Task <string> .Factory.StartNew(() => GetTestData(args), cancellationToken)); }