Как издеваться над десериализатором GSON? - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь смоделировать этот «десериализатор кода активности» для покрытия кода, и, похоже, он не работает. Этот десериализатор вызывается в построителе GSON остального клиента

public class ActivityCodeDeserializer implements JsonDeserializer<ActivityCode> {

    @Override
    public ActivityCode deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
        return ActivityCode.toSignerActivityCode(jsonElement.getAsInt());
    }
}

Этот inturn вызывает enumкласс с кодами и кодом активности

public enum ActivityCode{
    UNKNOWN(-1),
    INITIATION_SENT(101),
    RECEIVED(102),


    private static Map<Integer, ActivityCode> values = new HashMap<>();
    private int statusCode = -1;

    static {
        for (ActivityCode signerActivity : values()) {
            values.put(signerActivity.value(), signerActivity);
        }
    }

    ActivityCode(int status) {
        this.statusCode = status;
    }

    public int value() {
        return statusCode;
    }

    public static ActivityCode toSignerActivityCode(int statusCode) {
        return values.containsKey(statusCode) ? values.get(statusCode) : UNKNOWN;
    }

    @Override
    public String toString() {
        return "Activity{" +
                "statusCode=" + statusCode +
                ", name=" + name() +
                '}';
    }
}
...