Skip to content

Commit e6dec20

Browse files
authored
Merge pull request #164 from CSC207-UofT/PersonManager_Tests
Added PersonManagerTest
2 parents 336e229 + ab7f40e commit e6dec20

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
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

Comments
 (0)