mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
add task_import_with_uuid
This commit is contained in:
parent
96b59dd5b2
commit
f3b73ca0e4
3 changed files with 52 additions and 4 deletions
|
@ -26,9 +26,32 @@ static void test_task_creation(void) {
|
||||||
tc_replica_free(rep);
|
tc_replica_free(rep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// importing a task succeeds and the resulting task looks good
|
||||||
|
static void test_task_import(void) {
|
||||||
|
TCReplica *rep = tc_replica_new_in_memory();
|
||||||
|
TEST_ASSERT_NULL(tc_replica_error(rep));
|
||||||
|
|
||||||
|
TCUuid uuid;
|
||||||
|
TEST_ASSERT_TRUE(tc_uuid_from_str(tc_string_borrow("23cb25e0-5d1a-4932-8131-594ac6d3a843"), &uuid));
|
||||||
|
TCTask *task = tc_replica_import_task_with_uuid(rep, uuid);
|
||||||
|
TEST_ASSERT_NOT_NULL(task);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(TC_STATUS_PENDING, tc_task_get_status(task));
|
||||||
|
|
||||||
|
TCString *desc = tc_task_get_description(task);
|
||||||
|
TEST_ASSERT_NOT_NULL(desc);
|
||||||
|
TEST_ASSERT_EQUAL_STRING("", tc_string_content(desc)); // default value
|
||||||
|
tc_string_free(desc);
|
||||||
|
|
||||||
|
tc_task_free(task);
|
||||||
|
|
||||||
|
tc_replica_free(rep);
|
||||||
|
}
|
||||||
|
|
||||||
int task_tests(void) {
|
int task_tests(void) {
|
||||||
UNITY_BEGIN();
|
UNITY_BEGIN();
|
||||||
// each test case above should be named here, in order.
|
// each test case above should be named here, in order.
|
||||||
RUN_TEST(test_task_creation);
|
RUN_TEST(test_task_creation);
|
||||||
|
RUN_TEST(test_task_import);
|
||||||
return UNITY_END();
|
return UNITY_END();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::{result::TCResult, status::TCStatus, string::TCString, task::TCTask};
|
use crate::{result::TCResult, status::TCStatus, string::TCString, task::TCTask, uuid::TCUuid};
|
||||||
use taskchampion::{Replica, StorageConfig};
|
use taskchampion::{Replica, StorageConfig, Uuid};
|
||||||
|
|
||||||
/// A replica represents an instance of a user's task data, providing an easy interface
|
/// A replica represents an instance of a user's task data, providing an easy interface
|
||||||
/// for querying and modifying that data.
|
/// for querying and modifying that data.
|
||||||
|
@ -89,7 +89,7 @@ pub extern "C" fn tc_replica_new_on_disk<'a>(
|
||||||
///
|
///
|
||||||
/// Returns the task, or NULL on error.
|
/// Returns the task, or NULL on error.
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn tc_replica_new_task<'a>(
|
pub extern "C" fn tc_replica_new_task(
|
||||||
rep: *mut TCReplica,
|
rep: *mut TCReplica,
|
||||||
status: TCStatus,
|
status: TCStatus,
|
||||||
description: *mut TCString,
|
description: *mut TCString,
|
||||||
|
@ -105,7 +105,25 @@ pub extern "C" fn tc_replica_new_task<'a>(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: tc_replica_import_task_with_uuid
|
/// Create a new task. The task must not already exist.
|
||||||
|
///
|
||||||
|
/// Returns the task, or NULL on error.
|
||||||
|
#[no_mangle]
|
||||||
|
pub extern "C" fn tc_replica_import_task_with_uuid(
|
||||||
|
rep: *mut TCReplica,
|
||||||
|
uuid: TCUuid,
|
||||||
|
) -> *mut TCTask {
|
||||||
|
wrap(
|
||||||
|
rep,
|
||||||
|
|rep| {
|
||||||
|
let uuid: Uuid = uuid.into();
|
||||||
|
let task = rep.import_task_with_uuid(uuid)?;
|
||||||
|
Ok(TCTask::as_ptr(task))
|
||||||
|
},
|
||||||
|
std::ptr::null_mut(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: tc_replica_sync
|
// TODO: tc_replica_sync
|
||||||
|
|
||||||
/// Undo local operations until the most recent UndoPoint.
|
/// Undo local operations until the most recent UndoPoint.
|
||||||
|
|
|
@ -93,6 +93,13 @@ struct TCTask *tc_replica_new_task(struct TCReplica *rep,
|
||||||
enum TCStatus status,
|
enum TCStatus status,
|
||||||
struct TCString *description);
|
struct TCString *description);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new task. The task must not already exist.
|
||||||
|
*
|
||||||
|
* Returns the task, or NULL on error.
|
||||||
|
*/
|
||||||
|
struct TCTask *tc_replica_import_task_with_uuid(struct TCReplica *rep, struct TCUuid uuid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Undo local operations until the most recent UndoPoint.
|
* Undo local operations until the most recent UndoPoint.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue