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

com.ing.baker.runtime.common.package.scala Maven / Gradle / Ivy

The newest version!
package com.ing.baker.runtime

package object common {

  /**
    * Mockito breaks reflection when mocking classes, for example:
    *
    * interface A { }
    * class B extends A
    * val b = mock[B]
    *
    * When inspecting b, the fact that it extends from A can no longer be reflected.
    *
    * Here we obtain the original class that was mocked.
    *
    * @param clazz The (potentially mocked) class
    * @return The original class
    */
  private[runtime] def unmock(clazz: Class[_]) = {

    if (clazz.getName.contains("$$EnhancerByMockitoWithCGLIB$$")) {
      val originalName: String = clazz.getName.split("\\$\\$EnhancerByMockitoWithCGLIB\\$\\$")(0)
      clazz.getClassLoader.loadClass(originalName)
    } else  if (clazz.getName.contains("$MockitoMock$")) {
      val originalName: String = clazz.getName.split("\\$MockitoMock\\$")(0)
      clazz.getClassLoader.loadClass(originalName)
    } else
      clazz
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy