public async Task <ItemGroupDto> GetAsync(Guid id, bool includeTasks = false) { await AuthoriseAsync(_client, _authenticationService); var response = await _client.GetAsync <ItemGroupDto>(GroupUrls.GetGroupUrl(id, includeTasks)); return(await _proxyHelper.ProcessResponseAsync(response, this)); }
public async Task GetGroupsAsync_Always_HandlesResult(bool includeTasks) { //Arrange var sut = CreateSut(); var response = new Mock <IHttpResponse <IEnumerable <ItemGroupDto> > >(); Mocker.GetMock <IHttpClient>() .Setup(o => o.GetAsync <IEnumerable <ItemGroupDto> >(GroupUrls.GetGroupsUrl(includeTasks))) .ReturnsAsync(response.Object); var groupDto = new ItemGroupDto(Guid.NewGuid(), "", "", "", new List <TaskDto>()); Mocker.GetMock <IProxyHelper>() .Setup(o => o.ProcessResponseAsync(response.Object, sut)) .ReturnsAsync(new[] { groupDto }); //Act var result = await sut.GetGroupsAsync(includeTasks); //Assert result.Count().ShouldBe(1); }
public async Task GetAsync_Always_Gets() { //Arrange var sut = CreateSut(); var id = Guid.NewGuid(); var response = new Mock <IHttpResponse <ItemGroupDto> >(); Mocker.GetMock <IHttpClient>() .Setup(o => o.GetAsync <ItemGroupDto>(GroupUrls.GetGroupUrl(id, true))) .ReturnsAsync(response.Object); var groupDto = new ItemGroupDto(id, "", "", "", new List <TaskDto>()); Mocker.GetMock <IProxyHelper>() .Setup(o => o.ProcessResponseAsync(response.Object, sut)) .ReturnsAsync(groupDto); //Act var result = await sut.GetAsync(id, true); //Assert result.Id.ShouldBe(id); }
public ClientService(IDownloadService downloadService, ILocalStorageService localStorageService, IDownloader downloader, IFormatter serializationFormatter) { DownloadService = downloadService; LocalStorageService = localStorageService; Downloader = downloader; SerializationFormatter = serializationFormatter; Groups = GroupUrls .Connect() .Transform(g => new Uri(g)) .TransformAsync(Load <Group>) .AsObservableList(); Repos = Groups .Connect() .TransformMany(g => g.RepoInfos.Select(r => new Uri(g.BaseUri, r.Uri))) .TransformAsync(Load <Repo>) .AsObservableList(); Modpacks = Repos .Connect() .TransformMany(r => r.Modpacks) .AsObservableList(); }
public ClientService(IDownloader downloader, IFormatter serializationFormatter, DirectoryInfo localStorage) { fileAccessService = new FileAccessService(localStorage); this.downloader = downloader; this.serializationFormatter = serializationFormatter; filesAvailable.Edit(l => { l.AddOrUpdate(fileAccessService.FilesAvailable()); }); LogTo.Warning("Creating pipeline"); Repos = GroupUrls.Connect() .Transform(g => new Uri(g)) .TransformAsync(Load <Group>) .TransformMany(g => g.RepoInfos.Select(r => g.CombineBaseUri(r.Uri)), repoUri => repoUri) .TransformAsync(Load <Repo>) .OnItemUpdated((repo, _) => LogTo.Information("Repo from {url} has been loaded", repo.BaseUri)) .AsObservableCache(); d.Add(Repos); OnlineFiles = Repos.Connect() .TransformMany( repo => repo.Files.Select(kvp => new OnlineFile(kvp.Key, repo.CombineBaseUri(kvp.Value))), of => of.FileSignature).AsObservableCache(); d.Add(OnlineFiles); Modpacks = Repos.Connect() .TransformMany(r => r.Modpacks.Select(m => new Modpack(m)), m => m.Id).AsObservableCache(); d.Add(Modpacks); }