All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jvmMain.io.kotest.equals.ReflectionUsingFieldsEquality.kt Maven / Gradle / Ivy

package io.kotest.equals

import io.kotest.matchers.equality.beEqualToUsingFields
import kotlin.reflect.KProperty

class ReflectionUsingFieldsEquality(
   private val fields: Array>
) : Equality {
   override fun name(): String {
      return "reflection equality using fields ${fields.map { it.name }}"
   }

   override fun verify(actual: T, expected: T): EqualityResult {
      val result = beEqualToUsingFields(expected, *fields).test(actual)
      if (result.passed()) return EqualityResult.equal(actual, expected, this)
      return EqualityResult.notEqual(actual, expected, this).withDetails { result.failureMessage() }
   }

   override fun toString(): String = name()
}

fun  Equality.Companion.byReflectionUsingFields(vararg fields: KProperty<*>) =
   ReflectionUsingFieldsEquality(fields)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy