|
@@ -80,6 +80,23 @@ public class BentelerDingTalkSyncTaskServiceTest {
|
|
|
((Number) saved.get("next_execute_at")).longValue());
|
|
((Number) saved.get("next_execute_at")).longValue());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Test
|
|
|
|
|
+ public void enqueueRosterUpdate_usesStructuredSearchCondition() {
|
|
|
|
|
+ service.enqueueRosterUpdate("source_1", 0, "user_1", "众川");
|
|
|
|
|
+
|
|
|
|
|
+ ArgumentCaptor<String> search = ArgumentCaptor.forClass(String.class);
|
|
|
|
|
+ verify(ydClientForm).upsertForm(any(YDAuth.class), eq("FORM_TASK"),
|
|
|
|
|
+ search.capture(), anyString(), anyMap());
|
|
|
|
|
+ List<Map> conditions = JSON.parseArray(search.getValue(), Map.class);
|
|
|
|
|
+ assertEquals(1, conditions.size());
|
|
|
|
|
+ assertEquals("task_key", conditions.get(0).get("key"));
|
|
|
|
|
+ assertEquals("source_1:0:ROSTER_FIELD_UPDATE:outsourcing_code",
|
|
|
|
|
+ conditions.get(0).get("value"));
|
|
|
|
|
+ assertEquals("TEXT", conditions.get(0).get("type"));
|
|
|
|
|
+ assertEquals("eq", conditions.get(0).get("operator"));
|
|
|
|
|
+ assertEquals("TextField", conditions.get(0).get("componentName"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Test
|
|
@Test
|
|
|
public void enqueueRosterUpdate_blankValueDoesNotCreateTask() {
|
|
public void enqueueRosterUpdate_blankValueDoesNotCreateTask() {
|
|
|
service.enqueueRosterUpdate("source_1", 0, "user_1", " ");
|
|
service.enqueueRosterUpdate("source_1", 0, "user_1", " ");
|
|
@@ -148,10 +165,15 @@ public class BentelerDingTalkSyncTaskServiceTest {
|
|
|
ArgumentCaptor<String> search = ArgumentCaptor.forClass(String.class);
|
|
ArgumentCaptor<String> search = ArgumentCaptor.forClass(String.class);
|
|
|
verify(ydClientForm, times(2)).upsertForm(any(YDAuth.class), eq("FORM_TASK"),
|
|
verify(ydClientForm, times(2)).upsertForm(any(YDAuth.class), eq("FORM_TASK"),
|
|
|
search.capture(), anyString(), anyMap());
|
|
search.capture(), anyString(), anyMap());
|
|
|
- Map<String, Object> expected = Collections.singletonMap("task_key",
|
|
|
|
|
- "source_1:0:ROSTER_FIELD_UPDATE:outsourcing_code");
|
|
|
|
|
- assertEquals(expected, JSON.parseObject(search.getAllValues().get(0), Map.class));
|
|
|
|
|
- assertEquals(expected, JSON.parseObject(search.getAllValues().get(1), Map.class));
|
|
|
|
|
|
|
+ List<Map> expected = Collections.singletonList(new HashMap<String, Object>() {{
|
|
|
|
|
+ put("key", "task_key");
|
|
|
|
|
+ put("value", "source_1:0:ROSTER_FIELD_UPDATE:outsourcing_code");
|
|
|
|
|
+ put("type", "TEXT");
|
|
|
|
|
+ put("operator", "eq");
|
|
|
|
|
+ put("componentName", "TextField");
|
|
|
|
|
+ }});
|
|
|
|
|
+ assertEquals(expected, JSON.parseArray(search.getAllValues().get(0), Map.class));
|
|
|
|
|
+ assertEquals(expected, JSON.parseArray(search.getAllValues().get(1), Map.class));
|
|
|
verify(ydClientForm, never()).saveForm(any(), anyString(), anyString(), any());
|
|
verify(ydClientForm, never()).saveForm(any(), anyString(), anyString(), any());
|
|
|
}
|
|
}
|
|
|
|
|
|