Skip to content

Commit

Permalink
Added getConfigVersion() API and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Brian Nesbitt committed Nov 5, 2010
1 parent 2c2d304 commit 3fe156a
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 5 deletions.
2 changes: 2 additions & 0 deletions src/com/mogade/java/Mogade.java
Expand Up @@ -2,6 +2,7 @@

import com.mogade.java.data.Leaderboard;
import com.mogade.java.data.Score;
import com.mogade.java.protocol.GetConfigVersionResponse;
import com.mogade.java.protocol.GetLeaderboardResponse;
import com.mogade.java.protocol.SaveScoreResponse;

Expand All @@ -11,4 +12,5 @@ public interface Mogade

public SaveScoreResponse saveScore(String leaderboardId, Score score);
public GetLeaderboardResponse getLeaderboard(Leaderboard leaderboard);
public GetConfigVersionResponse getConfigVersion();
}
19 changes: 15 additions & 4 deletions src/com/mogade/java/MogadeImpl.java
Expand Up @@ -6,15 +6,11 @@
import com.mogade.java.data.Leaderboard;
import com.mogade.java.data.Score;
import com.mogade.java.helpers.HttpRequest;
import com.mogade.java.helpers.Utility;
import com.mogade.java.helpers.Validator;
import com.mogade.java.protocol.*;

import java.io.IOException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;
import java.util.TreeSet;

public class MogadeImpl implements Mogade
{
Expand Down Expand Up @@ -77,6 +73,21 @@ public GetLeaderboardResponse getLeaderboard(Leaderboard leaderboard)
return new GetLeaderboardResponse(null, null, ex.getMessage());
}
}
public GetConfigVersionResponse getConfigVersion()
{
try
{
return gson.fromJson(sendRequest(new GetConfigVersionRequest(gameKey, getApiVersion())), GetConfigVersionResponse.class);
}
catch(JsonParseException ex)
{
return new GetConfigVersionResponse(null, null, "json parse exception:" + ex.getMessage());
}
catch(IOException ex)
{
return new GetConfigVersionResponse(null, null, ex.getMessage());
}
}
private String sendRequest(Request request) throws IOException
{
request.setSig(request.calculateSignature(secret));
Expand Down
17 changes: 17 additions & 0 deletions src/com/mogade/java/protocol/GetConfigVersionRequest.java
@@ -0,0 +1,17 @@
package com.mogade.java.protocol;

public class GetConfigVersionRequest extends BaseRequestImpl
{
public GetConfigVersionRequest(String key, int v)
{
super(key, v);
}
public String getUrl()
{
return "api/conf/version";
}
public RequestMethod getRequestMethod()
{
return RequestMethod.GET;
}
}
18 changes: 18 additions & 0 deletions src/com/mogade/java/protocol/GetConfigVersionResponse.java
@@ -0,0 +1,18 @@
package com.mogade.java.protocol;

public class GetConfigVersionResponse extends BaseResponseImpl
{
private int version;
private GetConfigVersionResponse()
{
}
public GetConfigVersionResponse(String info, String maintenance, String error)
{
super(info, maintenance, error);
}

public int getVersion()
{
return version;
}
}
14 changes: 14 additions & 0 deletions tests/src/com/mogade/java/tests/functional/TestLive.java
Expand Up @@ -4,6 +4,7 @@
import com.mogade.java.MogadeImpl;
import com.mogade.java.data.Leaderboard;
import com.mogade.java.data.Score;
import com.mogade.java.protocol.GetConfigVersionResponse;
import com.mogade.java.protocol.GetLeaderboardResponse;
import com.mogade.java.protocol.SaveScoreResponse;
import org.junit.Before;
Expand Down Expand Up @@ -98,4 +99,17 @@ public void testGetLeaderboardSuccess()

assertTrue(response.getScores().size() > 0);
}

@Test
public void testConfigVersionSuccess()
{
Mogade mogade = MogadeImpl.create(gameKey, secret);
GetConfigVersionResponse response = mogade.getConfigVersion();

assertTrue(response.isOk());
assertFalse(response.isUnavailable());
assertFalse(response.isError());

assertTrue(response.getVersion() > 0);
}
}
16 changes: 15 additions & 1 deletion tests/src/com/mogade/java/tests/functional/TestMogade.java
Expand Up @@ -3,13 +3,13 @@
import static junit.framework.Assert.*;
import static junit.framework.Assert.assertEquals;

import com.google.gson.JsonParseException;
import com.mogade.java.Mogade;
import com.mogade.java.MogadeConfigurationImpl;
import com.mogade.java.MogadeImpl;
import com.mogade.java.data.Leaderboard;
import com.mogade.java.data.Score;
import com.mogade.java.helpers.Utility;
import com.mogade.java.protocol.GetConfigVersionResponse;
import com.mogade.java.protocol.GetLeaderboardResponse;
import com.mogade.java.protocol.SaveScoreResponse;
import com.mogade.java.tests.FakeServer;
Expand Down Expand Up @@ -181,4 +181,18 @@ public void testGetLeaderboardSuccess()
assertEquals("some data", score.getData());
assertEquals("brian2", score.getUsername());
}

@Test
public void testConfigVersionSuccess()
{
fakeServer.addResponse(new FakeServer.FakeResponse(HttpURLConnection.HTTP_OK, "{\"version\":10}"));
Mogade mogade = MogadeImpl.create("GAMEKEY", "SECRET");
GetConfigVersionResponse response = mogade.getConfigVersion();

assertTrue(response.isOk());
assertFalse(response.isUnavailable());
assertFalse(response.isError());

assertEquals(10, response.getVersion());
}
}

0 comments on commit 3fe156a

Please sign in to comment.