Package org.jboss.jbossts.qa.ArjunaCore.AbstractRecord.client

Source Code of org.jboss.jbossts.qa.ArjunaCore.AbstractRecord.client.ErrorClient03

/*
* JBoss, Home of Professional Open Source
* Copyright 2007, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags.
* See the copyright.txt in the distribution for a
* full listing of individual contributors.
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License, v. 2.1.
* This program is distributed in the hope that it will be useful, but WITHOUT A
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License,
* v.2.1 along with this distribution; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA  02110-1301, USA.
*
* (C) 2005-2006,
* @author JBoss Inc.
*/
/*
* Created by IntelliJ IDEA.
* User: peter craddock
* Date: 12-Mar-02
* Time: 14:19:06
*/
package org.jboss.jbossts.qa.ArjunaCore.AbstractRecord.client;

import com.arjuna.ats.arjuna.coordinator.ActionStatus;
import com.arjuna.ats.arjuna.coordinator.TwoPhaseOutcome;
import org.jboss.jbossts.qa.ArjunaCore.AbstractRecord.impl.ErrorService01;
import org.jboss.jbossts.qa.ArjunaCore.Utils.BaseTestClient;

import java.util.ArrayList;

/**
* This is a work in progress version of errorclient04
* <p/>
* It seemed a good idea to put the next pahase of the development in a new class
* since it took a long time to get to this point.
*/
public class ErrorClient03 extends BaseTestClient
{
  public static void main(String[] args)
  {
    ErrorClient03 test = new ErrorClient03(args);
  }

  private ErrorClient03(String[] args)
  {
    super(args);
  }

  public void Test()
  {
    //setup values
    mMaxInt = 12;
    mMaxValue = 11;
    try
    {
      setNumberOfResources(getNumberOfArgs());
      setCrashPoint(getNumberOfArgs() - 1);

      createArrayList();
    }
    catch (Exception e)
    {
      Fail("Error in ErrorClient03.test() :", e);
    }

    try
    {
      mCrashPoint = 1;
      //crash type not used in this test
      mCrashType = 1;

      //perform tests
      int testresources = 0;
      int[] mCrashArray;
      for (int i = 0; i < mPermutaionsList.size(); i++)
      {
        mCrashArray = (int[]) mPermutaionsList.get(i);
        testresources = mCrashArray.length;

        ErrorService01 mService = new ErrorService01(testresources);
        int mFinalValue = 0;

        createTx();
        try
        {
          begin();
          mService.setupOper();
          mService.setCrash(mCrashPoint, mCrashArray);
          mFinalValue = intCommit();
        }
        catch (Exception e)
        {
          Fail("Error doing work", e);
        }

        String s = "";
        for (int j = 0; j < mCrashArray.length; j++)
        {
          int value = 0;
          value = mCrashArray[j];
          s += "Resource " + (j + 1) + " : " + TwoPhaseOutcome.stringForm(value) + " ";
        }
        Debug(s + "Final value = " + ActionStatus.stringForm(mFinalValue));
      }
    }
    catch (Exception e)
    {
      Fail("Error in ErrorClient03.test() :", e);
    }

  }

  private void createArrayList()
  {

    int numberoftests = 0;
    int displaycounter = 0;
    mPermutaionsList = new ArrayList();
    for (int j = 0; j < mNumberOfResources; j++)
    {
      numberoftests = mMaxInt;// - mIgnorList.length;
      for (int perms = 0; perms < j; perms++)
      {
        numberoftests = numberoftests * mMaxInt;
      }
      //setupCounterArray(j + 1);
      for (int i = 0; i < numberoftests; i++)
      {
        int[] last = null;
        if (i != 0 || j != 0)
        {
          last = (int[]) mPermutaionsList.get(displaycounter - 1);
        }

        mPermutaionsList.add(createArrays(j + 1, last));
        //turn this off now its working
        display(displaycounter);
        displaycounter++;
      }
    }
  }

  private int[] createArrays(int size, int[] last)
  {
    int[] crash = new int[size];

    if (last == null)
    {
      crash[0] = 0;
      return crash;
    }
    else
    {
      boolean increase = true;
      int value = 0;
      int testvalue = 0;
      //if this happend new array size
      if (last.length != crash.length)
      {
        for (int i = 0; i < crash.length; i++)
        {
          crash[i] = 0;
        }
        return crash;
      }
      for (int i = crash.length - 1; i > -1; i--)
      {
        value = last[i];

        if (increase)
        {
          value++;
        }

        testvalue = value;

        if (value > mMaxValue)
        {
          value = 0;
        }

        if (value != mMaxValue + 1)
        {
          increase = false;
        }

        if (testvalue == mMaxValue + 1)
        {
          increase = true;
        }

        crash[i] = value;
      }
    }
    return crash;
  }

  /**
   * Helper method for debugging createarray function.
   */
  private void display(int i)
  {
    int[] values = (int[]) mPermutaionsList.get(i);
    String s = "";
    for (int j = 0; j < values.length; j++)
    {
      s += values[j] + ", ";
    }
    Debug(s);
  }

  private int mMaxInt = 12;
  private int mMaxValue = 11;
  private ArrayList mPermutaionsList;
  private int[] mIgnorList = null;

}
TOP

Related Classes of org.jboss.jbossts.qa.ArjunaCore.AbstractRecord.client.ErrorClient03

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.