// Path: src/main/java/com/cloudera/director/spi/v2/model/exception/PluginExceptionDetails.java
// public static final PluginExceptionDetails DEFAULT_DETAILS = new PluginExceptionDetails(
//     DEFAULT_CONDITIONS_BY_KEY
// );


import static com.cloudera.director.spi.v2.model.exception.PluginExceptionDetails.DEFAULT_DETAILS;
import static org.assertj.core.api.Assertions.assertThat;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.junit.Test;
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{message};
      }
    },
    CAUSE_ONLY(new Class[]{Throwable.class}) {
      @Override
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{cause};
      }
    },
    MESSAGE_AND_CAUSE(new Class[]{String.class, Throwable.class}) {
      @Override
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{message, cause};
      }
    },
    MESSAGE_AND_DETAILS(new Class[]{String.class, PluginExceptionDetails.class}) {
      @Override
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{message, details};
      }
    },
    ALL(new Class[]{String.class, Throwable.class, PluginExceptionDetails.class}) {
      @Override
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
// Path: src/main/java/com/cloudera/director/spi/v2/model/exception/PluginExceptionDetails.java
// public static final PluginExceptionDetails DEFAULT_DETAILS = new PluginExceptionDetails(
//     DEFAULT_CONDITIONS_BY_KEY
// );


// Path: src/test/java/com/cloudera/director/spi/v2/model/exception/AbstractPluginExceptionTest.java
import static com.cloudera.director.spi.v2.model.exception.PluginExceptionDetails.DEFAULT_DETAILS;
import static org.assertj.core.api.Assertions.assertThat;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.junit.Test;

      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{message};
      }
    },
    CAUSE_ONLY(new Class[]{Throwable.class}) {
      @Override
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{cause};
      }
    },
    MESSAGE_AND_CAUSE(new Class[]{String.class, Throwable.class}) {
      @Override
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{message, cause};
      }
    },
    MESSAGE_AND_DETAILS(new Class[]{String.class, PluginExceptionDetails.class}) {
      @Override
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{message, details};
      }
    },
    ALL(new Class[]{String.class, Throwable.class, PluginExceptionDetails.class}) {
      @Override
      public Object[] getParameterValues(String message, Throwable cause,
          PluginExceptionDetails details) {
        return new Object[]{message, cause, details};