public void Test_Groups_GetList_Query() { const string expectedUri = @"https://api.soundcloud.com/groups?limit=50&q=group&linked_partitioning=1&client_id=myClientId"; var groups = new PagedResult <Group>(); groups.collection = new List <Group> { new Group() }; var response = new ApiResponse <PagedResult <Group> >(HttpStatusCode.OK, "OK"); response.Data = groups; var gatewayMock = new Mock <ISoundCloudApiGateway>(MockBehavior.Strict); gatewayMock.Setup(x => x.InvokeGetRequest <PagedResult <Group> >(It.Is <Uri>(y => y.ToString() == expectedUri))).Returns(response); var groupsEndpoint = new Groups(gatewayMock.Object); groupsEndpoint.Credentials.ClientId = ClientId; var builder = new GroupQueryBuilder(); builder.SearchString = "group"; var result = groupsEndpoint.Get(builder); Assert.That(result, Is.EqualTo(groups.collection)); }
public void Test_No_Parameters() { var builder = new GroupQueryBuilder(); var query = builder.BuildUri(); Assert.That(query.ToString(), Is.EqualTo("https://api.soundcloud.com/?")); }
public IEnumerable <Group> Get(GroupQueryBuilder queryBuilder) { EnsureClientId(); queryBuilder.Path = GroupsPath; queryBuilder.Paged = true; return(GetList <Group>(queryBuilder.BuildUri())); }
public async Task <IEnumerable <Group> > GetAsync(GroupQueryBuilder queryBuilder) { EnsureClientId(); queryBuilder.Path = GroupsPath; queryBuilder.Paged = true; return(await GetListAsync <Group>(queryBuilder.BuildUri())); }
public void Test_Paged() { var builder = new GroupQueryBuilder(); builder.Paged = true; var query = builder.BuildUri(); Assert.That(query.ToString(), Is.EqualTo("https://api.soundcloud.com/?limit=50&linked_partitioning=1")); }
public void Test_SearchString() { var builder = new GroupQueryBuilder(); builder.SearchString = "SearchString"; var query = builder.BuildUri(); Assert.That(query.ToString(), Is.EqualTo("https://api.soundcloud.com/?q=SearchString")); }
public Group Get(int groupId) { EnsureClientId(); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupPath, groupId); return(GetById <Group>(builder.BuildUri())); }
public async Task <Group> GetAsync(int groupId) { EnsureClientId(); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupPath, groupId); return(await GetByIdAsync <Group>(builder.BuildUri())); }
public IWebResult <Group> Post(Group group) { EnsureToken(); Validate(group.ValidatePost); var builder = new GroupQueryBuilder(); builder.Path = GroupsPath; return(Create <Group>(builder.BuildUri(), group)); }
public async Task <IWebResult> DeletePendingTrackAsync(Group group, Track track) { EnsureToken(); Validate(track.ValidateDelete); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupPendingTrackPath, group.id, track.id); return(await DeleteAsync(builder.BuildUri())); }
public async Task <IWebResult <Group> > PostAsync(Group group) { EnsureToken(); Validate(group.ValidatePost); var builder = new GroupQueryBuilder(); builder.Path = GroupsPath; return(await CreateAsync <Group>(builder.BuildUri(), group)); }
public async Task <IWebResult <Group> > UpdateAsync(Group group) { EnsureToken(); Validate(group.ValidateUpdate); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupPath, group.id); return(await UpdateAsync <Group>(builder.BuildUri(), group)); }
public IWebResult DeleteContribution(Group group, Track track) { EnsureToken(); Validate(track.ValidateDelete); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupContributionPath, group.id, track.id); return(Delete(builder.BuildUri())); }
public IWebResult <Group> Update(Group group) { EnsureToken(); Validate(group.ValidateUpdate); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupPath, group.id); return(Update <Group>(builder.BuildUri(), group)); }
public IEnumerable <Track> GetContributions(Group group) { EnsureToken(); Validate(group.ValidateGet); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupContributionsPath, group.id); builder.Paged = true; return(GetList <Track>(builder.BuildUri())); }
public async Task <IEnumerable <Track> > GetPendingTracksAsync(Group group) { EnsureToken(); Validate(group.ValidateGet); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupPendingTracksPath, group.id); builder.Paged = true; return(await GetListAsync <Track>(builder.BuildUri())); }
public IEnumerable <Track> GetTracks(Group group) { EnsureClientId(); Validate(group.ValidateGet); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupTracksPath, group.id); builder.Paged = true; return(GetList <Track>(builder.BuildUri())); }
public async Task <IEnumerable <User> > GetUsersAsync(Group group) { EnsureClientId(); Validate(group.ValidateGet); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupUsersPath, group.id); builder.Paged = true; return(await GetListAsync <User>(builder.BuildUri())); }
public async Task <IWebResult <Group> > UploadArtworkAsync(Group group, Stream file) { EnsureToken(); Validate(group.ValidateUploadArtwork); var param = new Dictionary <string, object>(); param.Add(GroupArtworkDataKey, file); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupPath, group.id); return(await UpdateAsync <Group>(builder.BuildUri(), param)); }
public async Task <IWebResult <Track> > PostAsync(Group group, Track track) { EnsureToken(); Validate(track.ValidateDelete); var param = new Dictionary <string, object>(); param.Add("track[id]", track.id); var builder = new GroupQueryBuilder(); builder.Path = string.Format(GroupContributionsPath, group.id); return(await CreateAsync <Track>(builder.BuildUri(), param)); }