Skip to content

Commit

Permalink
Implement request GetFriendList.
Browse files Browse the repository at this point in the history
  • Loading branch information
lpradel committed Apr 14, 2015
1 parent 913247f commit 2357034
Show file tree
Hide file tree
Showing 5 changed files with 1,691 additions and 0 deletions.
@@ -0,0 +1,111 @@
package com.lukaspradel.steamapi.webapi.request;

import com.lukaspradel.steamapi.webapi.core.SteamWebApiInterface;
import com.lukaspradel.steamapi.webapi.core.SteamWebApiInterfaceMethod;
import com.lukaspradel.steamapi.webapi.core.SteamWebApiVersion;
import com.lukaspradel.steamapi.webapi.request.builders.AbstractSteamWebApiRequestBuilder;

/**
* Steam Web API Request GetFriendList
*
* @see <a href=
* "https://developer.valvesoftware.com/wiki/Steam_Web_API#GetFriendList_.28v0001.29"
* >https://developer.valvesoftware.com/wiki/Steam_Web_API#GetFriendList_.28v0001.29</a>
* @author lpradel
*
*/
public class GetFriendListRequest extends SteamWebApiRequest {

private GetFriendListRequest(SteamWebApiRequestBuilder builder) {
super(builder);
}

/**
* Relationship filter for request type {@link GetFriendListRequest}.
*
* @author lpradel
*
*/
public enum Relationship {

/** Users with ANY relationship to the user */
ALL("all"),
/** Only users with the FRIEND relationship to the user */
FRIEND("friend");

private final String relationship;

private Relationship(String relationship) {

this.relationship = relationship;
}

@Override
public String toString() {

return relationship;
}
}

/**
* Builder object to create instances of {@link SteamWebApiRequest} for
* request type {@link GetFriendListRequest}.
*
* @author lpradel
*
*/
public static class GetFriendListRequestBuilder extends
AbstractSteamWebApiRequestBuilder {

private final String steamId;

private Relationship relationship = null;

public static final String REQUEST_PARAM_STEAM_ID = "steamid";

public static final String REQUEST_PARAM_RELATIONSHIP = "relationship";

public GetFriendListRequestBuilder(String steamId) {

this.steamId = steamId;
}

public GetFriendListRequestBuilder relationship(
Relationship relationship) {

this.relationship = relationship;
return this;
}

@Override
protected SteamWebApiInterface getInterface() {

return SteamWebApiInterface.I_STEAM_USER;
}

@Override
protected SteamWebApiInterfaceMethod getInterfaceMethod() {

return SteamWebApiInterfaceMethod.GET_FRIEND_LIST;
}

@Override
protected SteamWebApiVersion getVersion() {

return SteamWebApiVersion.VERSION_ONE;
}

@Override
public GetFriendListRequest buildRequest() {

addParameter(REQUEST_PARAM_STEAM_ID, steamId);

if (relationship != null) {
addParameter(REQUEST_PARAM_RELATIONSHIP,
relationship.toString());
}

return new GetFriendListRequest(this);
}
}
}
Expand Up @@ -2,6 +2,9 @@

import java.util.List;

import com.lukaspradel.steamapi.webapi.request.GetFriendListRequest;
import com.lukaspradel.steamapi.webapi.request.GetFriendListRequest.GetFriendListRequestBuilder;
import com.lukaspradel.steamapi.webapi.request.GetFriendListRequest.Relationship;
import com.lukaspradel.steamapi.webapi.request.GetGlobalAchievementPercentagesForAppRequest;
import com.lukaspradel.steamapi.webapi.request.GetGlobalAchievementPercentagesForAppRequest.GetGlobalAchievementPercentagesForAppRequestBuilder;
import com.lukaspradel.steamapi.webapi.request.GetNewsForAppRequest;
Expand Down Expand Up @@ -43,4 +46,16 @@ public static GetPlayerSummariesRequest createGetPlayerSummariesRequest(

return new GetPlayerSummariesRequestBuilder(steamIds).buildRequest();
}

public static GetFriendListRequest createGetFriendListRequest(String steamId) {

return new GetFriendListRequestBuilder(steamId).buildRequest();
}

public static GetFriendListRequest createGetFriendListRequest(
String steamId, Relationship relationship) {

return new GetFriendListRequestBuilder(steamId).relationship(
relationship).buildRequest();
}
}
Expand Up @@ -19,7 +19,10 @@
import com.lukaspradel.steamapi.core.exception.SteamApiException;
import com.lukaspradel.steamapi.data.json.achievementpercentages.GetGlobalAchievementPercentagesForApp;
import com.lukaspradel.steamapi.data.json.appnews.GetNewsForApp;
import com.lukaspradel.steamapi.data.json.friendslist.GetFriendList;
import com.lukaspradel.steamapi.data.json.playersummaries.GetPlayerSummaries;
import com.lukaspradel.steamapi.webapi.request.GetFriendListRequest;
import com.lukaspradel.steamapi.webapi.request.GetFriendListRequest.Relationship;
import com.lukaspradel.steamapi.webapi.request.GetGlobalAchievementPercentagesForAppRequest;
import com.lukaspradel.steamapi.webapi.request.GetNewsForAppRequest;
import com.lukaspradel.steamapi.webapi.request.GetPlayerSummariesRequest;
Expand Down Expand Up @@ -207,4 +210,32 @@ public void testProcessGetPlayerSummariesRequest()
assertEquals(getPlayerSummaries.getResponse().getPlayers().get(0)
.getSteamid(), "76561197960435530");
}

