pushFailsOnInvalidFiles integration test.

This commit is contained in:
Winston Li
2015-03-10 11:49:31 +00:00
parent 105ab215b2
commit c36a1de7c3
7 changed files with 124 additions and 17 deletions

View File

@@ -1,9 +1,11 @@
package uk.ac.ic.wlgitbridge.snapshot.servermock.response.push.postback;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import uk.ac.ic.wlgitbridge.snapshot.servermock.response.push.postback.invalidfile.InvalidFileError;
import java.util.ArrayList;
import java.util.List;
/**
@@ -18,6 +20,13 @@ public class SnapshotPostbackRequestInvalidFiles extends SnapshotPostbackRequest
this.errors = errors;
}
public SnapshotPostbackRequestInvalidFiles(JsonArray errors) {
this(new ArrayList<InvalidFileError>());
for (JsonElement error : errors) {
this.errors.add(InvalidFileError.buildFromJsonError(error.getAsJsonObject()));
}
}
@Override
public JsonObject toJson() {
JsonObject jsonThis = super.toJson();

View File

@@ -22,4 +22,18 @@ public abstract class InvalidFileError {
protected abstract String getState();
public static InvalidFileError buildFromJsonError(JsonObject error) {
String state = error.get("state").getAsString();
String file = error.get("file").getAsString();
if (state.equals("error")) {
return new InvalidFileErrorDefault(file);
} else if (state.equals("disallowed")) {
return new InvalidFileErrorDisallowed(file);
} else if (state.equals("unclean_name")) {
return new InvalidFileErrorUnclean(file, error.get("cleanFile").getAsString());
} else {
throw new IllegalArgumentException("bad invalid file state: " + state);
}
}
}

View File

@@ -4,18 +4,17 @@ import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import uk.ac.ic.wlgitbridge.snapshot.getdoc.GetDocResult;
import uk.ac.ic.wlgitbridge.snapshot.getforversion.GetForVersionResult;
import uk.ac.ic.wlgitbridge.snapshot.getforversion.SnapshotAttachment;
import uk.ac.ic.wlgitbridge.snapshot.getforversion.SnapshotData;
import uk.ac.ic.wlgitbridge.snapshot.getforversion.SnapshotFile;
import uk.ac.ic.wlgitbridge.snapshot.getsavedvers.GetSavedVersResult;
import uk.ac.ic.wlgitbridge.snapshot.getsavedvers.SnapshotInfo;
import uk.ac.ic.wlgitbridge.snapshot.servermock.response.push.data.SnapshotPushResult;
import uk.ac.ic.wlgitbridge.snapshot.servermock.response.push.data.SnapshotPushResultOutOfDate;
import uk.ac.ic.wlgitbridge.snapshot.servermock.response.push.data.SnapshotPushResultSuccess;
import uk.ac.ic.wlgitbridge.snapshot.servermock.response.push.postback.*;
import uk.ac.ic.wlgitbridge.snapshot.servermock.response.push.postback.invalidfile.InvalidFileError;
import uk.ac.ic.wlgitbridge.snapshot.getdoc.GetDocResult;
import uk.ac.ic.wlgitbridge.snapshot.getforversion.SnapshotAttachment;
import uk.ac.ic.wlgitbridge.snapshot.getforversion.SnapshotData;
import uk.ac.ic.wlgitbridge.snapshot.getforversion.SnapshotFile;
import uk.ac.ic.wlgitbridge.snapshot.getforversion.GetForVersionResult;
import uk.ac.ic.wlgitbridge.snapshot.getsavedvers.GetSavedVersResult;
import uk.ac.ic.wlgitbridge.snapshot.getsavedvers.SnapshotInfo;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -139,7 +138,7 @@ public class SnapshotAPIStateBuilder {
} else if (type.equals("outOfDate")) {
p = new SnapshotPostbackRequestOutOfDate();
} else if (type.equals("invalidFiles")) {
p = new SnapshotPostbackRequestInvalidFiles(new LinkedList<InvalidFileError>());
p = new SnapshotPostbackRequestInvalidFiles(jsonPostback.get("errors").getAsJsonArray());
} else if (type.equals("invalidProject")) {
p = new SnapshotPostbackRequestInvalidProject(new LinkedList<String>());
} else if (type.equals("error")) {

View File

@@ -3,10 +3,7 @@ package uk.ac.ic.wlgitbridge.util;
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.*;
/**
* Created by Winston on 19/11/14.
@@ -152,6 +149,25 @@ public class Util {
}
}
public static List<String> linesFromStream(InputStream stream, int skip, String trimSuffix) throws IOException {
List<String> lines = new ArrayList<String>();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String line;
for (int i = 0; i < skip; i++) {
reader.readLine();
}
while ((line = reader.readLine()) != null) {
String trim = line.trim();
trim = trim.replaceAll("\\p{C}", "");
int endIndex = trim.lastIndexOf(trimSuffix);
if (endIndex >= 0) {
trim = trim.substring(0, endIndex);
}
lines.add(trim);
}
return lines;
}
public static String fromStream(InputStream stream, int skip) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
StringBuilder out = new StringBuilder();