This is the stacktrace
java.lang.NullPointerException
at android.content.ContextWrapper.getSystemService(ContextWrapper.java:416)
at androidx.room.RoomDatabase$JournalMode.resolve(RoomDatabase.java:517)
at androidx.room.RoomDatabase$Builder.build(RoomDatabase.java:943)
at com.example.movie_app.model.database.MovieDB$Companion.getDatabase(MovieDB.kt:26)
at com.example.movie_app.repository.FavouriteRepository.<init>(FavouriteRepository.kt:22)
at
com.example.movie_app.repository.FavouriteRepositoryTest.setUp(FavouriteRepositoryTest.kt:38)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at
org.robolectri c .RobolectricTestRunner $ HelperTestRunner $ 1.evaluate (RobolectricTestRunner. java: 546) в org.robolectri c .internal.SandboxTestRunner $ 2.lambda $ оценивать $ 0 0. *: 252) в org.robolectri c .internal.bytecode.Sandbox.lambda $ runOnMainThread $ 0 (песочница. java: 89) в java .util.concurrent.FutureTask.run (FutureTask. java: 266) в java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 624) в * 1016) * .lang.Thread.run (Тема. java: 748)
This is my code
The error seems to be pointing towards my Database and repository
@RunWith(RobolectricTestRunner::class)
@Config(manifest = Config.NONE)
class FavouriteRepositoryTest {
@Mock
private lateinit var context: Context
private lateinit var favouriteRepository: FavouriteRepository
private lateinit var db: MovieDB
private lateinit var movieDao: MovieDao
lateinit var application: Application
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
db = Room.databaseBuilder(context,
MovieDB::class.java,"data").allowMainThreadQueries().build()
movieDao = db.MovieDao()
application = Application()
favouriteRepository = FavouriteRepository(application)
}
@Test
fun getFavouriteMessages() {
}
@Test
fun insertFavourite() {
runBlocking {
favouriteRepository.insertFavourite(TestUtil.getFakeMovie())
val favMovies = favouriteRepository.getFavouriteMessages()
assertEquals(favMovies.value!!.isNotEmpty(),true)
// assert(favMovies.value.isNullOrEmpty())
}
}
@Test
fun deleteFavourite() {
}
}