1
+ package com.trackr.trackr_app.manager
2
+
3
+ import android.content.Context
4
+ import androidx.room.Room
5
+ import androidx.test.core.app.ApplicationProvider
6
+ import com.trackr.trackr_app.database.PersonDao
7
+ import com.trackr.trackr_app.database.TrackrDatabase
8
+ import com.trackr.trackr_app.database.UserDao
9
+ import com.trackr.trackr_app.model.User
10
+ import com.trackr.trackr_app.notification.EventNotificationManager
11
+ import com.trackr.trackr_app.repository.EventRepository
12
+ import com.trackr.trackr_app.repository.PersonRepository
13
+ import com.trackr.trackr_app.repository.UserRepository
14
+ import junit.framework.Assert.assertEquals
15
+ import kotlinx.coroutines.runBlocking
16
+ import org.junit.After
17
+ import org.junit.Before
18
+ import org.junit.Test
19
+
20
+ class PersonManagerTest {
21
+ private lateinit var userDao: UserDao
22
+ private lateinit var eventRepository: EventRepository
23
+ private lateinit var personDao: PersonDao
24
+ private lateinit var db: TrackrDatabase
25
+ private lateinit var eventManager: EventManager
26
+ private lateinit var personManager: PersonManager
27
+
28
+ @Before
29
+ fun setUp () {
30
+ val context = ApplicationProvider .getApplicationContext<Context >()
31
+ db = Room .inMemoryDatabaseBuilder(context, TrackrDatabase ::class .java)
32
+ .allowMainThreadQueries().build()
33
+ userDao = db.userDao()
34
+ personDao = db.personDao()
35
+ val userRepository = UserRepository (userDao)
36
+ val personRepository = PersonRepository (personDao)
37
+ eventRepository = EventRepository (db.eventDao())
38
+ val eventNotificationManager = EventNotificationManager (context)
39
+ val userManager = UserManager (userRepository)
40
+ personManager = PersonManager (personRepository, userManager)
41
+ eventManager = EventManager (eventRepository, eventNotificationManager, personManager)
42
+ }
43
+
44
+ @After
45
+ fun tearDown () {
46
+ db.close()
47
+ }
48
+
49
+ @Test
50
+ fun testAddPerson () = runBlocking {
51
+ val newPerson = personManager.createPerson(" FirstName" , " LastName" )
52
+ val result = personManager.getPersonById(newPerson.id).id
53
+ assertEquals(result, newPerson.id)
54
+ }
55
+
56
+ @Test
57
+ fun testEditPersonLastName () = runBlocking {
58
+ val newPerson = personManager.createPerson(" FirstName" , " LastName" )
59
+ personManager.editPerson(newPerson.id, firstName = " FirstName" , lastName = " Hello" )
60
+ val result = personManager.getPersonById(newPerson.id).lastName
61
+ assertEquals(result, " Hello" )
62
+ }
63
+
64
+ @Test
65
+ fun testEditPersonFirstName () = runBlocking {
66
+ val newPerson = personManager.createPerson(" FirstName" , " LastName" )
67
+ personManager.editPerson(newPerson.id, firstName = " Hello" , lastName = " LastName" )
68
+ val result = personManager.getPersonById(newPerson.id).firstName
69
+ assertEquals(result, " Hello" )
70
+ }
71
+
72
+ @Test
73
+ fun testEditPersonFullName () = runBlocking {
74
+ val newPerson = personManager.createPerson(" FirstName" , " LastName" )
75
+ personManager.editPerson(newPerson.id, firstName = " Hello" , lastName = " Hello" )
76
+ val result = personManager.getPersonById(newPerson.id)
77
+ assertEquals(result.firstName, " Hello" )
78
+ assertEquals(result.lastName, " Hello" )
79
+ }
80
+ }
0 commit comments