@@ -12,103 +12,102 @@ import android.content.ContentValues
1212import android.database.DatabaseUtils
1313import at.bitfire.ical4android.impl.TestTask
1414import at.bitfire.ical4android.impl.TestTaskList
15+ import at.bitfire.ical4android.impl.TestTaskListStore
1516import net.fortuna.ical4j.model.property.RelatedTo
1617import org.dmfs.tasks.contract.TaskContract
1718import org.dmfs.tasks.contract.TaskContract.Properties
1819import org.dmfs.tasks.contract.TaskContract.Property.Relation
1920import org.dmfs.tasks.contract.TaskContract.Tasks
21+ import org.junit.After
2022import org.junit.Assert.assertEquals
21- import org.junit.Assert.assertNotNull
2223import org.junit.Assert.assertTrue
24+ import org.junit.Before
2325import org.junit.Test
2426
25- class DmfsTaskListTest (providerName : TaskProvider .ProviderName ):
26- DmfsStyleProvidersTaskTest (providerName) {
27+ class DmfsTaskListTest (
28+ providerName : TaskProvider .ProviderName
29+ ) : AbstractTaskProvidersTest(providerName) {
2730
2831 private val testAccount = Account (" AndroidTaskListTest" , TaskContract .LOCAL_ACCOUNT_TYPE )
2932
33+ private lateinit var provider: TaskProvider
34+ lateinit var taskList: TestTaskList
3035
31- private fun createTaskList (): TestTaskList {
32- val info = ContentValues ()
33- info.put(TaskContract .TaskLists .LIST_NAME , " Test Task List" )
34- info.put(TaskContract .TaskLists .LIST_COLOR , 0xffff0000 )
35- info.put(
TaskContract .
TaskLists .
OWNER ,
" [email protected] " )
36- info.put(TaskContract .TaskLists .SYNC_ENABLED , 1 )
37- info.put(TaskContract .TaskLists .VISIBLE , 1 )
36+ @Before
37+ fun setUp () {
38+ val provider = acquireTasksProvider()
3839
39- val uri = DmfsTaskList .create(testAccount, provider.client, providerName, info)
40- assertNotNull(uri)
40+ val store = TestTaskListStore (testAccount, providerName, provider.client)
41+ taskList = store.provideTestTaskList()
42+ }
43+
44+ @After
45+ fun cleanUp () {
46+ taskList.delete()
4147
42- return DmfsTaskList .findByID(testAccount, provider.client, providerName, TestTaskList .Factory , ContentUris .parseId(uri))
48+ if (this ::provider.isInitialized)
49+ provider.close()
4350 }
4451
4552
4653 @Test
4754 fun testManageTaskLists () {
48- val taskList = createTaskList()
49-
50- try {
51- // sync URIs
52- assertEquals(" true" , taskList.taskListSyncUri().getQueryParameter(TaskContract .CALLER_IS_SYNCADAPTER ))
53- assertEquals(testAccount.type, taskList.taskListSyncUri().getQueryParameter(TaskContract .ACCOUNT_TYPE ))
54- assertEquals(testAccount.name, taskList.taskListSyncUri().getQueryParameter(TaskContract .ACCOUNT_NAME ))
55-
56- assertEquals(" true" , taskList.tasksSyncUri().getQueryParameter(TaskContract .CALLER_IS_SYNCADAPTER ))
57- assertEquals(testAccount.type, taskList.tasksSyncUri().getQueryParameter(TaskContract .ACCOUNT_TYPE ))
58- assertEquals(testAccount.name, taskList.tasksSyncUri().getQueryParameter(TaskContract .ACCOUNT_NAME ))
59- } finally {
60- // delete task list
61- assertTrue(taskList.delete())
62- }
55+ // sync URIs
56+ assertEquals(" true" , taskList.taskListSyncUri().getQueryParameter(TaskContract .CALLER_IS_SYNCADAPTER ))
57+ assertEquals(testAccount.type, taskList.taskListSyncUri().getQueryParameter(TaskContract .ACCOUNT_TYPE ))
58+ assertEquals(testAccount.name, taskList.taskListSyncUri().getQueryParameter(TaskContract .ACCOUNT_NAME ))
59+
60+ assertEquals(" true" , taskList.tasksSyncUri().getQueryParameter(TaskContract .CALLER_IS_SYNCADAPTER ))
61+ assertEquals(testAccount.type, taskList.tasksSyncUri().getQueryParameter(TaskContract .ACCOUNT_TYPE ))
62+ assertEquals(testAccount.name, taskList.tasksSyncUri().getQueryParameter(TaskContract .ACCOUNT_NAME ))
6363 }
6464
6565 @Test
6666 fun testTouchRelations () {
67- val taskList = createTaskList()
68- try {
69- val parent = Task ()
70- parent.uid = " parent"
71- parent.summary = " Parent task"
72-
73- val child = Task ()
74- child.uid = " child"
75- child.summary = " Child task"
76- child.relatedTo.add(RelatedTo (parent.uid))
77-
78- // insert child before parent
79- val childContentUri = TestTask (taskList, child).add()
80- val childId = ContentUris .parseId(childContentUri)
81- val parentContentUri = TestTask (taskList, parent).add()
82- val parentId = ContentUris .parseId(parentContentUri)
83-
84- // OpenTasks should provide the correct relation
85- taskList.provider.query(taskList.tasksPropertiesSyncUri(), null ,
86- " ${Properties .TASK_ID } =?" , arrayOf(childId.toString()),
87- null , null )!! .use { cursor ->
88- assertEquals(1 , cursor.count)
89- cursor.moveToNext()
90-
91- val row = ContentValues ()
92- DatabaseUtils .cursorRowToContentValues(cursor, row)
93-
94- assertEquals(Relation .CONTENT_ITEM_TYPE , row.getAsString(Properties .MIMETYPE ))
95- assertEquals(parentId, row.getAsLong(Relation .RELATED_ID ))
96- assertEquals(parent.uid, row.getAsString(Relation .RELATED_UID ))
97- assertEquals(Relation .RELTYPE_PARENT , row.getAsInteger(Relation .RELATED_TYPE ))
98- }
99-
100- // touch the relations to update parent_id values
101- taskList.touchRelations()
102-
103- // now parent_id should bet set
104- taskList.provider.query(childContentUri, arrayOf(Tasks .PARENT_ID ),
105- null , null , null )!! .use { cursor ->
106- assertTrue(cursor.moveToNext())
107- assertEquals(parentId, cursor.getLong(0 ))
108- }
109- } finally {
110- taskList.delete()
67+ val parent = Task ()
68+ parent.uid = " parent"
69+ parent.summary = " Parent task"
70+
71+ val child = Task ()
72+ child.uid = " child"
73+ child.summary = " Child task"
74+ child.relatedTo.add(RelatedTo (parent.uid))
75+
76+ // insert child before parent
77+ val childContentUri = TestTask (taskList, child).add()
78+ val childId = ContentUris .parseId(childContentUri)
79+ val parentContentUri = TestTask (taskList, parent).add()
80+ val parentId = ContentUris .parseId(parentContentUri)
81+
82+ // OpenTasks should provide the correct relation
83+ taskList.provider.query(
84+ taskList.tasksPropertiesSyncUri(), null ,
85+ " ${Properties .TASK_ID } =?" , arrayOf(childId.toString()),
86+ null , null
87+ )!! .use { cursor ->
88+ assertEquals(1 , cursor.count)
89+ cursor.moveToNext()
90+
91+ val row = ContentValues ()
92+ DatabaseUtils .cursorRowToContentValues(cursor, row)
93+
94+ assertEquals(Relation .CONTENT_ITEM_TYPE , row.getAsString(Properties .MIMETYPE ))
95+ assertEquals(parentId, row.getAsLong(Relation .RELATED_ID ))
96+ assertEquals(parent.uid, row.getAsString(Relation .RELATED_UID ))
97+ assertEquals(Relation .RELTYPE_PARENT , row.getAsInteger(Relation .RELATED_TYPE ))
98+ }
99+
100+ // touch the relations to update parent_id values
101+ taskList.touchRelations()
102+
103+ // now parent_id should bet set
104+ taskList.provider.query(
105+ childContentUri, arrayOf(Tasks .PARENT_ID ),
106+ null , null , null
107+ )!! .use { cursor ->
108+ assertTrue(cursor.moveToNext())
109+ assertEquals(parentId, cursor.getLong(0 ))
111110 }
112111 }
113112
114- }
113+ }
0 commit comments