diff --git a/core-kotlin-modules/core-kotlin-lang-oop-2/pom.xml b/core-kotlin-modules/core-kotlin-lang-oop-2/pom.xml
index f0adea121e..f952911ae1 100644
--- a/core-kotlin-modules/core-kotlin-lang-oop-2/pom.xml
+++ b/core-kotlin-modules/core-kotlin-lang-oop-2/pom.xml
@@ -22,4 +22,57 @@
-
\ No newline at end of file
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk8
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk7
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-common
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-reflect
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-test-junit
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-test
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-test-common
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-test-annotations-common
+ ${kotlin.version}
+
+
+
+
+
+ 1.4.10
+
+
diff --git a/core-kotlin-modules/core-kotlin-lang-oop-2/src/test/kotlin/com/baeldung/kotlin/delegates/DelegateProviderTest.kt b/core-kotlin-modules/core-kotlin-lang-oop-2/src/test/kotlin/com/baeldung/kotlin/delegates/DelegateProviderTest.kt
new file mode 100644
index 0000000000..2959ea0e3c
--- /dev/null
+++ b/core-kotlin-modules/core-kotlin-lang-oop-2/src/test/kotlin/com/baeldung/kotlin/delegates/DelegateProviderTest.kt
@@ -0,0 +1,42 @@
+package com.baeldung.kotlin.delegates
+
+import org.junit.Test
+import kotlin.properties.PropertyDelegateProvider
+import kotlin.reflect.KProperty
+import kotlin.test.assertEquals
+
+class DelegateProvider(private val field: String, private val id: Int)
+ : PropertyDelegateProvider> {
+ override operator fun provideDelegate(thisRef: T, prop: KProperty<*>): DatabaseDelegate {
+ println("Providing delegate for field $field and ID $id")
+ prop.returnType.isMarkedNullable
+ return DatabaseDelegate(field, id)
+ }
+}
+
+class DelegateProvidingUser(val id: Int) {
+ var name: String by DelegateProvider("name", id)
+ var age: Int by DelegateProvider("age", id)
+}
+
+class DelegateProviderTest {
+ @Test
+ fun testGetKnownFields() {
+ val user = DelegateProvidingUser(1)
+ assertEquals("George", user.name)
+ assertEquals(4, user.age)
+ }
+
+ @Test
+ fun testSetKnownFields() {
+ val user = DelegateProvidingUser(2)
+ user.age = 3
+ assertEquals(3, user.age)
+ }
+
+ @Test(expected = NoRecordFoundException::class)
+ fun testGetKnownField() {
+ val user = DelegateProvidingUser(3)
+ user.name
+ }
+}