def test_search_with_empty_query_data_should_return_entire_list(self): self.task_service.add( TaskAddCommand(description='primo task', tags=['#abc', '#def']) ) self.task_service.add( TaskAddCommand(description='secondo task', tags=['#abc']) ) search_command = TaskSearchCommand(description='', tags=[]) filtered_tasks = self.task_service.search(search_command) self.assertEqual(2, len(filtered_tasks))
def test_search_description_and_tags_should_return_filtered_list(self): self.task_service.add( TaskAddCommand(description='primo task', tags=['#abc', '#def', '#ghi']) ) self.task_service.add( TaskAddCommand(description='secondo task', tags=['#abc', '#zxc']) ) search_command = TaskSearchCommand(description='primo', tags=['#abc', '#def']) filtered_tasks = self.task_service.search(search_command) self.assertEqual(1, len(filtered_tasks)) self.assertEqual('primo task', filtered_tasks[0].description)
def test_from_json_str(self): json_str = '{"description":"nuovo task", "tags":"#abd #def"}' command = TaskAddCommand.from_json_str(json_str) self.assertIsNotNone(command) self.assertEqual('nuovo task', command.description) self.assertEqual(2, len(command.tags))
def test_done_with_valid_id_should_update_the_right_task(self): add_command = TaskAddCommand(description='nuovo task', tags=[]) task: Task = self.task_service.add(add_command) uuid_to_update = task.uuid self.task_service.mark_as_done(uuid_to_update) read_task: Task = self.task_service.get(uuid_to_update) self.assertEqual(1, read_task.done)
def test_delete_with_valid_id_should_remove_the_right_task(self): command = TaskAddCommand(description='nuovo task', tags=[]) task: Task = self.task_service.add(command) num_tasks_after_insert: int = len(self.task_service.list()) uuid_to_delete = task.uuid self.task_service.delete(uuid_to_delete) num_tasks_after_delete: int = len(self.task_service.list()) self.assertEqual(1, num_tasks_after_insert) self.assertEqual(0, num_tasks_after_delete)
def test_add_should_return_just_created_task(self): command = TaskAddCommand(description='nuovo task', tags=['#abc', '#def']) task: Task = self.task_service.add(command) num_tasks_after_insert: int = len(self.task_service.list()) self.assertIsNotNone(task) self.assertRegex(task.uuid, r'%s' % UUID4_REGEX) self.assertEqual(command.description, task.description) self.assertEqual(1, num_tasks_after_insert) self.assertEqual(2, len(task.tags))
def test_update_with_valid_id_should_update_the_right_task(self): add_command = TaskAddCommand(description='nuovo task', tags=[]) task: Task = self.task_service.add(add_command) uuid_to_update = task.uuid update_command = TaskUpdateCommand(description='task modificato', tags=['#abc']) self.task_service.update(uuid_to_update, update_command) read_task: Task = self.task_service.get(uuid_to_update) self.assertEqual('task modificato', read_task.description) self.assertEqual(1, len(read_task.tags)) self.assertEqual('#abc', read_task.tags[0])
def test_from_command(self): command = TaskAddCommand(description='nuovo task', tags=['#abc', '#def']) task = Task.from_command(command) self.assertIsNotNone(task) self.assertRegex(task.uuid, r'%s' % UUID4_REGEX) self.assertEqual(command.description, task.description) self.assertEqual(0, task.done) self.assertEqual(2, len(task.tags)) self.assertEqual('#abc', task.tags[0]) self.assertEqual('#def', task.tags[1])
def tasks_add(task_service: TaskService) -> Task: command = TaskAddCommand.from_json_str(request.get_data()) return jsonify(task_service.add(command))