From 93ce79439af83bb083d065a99c77435987b67527 Mon Sep 17 00:00:00 2001 From: wamiikechukwu Date: Sat, 11 Jul 2020 16:18:13 +0100 Subject: [PATCH] UserDaoImpl #6 done --- .../com/me/registrationtask/MainActivity.kt | 1 - .../com/me/registrationtask/UserDaoImpl.kt | 32 +++++++++++++++++++ .../usecase/AuthenticationTask.kt | 1 + .../repository/UserRepositoryTest.kt | 5 +++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/me/registrationtask/UserDaoImpl.kt diff --git a/app/src/main/java/com/me/registrationtask/MainActivity.kt b/app/src/main/java/com/me/registrationtask/MainActivity.kt index 68b4ab9..3dd2273 100644 --- a/app/src/main/java/com/me/registrationtask/MainActivity.kt +++ b/app/src/main/java/com/me/registrationtask/MainActivity.kt @@ -8,6 +8,5 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - } } \ No newline at end of file diff --git a/app/src/main/java/com/me/registrationtask/UserDaoImpl.kt b/app/src/main/java/com/me/registrationtask/UserDaoImpl.kt new file mode 100644 index 0000000..19355fb --- /dev/null +++ b/app/src/main/java/com/me/registrationtask/UserDaoImpl.kt @@ -0,0 +1,32 @@ +package com.me.registrationtask + +import com.me.registrationtask.db.UserDao +import com.me.registrationtask.module.UserEntity + +class UserDaoImpl : UserDao { + + // AN ARRAYLIST THAT IS OF THE TYPE UserEntity + private val mArrayList: ArrayList = ArrayList() + + + // THE IMPORTED FUNCTION FROM THE UserDao INTERFACE + override fun saveUser(user: UserEntity) { + +// ADDED THE USER DATA TO THE ARRAYLIST + mArrayList.add(user) + } + + override fun getUser(username: String, password: String): UserEntity { + +// FROM THE ARRAYLIST FIND THE USERNAME AND PASSWORD PARAMETER + val findingUser = mArrayList.find { it.username == username && it.password == password } + +// IF ITS NOT FOUND, THROW AN EXCEPTION + if (findingUser == null) throw NullPointerException("User Not Found") + +// ELSE RETURN THE VARIABLE + else return findingUser + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/me/registrationtask/usecase/AuthenticationTask.kt b/app/src/main/java/com/me/registrationtask/usecase/AuthenticationTask.kt index eff2cb5..292f257 100644 --- a/app/src/main/java/com/me/registrationtask/usecase/AuthenticationTask.kt +++ b/app/src/main/java/com/me/registrationtask/usecase/AuthenticationTask.kt @@ -11,4 +11,5 @@ class AuthenticationTask(private val userRepository: IUserRepository) { return userRepository.login(username, password) } + } diff --git a/app/src/test/java/com/me/registrationtask/repository/UserRepositoryTest.kt b/app/src/test/java/com/me/registrationtask/repository/UserRepositoryTest.kt index 81ce236..03ae8eb 100644 --- a/app/src/test/java/com/me/registrationtask/repository/UserRepositoryTest.kt +++ b/app/src/test/java/com/me/registrationtask/repository/UserRepositoryTest.kt @@ -14,9 +14,14 @@ import org.mockito.MockitoAnnotations @RunWith(JUnit4::class) class UserRepositoryTest { +// THIS IS THE DEPENDENCY WHICH IS CONSTRUCTORS IN A CLASS +// THE CONSTRUCTORS IS MOST TIMES AN INTERFACE + @Mock lateinit var userDao: UserDao +// THIS IS THE NAME OF THE CLASS, WHICH IS A TYPE OF THE CLASS + lateinit var userRepository: UserRepository var fakeUser = UserEntity(