Package org.approvaltests.legacycode

Source Code of org.approvaltests.legacycode.LegacyApprovals

package org.approvaltests.legacycode;

import java.lang.reflect.Method;
import java.util.Arrays;

import org.approvaltests.Approvals;
import org.approvaltests.ReporterFactory;
import org.approvaltests.ReporterFactory.FileTypes;
import org.approvaltests.namer.JUnitStackTraceNamer;
import org.approvaltests.writers.ApprovalTextWriter;

import com.spun.util.MethodExecutionPath.Parameters;

public class LegacyApprovals
{
  public static void LockDown(Object call, String method, Object[]... parametersVariations) throws Exception
  {
    StringBuffer sb = new StringBuffer();
    IndexPermutations perms = new IndexPermutations(getSizes(parametersVariations));
    Method m = null;
    for (Integer[] indexs : perms)
    {
      Object p[] = getParameters(parametersVariations, indexs);
      if (m == null)
      {
        m = new Parameters(p).getBestFitMethod(call.getClass(), method);
      }
     
      Object out;
      try
      {
        out = m.invoke(call, p);
      }
      catch (Throwable t)
      {
        out = t;
      }
      sb.append(String.format("%s = %s \r\n", Arrays.toString(p), out));
    }
    Approvals.verify(new ApprovalTextWriter(sb.toString(), "txt"), new JUnitStackTraceNamer(), ReporterFactory
        .get(FileTypes.Text));
  }
  private static Object[] getParameters(Object[][] parametersVariations, Integer[] index)
  {
    Object[] parameters = new Object[index.length];
    for (int i = 0; i < index.length; i++)
    {
      parameters[i] = parametersVariations[i][index[i]];
    }
    return parameters;
  }
  public static Integer[] getSizes(Object[]... parametersVariations)
  {
    Integer[] sizes = new Integer[parametersVariations.length];
    for (int i = 0; i < sizes.length; i++)
    {
      sizes[i] = parametersVariations[i].length;
    }
    return sizes;
  }
}
TOP

Related Classes of org.approvaltests.legacycode.LegacyApprovals

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.