Skip to content

Commit

Permalink
add qualifier-order, check for missing keys in JsonResultComparer
Browse files Browse the repository at this point in the history
  • Loading branch information
guenthermi committed Apr 8, 2014
1 parent 85d094d commit 537aa60
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public interface JsonConstants {
final String KEY_CLAIMS = "claims";
final String KEY_SNAKS = "snaks";
final String KEY_SNAK_ORDER = "snak-order";
final String KEY_QUALIFIERS_ORDER = "qualifiers-order";
final String KEY_ALIASES = "aliases";
final String KEY_DESCRIPTIONS = "descriptions";
final String KEY_SITE_LINKS = "sitelinks";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,11 +225,16 @@ JSONObject addTermedDocumentAttributes(TermedDocument document,
*/
JSONObject getJsonForClaim(Claim claim) {
JSONObject result = new JSONObject();
JSONArray order = new JSONArray();
result.put(JsonConstants.KEY_MAINSNAK,
claim.getMainSnak().accept(this.snakJsonConverter));
if (!claim.getQualifiers().isEmpty()) {
result.put(JsonConstants.KEY_QUALIFIERS,
convertQualifiersToJson(claim.getQualifiers()));
result.put(JsonConstants.KEY_QUALIFIERS_ORDER, order);
for (SnakGroup snakGroup : claim.getQualifiers()){
order.put(snakGroup.getProperty().getId());
}
}
return result;
}
Expand Down Expand Up @@ -273,15 +278,11 @@ JSONObject getJsonForReference(Reference reference) {
*/
JSONObject getJsonForStatement(Statement statement) {
JSONObject result = new JSONObject();

JSONArray order = new JSONArray();

result = getJsonForClaim(statement.getClaim());

result.put(JsonConstants.KEY_ID, statement.getStatementId());
result.put(JsonConstants.KEY_MAINSNAK, statement.getClaim()
.getMainSnak().accept(this.snakJsonConverter));
if (statement.getClaim().getQualifiers().isEmpty() == false) {
result.put(JsonConstants.KEY_QUALIFIERS,
convertQualifiersToJson(statement.getClaim()
.getQualifiers()));
}
result.put(JsonConstants.KEY_TYPE, "statement");
result.put("rank", convertStatementRankToJson(statement.getRank()));
JSONArray references = new JSONArray();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public class JsonResultComparer {
*/
public static void compareJSONObjects(JSONObject obj1, JSONObject obj2) {
try {
assertEquals(obj1.keySet(), obj2.keySet());
for (Object key : obj1.keySet()) {
if (obj1.get((String) key) instanceof JSONObject) {
compareJSONObjects(obj1.getJSONObject((String) key),
Expand Down Expand Up @@ -73,6 +74,7 @@ public static void compareJSONObjects(JSONObject obj1, JSONObject obj2) {
*/
public static void compareJSONArrays(JSONArray array1, JSONArray array2) {
try {
assertEquals(array1.length(), array2.length());
for (int index = 0; index < array1.length(); index++) {
if (array1.get(index) instanceof JSONObject) {
compareJSONObjects(array1.getJSONObject(index),
Expand Down
2 changes: 1 addition & 1 deletion wdtk-datamodel/src/test/resources/ItemDocument.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"id":"Q10","claims":{"P11":[{"id":"none","rank":"normal","mainsnak":{"property":"P11","snaktype":"novalue"},"type":"statement"}],"P1040":[{"id":"none2","references":[{"snak-order":["P112"],"snaks":{"P112":[{"property":"P112","snaktype":"value","datavalue":{"value":{"calendarmodel":"http://www.wikidata.org/entity/Q1985727","after":43,"timezone":0,"time":"+00000000306-11-03T13:07:06Z","precision":32,"before":17},"type":"time"}}]}}],"rank":"normal","mainsnak":{"property":"P1040","snaktype":"value","datavalue":{"value":{"calendarmodel":"http://www.wikidata.org/entity/Q1985727","after":43,"timezone":0,"time":"+00000000306-11-03T13:07:06Z","precision":32,"before":17},"type":"time"}},"qualifiers":{"P15":[{"property":"P15","snaktype":"value","datavalue":{"value":{"calendarmodel":"http://www.wikidata.org/entity/Q1985727","after":43,"timezone":0,"time":"+00000000306-11-03T13:07:06Z","precision":32,"before":17},"type":"time"}}]},"type":"statement"},{"id":"none","rank":"normal","mainsnak":{"property":"P1040","snaktype":"value","datavalue":{"value":"TestString","type":"string"}},"type":"statement"}]},"title":"Q10","labels":{"lc":{"value":"foo","language":"lc"},"lc2":{"value":"bar","language":"lc2"}},"type":"item","aliases":{"lc":[{"value":"foo","language":"lc"},{"value":"bar","language":"lc"}]},"descriptions":{"lc":{"value":"it's foo","language":"lc"},"lc2":{"value":"it's bar","language":"lc2"}},"sitelinks":{"auwiki":{"site":"siteKey","badges":[],"title":"title_au"},"enwiki":{"site":"siteKey","badges":[],"title":"title_en"}}}
{"id":"Q10","claims":{"P11":[{"id":"none","rank":"normal","mainsnak":{"property":"P11","snaktype":"novalue"},"type":"statement"}],"P1040":[{"id":"none2","references":[{"snak-order":["P112"],"snaks":{"P112":[{"property":"P112","snaktype":"value","datavalue":{"value":{"calendarmodel":"http://www.wikidata.org/entity/Q1985727","after":43,"timezone":0,"time":"+00000000306-11-03T13:07:06Z","precision":32,"before":17},"type":"time"}}]}}],"rank":"normal","mainsnak":{"property":"P1040","snaktype":"value","datavalue":{"value":{"calendarmodel":"http://www.wikidata.org/entity/Q1985727","after":43,"timezone":0,"time":"+00000000306-11-03T13:07:06Z","precision":32,"before":17},"type":"time"}},"qualifiers":{"P15":[{"property":"P15","snaktype":"value","datavalue":{"value":{"calendarmodel":"http://www.wikidata.org/entity/Q1985727","after":43,"timezone":0,"time":"+00000000306-11-03T13:07:06Z","precision":32,"before":17},"type":"time"}}]},"qualifiers-order": ["P15"],"type":"statement"},{"id":"none","rank":"normal","mainsnak":{"property":"P1040","snaktype":"value","datavalue":{"value":"TestString","type":"string"}},"type":"statement"}]},"title":"Q10","labels":{"lc":{"value":"foo","language":"lc"},"lc2":{"value":"bar","language":"lc2"}},"type":"item","aliases":{"lc":[{"value":"foo","language":"lc"},{"value":"bar","language":"lc"}]},"descriptions":{"lc":{"value":"it's foo","language":"lc"},"lc2":{"value":"it's bar","language":"lc2"}},"sitelinks":{"auwiki":{"site":"siteKey","badges":[],"title":"title_au"},"enwiki":{"site":"siteKey","badges":[],"title":"title_en"}}}

0 comments on commit 537aa60

Please sign in to comment.