use of com.armueller.fluxytodo.actions.TodoAction in project FluxyAndroidTodo by armueller.
the class TodoListManagerTest method completeTodoTest.
@Test(timeout = 100)
public void completeTodoTest() throws InterruptedException {
final AtomicBoolean testDone = new AtomicBoolean(false);
final ArrayList<TodoItem> todoItems = new ArrayList<TodoItem>();
createTodos(2);
dataBus.register(new Object() {
@Subscribe
public void onListUpdated(RawTodoList rawTodoList) {
todoItems.clear();
todoItems.addAll(rawTodoList.list);
if (!todoItems.get(1).isComplete()) {
DataBundle<TodoAction.DataKeys> bundle = new DataBundle<>();
bundle.put(TodoAction.DataKeys.ID, todoItems.get(1).getId());
actionBus.post(new TodoAction(TodoAction.ActionTypes.TOGGLE, bundle));
} else {
assertThat(todoItems.get(0).isComplete()).isFalse();
assertThat(todoItems.get(1).isComplete()).isTrue();
testDone.set(true);
}
}
});
// Wait for test to finish or timeout
while (!testDone.get()) ;
}
use of com.armueller.fluxytodo.actions.TodoAction in project FluxyAndroidTodo by armueller.
the class TodosActivityStoreTest method shouldNotShowUndoButtonTest.
@Test(timeout = 100)
public void shouldNotShowUndoButtonTest() {
final AtomicBoolean testDone = new AtomicBoolean(false);
dataBus.post(new TodoAction(TodoAction.ActionTypes.UNDO_DELETE_ALL));
dataBus.register(new Object() {
@Subscribe
public void onListUpdated(Boolean shouldShowUndoButton) {
assertThat(shouldShowUndoButton).isFalse();
testDone.set(true);
}
});
// Wait for test to finish or timeout
while (!testDone.get()) ;
}
use of com.armueller.fluxytodo.actions.TodoAction in project FluxyAndroidTodo by armueller.
the class TodoListManagerTest method deleteTodoTest.
@Test(timeout = 100)
public void deleteTodoTest() throws InterruptedException {
final AtomicBoolean testDone = new AtomicBoolean(false);
final AtomicLong deletedId = new AtomicLong(-1);
final ArrayList<TodoItem> todoItems = new ArrayList<TodoItem>();
createTodos(3);
dataBus.register(new Object() {
@Subscribe
public void onListUpdated(RawTodoList rawTodoList) {
todoItems.clear();
todoItems.addAll(rawTodoList.list);
if (todoItems.size() == 3) {
deletedId.set(todoItems.get(1).getId());
DataBundle<TodoAction.DataKeys> bundle = new DataBundle<>();
bundle.put(TodoAction.DataKeys.ID, todoItems.get(1).getId());
actionBus.post(new TodoAction(TodoAction.ActionTypes.DELETE, bundle));
} else {
assertThat(todoItems.size()).isEqualTo(2);
assertThat(todoItems.get(0).getId()).isNotEqualTo(deletedId.get());
assertThat(todoItems.get(1).getId()).isNotEqualTo(deletedId.get());
testDone.set(true);
}
}
});
// Wait for test to finish or timeout
while (!testDone.get()) ;
}
use of com.armueller.fluxytodo.actions.TodoAction in project FluxyAndroidTodo by armueller.
the class TodoListManagerTest method undoDeleteAllCompleteTodosTest.
@Test(timeout = 100)
public void undoDeleteAllCompleteTodosTest() throws InterruptedException {
final AtomicBoolean testDone = new AtomicBoolean(false);
final AtomicBoolean checkedTodo1 = new AtomicBoolean(false);
final AtomicBoolean checkedTodo3 = new AtomicBoolean(false);
final AtomicBoolean deletedTodos = new AtomicBoolean(false);
final AtomicBoolean undidDelete = new AtomicBoolean(false);
final ArrayList<TodoItem> todoItems = new ArrayList<TodoItem>();
createTodos(4);
dataBus.register(new Object() {
@Subscribe
public void onListUpdated(RawTodoList rawTodoList) {
todoItems.clear();
todoItems.addAll(rawTodoList.list);
if (!checkedTodo1.get()) {
checkedTodo1.set(true);
DataBundle<TodoAction.DataKeys> bundle = new DataBundle<>();
bundle.put(TodoAction.DataKeys.ID, todoItems.get(1).getId());
actionBus.post(new TodoAction(TodoAction.ActionTypes.TOGGLE, bundle));
return;
}
if (!checkedTodo3.get()) {
checkedTodo3.set(true);
DataBundle<TodoAction.DataKeys> bundle = new DataBundle<>();
bundle.put(TodoAction.DataKeys.ID, todoItems.get(3).getId());
actionBus.post(new TodoAction(TodoAction.ActionTypes.TOGGLE, bundle));
return;
}
if (!deletedTodos.get() && checkedTodo1.get() && checkedTodo3.get()) {
deletedTodos.set(true);
actionBus.post(new TodoAction(TodoAction.ActionTypes.DELETE_ALL));
return;
}
if (!undidDelete.get() && deletedTodos.get()) {
undidDelete.set(true);
actionBus.post(new TodoAction(TodoAction.ActionTypes.UNDO_DELETE_ALL));
return;
}
if (undidDelete.get() && deletedTodos.get()) {
assertThat(todoItems.size()).isEqualTo(4);
testDone.set(true);
}
}
});
// Wait for test to finish or timeout
while (!testDone.get()) ;
}
use of com.armueller.fluxytodo.actions.TodoAction in project FluxyAndroidTodo by armueller.
the class TodoListManagerTest method createTodos.
private void createTodos(final int numberOfTodos) throws InterruptedException {
for (int i = 0; i < numberOfTodos; i++) {
DataBundle<TodoAction.DataKeys> bundle = new DataBundle<>();
bundle.put(TodoAction.DataKeys.DESCRIPTION, "Testing " + i);
actionBus.post(new TodoAction(TodoAction.ActionTypes.ADD, bundle));
Thread.sleep(10);
}
}
Aggregations