@@ -12,103 +12,102 @@ import android.content.ContentValues
12
12
import android.database.DatabaseUtils
13
13
import at.bitfire.ical4android.impl.TestTask
14
14
import at.bitfire.ical4android.impl.TestTaskList
15
+ import at.bitfire.ical4android.impl.TestTaskListStore
15
16
import net.fortuna.ical4j.model.property.RelatedTo
16
17
import org.dmfs.tasks.contract.TaskContract
17
18
import org.dmfs.tasks.contract.TaskContract.Properties
18
19
import org.dmfs.tasks.contract.TaskContract.Property.Relation
19
20
import org.dmfs.tasks.contract.TaskContract.Tasks
21
+ import org.junit.After
20
22
import org.junit.Assert.assertEquals
21
- import org.junit.Assert.assertNotNull
22
23
import org.junit.Assert.assertTrue
24
+ import org.junit.Before
23
25
import org.junit.Test
24
26
25
- class DmfsTaskListTest (providerName : TaskProvider .ProviderName ):
26
- DmfsStyleProvidersTaskTest (providerName) {
27
+ class DmfsTaskListTest (
28
+ providerName : TaskProvider .ProviderName
29
+ ) : AbstractTaskProvidersTest(providerName) {
27
30
28
31
private val testAccount = Account (" AndroidTaskListTest" , TaskContract .LOCAL_ACCOUNT_TYPE )
29
32
33
+ private lateinit var provider: TaskProvider
34
+ lateinit var taskList: TestTaskList
30
35
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()
38
39
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()
41
47
42
- return DmfsTaskList .findByID(testAccount, provider.client, providerName, TestTaskList .Factory , ContentUris .parseId(uri))
48
+ if (this ::provider.isInitialized)
49
+ provider.close()
43
50
}
44
51
45
52
46
53
@Test
47
54
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 ))
63
63
}
64
64
65
65
@Test
66
66
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 ))
111
110
}
112
111
}
113
112
114
- }
113
+ }
0 commit comments