/* * Copyright (c) 2007 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockito.internal.util; import org.mockito.mock.MockName; import java.io.Serializable; public class MockNameImpl implements MockName, Serializable { private static final long serialVersionUID = 8014974700844306925L; private final String mockName; private boolean defaultName; @SuppressWarnings("unchecked") public MockNameImpl(String mockName, Class<?> classToMock) { if (mockName == null) { this.mockName = toInstanceName(classToMock); this.defaultName = true; } else { this.mockName = mockName; } } public MockNameImpl(String mockName) { this.mockName = mockName; } private static String toInstanceName(Class<?> clazz) { String className = clazz.getSimpleName(); if (className.length() == 0) { //it's an anonymous class, let's get name from the parent className = clazz.getSuperclass().getSimpleName(); } //lower case first letter return className.substring(0, 1).toLowerCase() + className.substring(1); } public boolean isDefault() { return defaultName; } @Override public String toString() { return mockName; } }