@Test
public void testProcessGetFriendListRequest() throws SteamApiException,
IOException {

GetFriendListRequest getFriendListRequest = SteamWebApiRequestFactory
.createGetFriendListRequest("76561197960435530");

String mockAnswer = readResourceAsString("GetFriendList.json");

when(requestHandlerMock.getWebApiResponse(getFriendListRequest))
.thenReturn(mockAnswer);

GetFriendList getFriendList = client
.<GetFriendList> processRequest(getFriendListRequest);

assertNotNull(getFriendList);
assertTrue(getFriendList.getAdditionalProperties().isEmpty());
assertNotNull(getFriendList.getFriendslist());
assertNotNull(getFriendList.getFriendslist().getFriends());
assertEquals(getFriendList.getFriendslist().getFriends().size(), 291);
assertEquals(getFriendList.getFriendslist().getFriends().get(5)
.getSteamid(), "76561197960268093");
assertEquals(getFriendList.getFriendslist().getFriends().get(5)
.getRelationship(), Relationship.FRIEND.toString());
assertEquals(getFriendList.getFriendslist().getFriends().get(5)
.getFriendSince(), Integer.valueOf(1251433222));
}
}
Expand Up @@ -14,6 +14,9 @@
import com.lukaspradel.steamapi.webapi.core.SteamWebApiInterface;
import com.lukaspradel.steamapi.webapi.core.SteamWebApiInterfaceMethod;
import com.lukaspradel.steamapi.webapi.core.SteamWebApiVersion;
import com.lukaspradel.steamapi.webapi.request.GetFriendListRequest;
import com.lukaspradel.steamapi.webapi.request.GetFriendListRequest.GetFriendListRequestBuilder;
import com.lukaspradel.steamapi.webapi.request.GetFriendListRequest.Relationship;
import com.lukaspradel.steamapi.webapi.request.GetGlobalAchievementPercentagesForAppRequest;
import com.lukaspradel.steamapi.webapi.request.GetGlobalAchievementPercentagesForAppRequest.GetGlobalAchievementPercentagesForAppRequestBuilder;
import com.lukaspradel.steamapi.webapi.request.GetNewsForAppRequest;
Expand Down Expand Up @@ -140,4 +143,73 @@ public void testCreateGetPlayerSummariesRequest() {
.get(GetPlayerSummariesRequestBuilder.REQUEST_PARAM_STEAM_IDS),
String.valueOf("123,456,789"));
}

@Test
public void testCreateGetFriendListRequestOnlySteamId() {

GetFriendListRequest request = SteamWebApiRequestFactory
.createGetFriendListRequest("12345");

assertNotNull(request);
assertEquals(request.getApiInterface(),
SteamWebApiInterface.I_STEAM_USER);
assertEquals(request.getInterfaceMethod(),
SteamWebApiInterfaceMethod.GET_FRIEND_LIST);
assertEquals(request.getVersion(), SteamWebApiVersion.VERSION_ONE);

Map<String, String> parameters = request.getParameters();
assertNotNull(parameters);
assertEquals(
parameters
.get(GetFriendListRequestBuilder.REQUEST_PARAM_STEAM_ID),
String.valueOf("12345"));
}

@Test
public void testCreateGetFriendListRequestAllParameters() {

// Relationship ALL
GetFriendListRequest request = SteamWebApiRequestFactory
.createGetFriendListRequest("12345", Relationship.ALL);

assertNotNull(request);
assertEquals(request.getApiInterface(),
SteamWebApiInterface.I_STEAM_USER);
assertEquals(request.getInterfaceMethod(),
SteamWebApiInterfaceMethod.GET_FRIEND_LIST);
assertEquals(request.getVersion(), SteamWebApiVersion.VERSION_ONE);

Map<String, String> parameters = request.getParameters();
assertNotNull(parameters);
assertEquals(
parameters
.get(GetFriendListRequestBuilder.REQUEST_PARAM_STEAM_ID),
String.valueOf("12345"));
assertEquals(
parameters
.get(GetFriendListRequestBuilder.REQUEST_PARAM_RELATIONSHIP),
String.valueOf("all"));

// Relationship FRIEND
request = SteamWebApiRequestFactory.createGetFriendListRequest("12345",
Relationship.FRIEND);

assertNotNull(request);
assertEquals(request.getApiInterface(),
SteamWebApiInterface.I_STEAM_USER);
assertEquals(request.getInterfaceMethod(),
SteamWebApiInterfaceMethod.GET_FRIEND_LIST);
assertEquals(request.getVersion(), SteamWebApiVersion.VERSION_ONE);

parameters = request.getParameters();
assertNotNull(parameters);
assertEquals(
parameters
.get(GetFriendListRequestBuilder.REQUEST_PARAM_STEAM_ID),
String.valueOf("12345"));
assertEquals(
parameters
.get(GetFriendListRequestBuilder.REQUEST_PARAM_RELATIONSHIP),
String.valueOf("friend"));
}
}

0 comments on commit 2357034

Please sign in to comment.