Search in sources :

Example 1 with Condition

use of org.matrix.androidsdk.rest.model.bingrules.Condition in project matrix-android-sdk by matrix-org.

the class ConditionDeserializerTest method testUnknownKind.

@Test
public void testUnknownKind() {
    String conditionJson = "{'kind': 'strange_unknown_kind'}";
    Condition condition = gson.fromJson(conditionJson, Condition.class);
    assertNotNull(condition);
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) Condition(org.matrix.androidsdk.rest.model.bingrules.Condition) RoomMemberCountCondition(org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition) ContainsDisplayNameCondition(org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition) DeviceCondition(org.matrix.androidsdk.rest.model.bingrules.DeviceCondition) Test(org.junit.Test)

Example 2 with Condition

use of org.matrix.androidsdk.rest.model.bingrules.Condition in project matrix-android-sdk by matrix-org.

the class ConditionDeserializerTest method testDeviceCondition.

@Test
public void testDeviceCondition() {
    String conditionJson = "{'kind': 'device', 'profile_tag': 'proftag1'}";
    Condition condition = gson.fromJson(conditionJson, Condition.class);
    assertTrue(condition instanceof DeviceCondition);
    DeviceCondition deviceCondition = (DeviceCondition) condition;
    assertEquals("proftag1", deviceCondition.profileTag);
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) Condition(org.matrix.androidsdk.rest.model.bingrules.Condition) RoomMemberCountCondition(org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition) ContainsDisplayNameCondition(org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition) DeviceCondition(org.matrix.androidsdk.rest.model.bingrules.DeviceCondition) DeviceCondition(org.matrix.androidsdk.rest.model.bingrules.DeviceCondition) Test(org.junit.Test)

Example 3 with Condition

use of org.matrix.androidsdk.rest.model.bingrules.Condition in project matrix-android-sdk by matrix-org.

the class ConditionDeserializer method deserialize.

@Override
public Condition deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
    Condition condition = null;
    JsonObject jsonObject = json.getAsJsonObject();
    JsonElement kindElement = jsonObject.get("kind");
    if (null != kindElement) {
        String kind = kindElement.getAsString();
        if (null != kind) {
            switch(kind) {
                case Condition.KIND_EVENT_MATCH:
                    condition = context.deserialize(json, EventMatchCondition.class);
                    break;
                case Condition.KIND_DEVICE:
                    condition = context.deserialize(json, DeviceCondition.class);
                    break;
                case Condition.KIND_CONTAINS_DISPLAY_NAME:
                    condition = context.deserialize(json, ContainsDisplayNameCondition.class);
                    break;
                case Condition.KIND_ROOM_MEMBER_COUNT:
                    condition = context.deserialize(json, RoomMemberCountCondition.class);
                    break;
                case Condition.KIND_SENDER_NOTIFICATION_PERMISSION:
                    condition = context.deserialize(json, SenderNotificationPermissionCondition.class);
                    break;
                default:
                    Log.e(LOG_TAG, "## deserialize() : unsupported kind " + kind + " with value " + json);
                    condition = context.deserialize(json, UnknownCondition.class);
                    break;
            }
        }
    }
    return condition;
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) Condition(org.matrix.androidsdk.rest.model.bingrules.Condition) RoomMemberCountCondition(org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition) ContainsDisplayNameCondition(org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition) SenderNotificationPermissionCondition(org.matrix.androidsdk.rest.model.bingrules.SenderNotificationPermissionCondition) UnknownCondition(org.matrix.androidsdk.rest.model.bingrules.UnknownCondition) DeviceCondition(org.matrix.androidsdk.rest.model.bingrules.DeviceCondition) SenderNotificationPermissionCondition(org.matrix.androidsdk.rest.model.bingrules.SenderNotificationPermissionCondition) EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) DeviceCondition(org.matrix.androidsdk.rest.model.bingrules.DeviceCondition) JsonElement(com.google.gson.JsonElement) UnknownCondition(org.matrix.androidsdk.rest.model.bingrules.UnknownCondition) JsonObject(com.google.gson.JsonObject) ContainsDisplayNameCondition(org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition) RoomMemberCountCondition(org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition)

Example 4 with Condition

use of org.matrix.androidsdk.rest.model.bingrules.Condition in project matrix-android-sdk by matrix-org.

the class ConditionDeserializerTest method testEventMatchCondition.

@Test
public void testEventMatchCondition() {
    String conditionJson = "{'kind': 'event_match', 'key': 'key1', 'pattern': 'pattern1'}";
    Condition condition = gson.fromJson(conditionJson, Condition.class);
    assertTrue(condition instanceof EventMatchCondition);
    EventMatchCondition eventMatchCondition = (EventMatchCondition) condition;
    assertEquals("key1", eventMatchCondition.key);
    assertEquals("pattern1", eventMatchCondition.pattern);
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) Condition(org.matrix.androidsdk.rest.model.bingrules.Condition) RoomMemberCountCondition(org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition) ContainsDisplayNameCondition(org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition) DeviceCondition(org.matrix.androidsdk.rest.model.bingrules.DeviceCondition) EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) Test(org.junit.Test)

Example 5 with Condition

use of org.matrix.androidsdk.rest.model.bingrules.Condition in project matrix-android-sdk by matrix-org.

the class ConditionDeserializerTest method testContainsDisplayNameCondition.

@Test
public void testContainsDisplayNameCondition() {
    String conditionJson = "{'kind': 'contains_display_name'}";
    Condition condition = gson.fromJson(conditionJson, Condition.class);
    assertTrue(condition instanceof ContainsDisplayNameCondition);
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) Condition(org.matrix.androidsdk.rest.model.bingrules.Condition) RoomMemberCountCondition(org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition) ContainsDisplayNameCondition(org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition) DeviceCondition(org.matrix.androidsdk.rest.model.bingrules.DeviceCondition) ContainsDisplayNameCondition(org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition) Test(org.junit.Test)

Aggregations

Condition (org.matrix.androidsdk.rest.model.bingrules.Condition)7 ContainsDisplayNameCondition (org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition)7 DeviceCondition (org.matrix.androidsdk.rest.model.bingrules.DeviceCondition)7 EventMatchCondition (org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition)7 RoomMemberCountCondition (org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition)7 Test (org.junit.Test)6 JsonElement (com.google.gson.JsonElement)1 JsonObject (com.google.gson.JsonObject)1 SenderNotificationPermissionCondition (org.matrix.androidsdk.rest.model.bingrules.SenderNotificationPermissionCondition)1 UnknownCondition (org.matrix.androidsdk.rest.model.bingrules.UnknownCondition)1