Skip to content

Commit

Permalink
Implement storefront request type appdetails
Browse files Browse the repository at this point in the history
  • Loading branch information
lpradel committed Jul 7, 2016
1 parent aebea95 commit 9fad956
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 0 deletions.
@@ -0,0 +1,54 @@
package com.lukaspradel.steamapi.storefrontapi.request;

import com.lukaspradel.steamapi.storefrontapi.core.SteamStorefrontApiMethod;
import com.lukaspradel.steamapi.storefrontapi.request.builders.AbstractSteamStorefrontApiRequestBuilder;

/**
* Steam Web API Request appdetails
*
* @see <a href=
* "https://wiki.teamfortress.com/wiki/User:RJackson/StorefrontAPI#appdetails"
* >https://wiki.teamfortress.com/wiki/User:RJackson/StorefrontAPI#appdetails</a>
* @author lpradel
*
*/
public class AppdetailsRequest extends SteamStorefrontApiRequest {

private AppdetailsRequest(SteamStorefrontApiRequestBuilder builder) {
super(builder);
}

/**
* Builder object to create instances of {@link SteamStorefrontApiRequest}
* for request type {@link AppdetailsRequest}.
*
* @author lpradel
*
*/
public static class AppdetailsRequestBuilder extends
AbstractSteamStorefrontApiRequestBuilder {

private final Integer appIds;

public static final String REQUEST_PARAM_APP_IDS = "appids";

public AppdetailsRequestBuilder(Integer appIds) {

this.appIds = appIds;
}

@Override
protected SteamStorefrontApiMethod getMethod() {

return SteamStorefrontApiMethod.APP_DETAILS;
};

@Override
public AppdetailsRequest buildRequest() {

addParameter(REQUEST_PARAM_APP_IDS, appIds);

return new AppdetailsRequest(this);
}
}
}
@@ -1,5 +1,7 @@
package com.lukaspradel.steamapi.storefrontapi.request.builders;

import com.lukaspradel.steamapi.storefrontapi.request.AppdetailsRequest;
import com.lukaspradel.steamapi.storefrontapi.request.AppdetailsRequest.AppdetailsRequestBuilder;
import com.lukaspradel.steamapi.storefrontapi.request.FeaturedCategoriesRequest;
import com.lukaspradel.steamapi.storefrontapi.request.FeaturedCategoriesRequest.FeaturedCategoriesRequestBuilder;
import com.lukaspradel.steamapi.storefrontapi.request.FeaturedRequest;
Expand All @@ -24,4 +26,9 @@ public static FeaturedCategoriesRequest createFeaturedCategoriesRequest() {

return new FeaturedCategoriesRequestBuilder().buildRequest();
}

public static AppdetailsRequest createAppdetailsRequest(int appIds) {

return new AppdetailsRequestBuilder(appIds).buildRequest();
}
}
Expand Up @@ -16,8 +16,11 @@

import com.lukaspradel.steamapi.BaseTest;
import com.lukaspradel.steamapi.core.exception.SteamApiException;
import com.lukaspradel.steamapi.data.json.appdetails.App;
import com.lukaspradel.steamapi.data.json.appdetails.Appdetails;
import com.lukaspradel.steamapi.data.json.featured.Featured;
import com.lukaspradel.steamapi.data.json.featuredcategories.FeaturedCategories;
import com.lukaspradel.steamapi.storefrontapi.request.AppdetailsRequest;
import com.lukaspradel.steamapi.storefrontapi.request.FeaturedCategoriesRequest;
import com.lukaspradel.steamapi.storefrontapi.request.FeaturedRequest;
import com.lukaspradel.steamapi.storefrontapi.request.SteamStorefrontApiRequest;
Expand Down Expand Up @@ -174,4 +177,27 @@ public void testProcessFeaturedCategoriesRequest()

assertNotNull(featuredCategories);
}

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

AppdetailsRequest appdetailsRequest = SteamStorefrontApiRequestFactory
.createAppdetailsRequest(49520);

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

when(requestHandlerMock.getStorefrontApiResponse(appdetailsRequest))
.thenReturn(mockAnswer);

Appdetails appdetails = client
.<Appdetails> processRequest(appdetailsRequest);

assertNotNull(appdetails);
App app = appdetails.getAdditionalProperties().get("49520");
assertNotNull(app);
assertTrue(app.getSuccess());
assertNotNull(app.getData());
assertEquals(app.getData().getName(), "Borderlands 2");
}
}
@@ -1,13 +1,15 @@
package com.lukaspradel.steamapi.storefrontapi.request.builders;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;

import org.testng.annotations.Test;

import com.lukaspradel.steamapi.BaseTest;
import com.lukaspradel.steamapi.storefrontapi.core.SteamStorefrontApiMethod;
import com.lukaspradel.steamapi.storefrontapi.request.AppdetailsRequest;
import com.lukaspradel.steamapi.storefrontapi.request.FeaturedCategoriesRequest;
import com.lukaspradel.steamapi.storefrontapi.request.FeaturedRequest;

Expand Down Expand Up @@ -35,4 +37,17 @@ public void testCreateFeaturedCategoriesRequest() {
request.getMethod());
assertTrue(request.getParameters().isEmpty());
}

@Test
public void testCreateAppdetailsRequest() {

AppdetailsRequest request = SteamStorefrontApiRequestFactory
.createAppdetailsRequest(49520);

assertNotNull(request);
assertEquals(SteamStorefrontApiMethod.APP_DETAILS, request.getMethod());
assertFalse(request.getParameters().isEmpty());
assertEquals(1, request.getParameters().size());
assertEquals("49520", request.getParameters().get("appids"));
}
}

Large diffs are not rendered by default.

0 comments on commit 9fad956

Please sign in to comment.