// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved. // Released under the terms of the CPL Common Public License version 1.0. package fitnesse.slim.test; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; public class TestSlim implements TestSlimInterface { public static final int HUGE_MESSAGE_SIZE = 999999 + 10; private boolean niladWasCalled = false; private String stringArg; private int intArg; private double doubleArg; private Date dateArg; private Integer integerObjectArg; private Double doubleObjectArg; private char charArg; private List<Object> listArg; private int constructorArg; private String[] stringArray; private Integer[] integerArray; private Boolean[] booleanArray; private Double[] doubleArray; private Zork zork; private Map<String, String> map; public TestSlim() { } public TestSlim(int constructorArg) { this.constructorArg = constructorArg; } public TestSlim(int constructorArg, TestSlim other) { this.constructorArg = constructorArg; stringArg = other.getStringArg(); } public TestSlim createTestSlimWithString(String string) { TestSlim testSlim = new TestSlim(); testSlim.setString(string); return testSlim; } @Override public String toString() { return "TestSlim: " + constructorArg + ", " + stringArg; } public void nilad() { niladWasCalled = true; } public int returnConstructorArg() { return constructorArg; } public void voidFunction() { } @Override public boolean niladWasCalled() { return niladWasCalled; } public String returnString() { return "string"; } public int returnInt() { return 7; } public String returnHugeString() { StringBuilder builder = new StringBuilder(HUGE_MESSAGE_SIZE); for (int i = 0; i < HUGE_MESSAGE_SIZE; i++) { builder.append('x'); } return builder.toString(); } public void setString(String arg) { stringArg = arg; } public void oneString(String arg) { stringArg = arg; } public void oneDate(Date arg) { dateArg = new Date(arg.getTime()); } public void oneList(List<Object> l) { listArg = l; } @Override public List<Object> getListArg() { return listArg; } @Override public String getStringArg() { return stringArg; } @Override public Date getDateArg() { return new Date(dateArg.getTime()); } public void oneInt(int arg) { intArg = arg; } @Override public int getIntArg() { return intArg; } public void oneDouble(double arg) { doubleArg = arg; } @Override public double getDoubleArg() { return doubleArg; } public void manyArgs(Integer i, Double d, char c) { integerObjectArg = i; doubleObjectArg = d; charArg = c; } @Override public Integer getIntegerObjectArg() { return integerObjectArg; } @Override public double getDoubleObjectArg() { return doubleObjectArg; } @Override public char getCharArg() { return charArg; } public int addTo(int a, int b) { return a + b; } public int echoInt(int i) { return i; } public String echoString(String s) { return s; } public void printString(String s) { System.out.println(s); } public List<Object> echoList(List<Object> l) { return l; } public boolean echoBoolean(boolean b) { return b; } public double echoDouble(double d) { return d; } public void execute() { } public void die() { throw new Error("blah"); } public void setNoSuchConverter(NoSuchConverter x) { } public NoSuchConverter noSuchConverter() { return new NoSuchConverter(); } public void setStringArray(String[] array) { stringArray = Arrays.copyOf(array, array.length); } public String[] getStringArray() { return Arrays.copyOf(stringArray, stringArray.length); } public void setIntegerArray(Integer[] array) { integerArray = Arrays.copyOf(array, array.length); } public Integer[] getIntegerArray() { return Arrays.copyOf(integerArray, integerArray.length); } public Boolean[] getBooleanArray() { return Arrays.copyOf(booleanArray, booleanArray.length); } public void setBooleanArray(Boolean[] booleanArray) { this.booleanArray = Arrays.copyOf(booleanArray, booleanArray.length); } public Double[] getDoubleArray() { return Arrays.copyOf(doubleArray, doubleArray.length); } public void setDoubleArray(Double[] doubleArray) { this.doubleArray = Arrays.copyOf(doubleArray, doubleArray.length); } public String nullString() { return null; } public boolean isSame(Object other) { return this == other; } public String getStringFromOther(TestSlim other) { return other.getStringArg(); } public Zork oneZork(Zork zork) { this.zork = zork; return zork; } @Override public Zork getZork() { return zork; } class NoSuchConverter { } public boolean throwNormal() throws Exception { throw new Exception("This is my exception"); } public boolean throwStopping() throws Exception { throw new StopTestException("This is a stop test exception"); } public boolean throwExceptionWithMessage() throws Exception { throw new Exception("message:<<Test message>>"); } public boolean throwStopTestExceptionWithMessage() throws Exception { throw new StopTestException("message:<<Stop Test>>"); } public String concatenateThreeArgs(String first, String second, String third) { return first + " " + second + " " + third; } public void setMap(Map<String, String> map) { this.map = map; } public Map<String, String> getMap() { return map; } @SuppressWarnings("serial") class StopTestException extends Exception { public StopTestException(String description) { super(description); } } }