001 /*****************************************************************************
002 * Copyright (C) PicoContainer Organization. All rights reserved. *
003 * ------------------------------------------------------------------------- *
004 * The software in this package is published under the terms of the BSD *
005 * style license a copy of which has been included with this distribution in *
006 * the LICENSE.txt file. *
007 * *
008 * Original code by Mauro Talevi *
009 *****************************************************************************/
010 package org.picocontainer.tck;
011
012 import org.jmock.Mockery;
013 import org.jmock.lib.CamelCaseNamingScheme;
014
015 public class MockFactory {
016
017 /**
018 * Returns a Mockery instance with a counting naming scheme.
019 * From jMock 2.4, default behaviour does not allow more than one mock with same name.
020 * This can be over-restrictive. A workaround is to append a counting integer.
021 *
022 * @return A Mockery instance
023 */
024 public static Mockery mockeryWithCountingNamingScheme() {
025 return new Mockery() {
026 {
027 setNamingScheme(new CamelCaseNamingScheme() {
028 private int count;
029
030 public String defaultNameFor(Class<?> typeToMock) {
031 count++;
032 return super.defaultNameFor(typeToMock) + count;
033 }
034 });
035 }
036 };
037 }
038 }