![JAR search and dependency download from the Maven repository](/logo.png)
de.tsl2.nano.autotest.creator.ADefaultAutoTester Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tsl2.nano.autotest Show documentation
Show all versions of tsl2.nano.autotest Show documentation
Generates unit tests from code or annotated methods
The newest version!
package de.tsl2.nano.autotest.creator;
import static org.mockito.Mockito.mock;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.mockito.MockitoAnnotations;
import de.tsl2.nano.core.ManagedException;
import de.tsl2.nano.core.cls.BeanClass;
import de.tsl2.nano.core.util.Util;
public class ADefaultAutoTester {
public static final String KEY_AUTOTEST_INITMOCKITO = "tsl2nano.autotest.initmockito";
public static final String DEFAULT_MOCK_CLASSNAMES[] = {
"javax.persistence.Inject",
"javax.persistence.EntityManager",
"javax.persistence.PersistenceContext",
"javax.annotation.Resource",
"javax.ejb.EJB",
"jakarta.persistence.Inject",
"jakarta.persistence.EntityManager",
"jakarta.persistence.PersistenceContext",
"javax.ws.rs.client.Client"
};
// @Before <- setUp() is explicitly called on each AFuctionCaller.run()
public void setUp() {
if (Boolean.getBoolean(System.getProperty(KEY_AUTOTEST_INITMOCKITO, "false"))) {
provideDefaultMocks(this);
}
try {
BeanClass.callStatic("de.tsl2.nano.util.autotest.creator.AllAutoTests", "before");
} catch (ManagedException e) {
// Ok, not available
}
}
// @After <- tearDown is explicitly called on each AFuctionCaller.run()
public void tearDown() {
try {
BeanClass.callStatic("de.tsl2.nano.util.autotest.creator.AllAutoTests", "after");
} catch (ManagedException e) {
// Ok, not available
}
}
public Map provideDefaultMocks(Object testInstance) {
MockitoAnnotations.initMocks(this);
Map mocks = new HashMap<>();
String mockClassNames[] = System
.getProperty("tsl2.nano.auotest.defaultmocks", Arrays.toString(DEFAULT_MOCK_CLASSNAMES)).split(",");
for (int i = 0; i < mockClassNames.length; i++) {
final String name = mockClassNames[i];
Class mockCls = Util.trY(() -> Thread.currentThread().getContextClassLoader().loadClass(name), false);
if (mockCls != null) {
mocks.put(mockCls, initMockObject(mock(mockCls)));
}
}
return mocks;
}
// TODO use function overloading to avoid if-else blocks
// with mockito we have a problem on generalizing providing results
// perhaps it's better to use own proxying
public T initMockObject(T mockObject) {
if (mockObject.getClass().isAssignableFrom(getClass() /* TODO: which class without dependency???*/)) {
// when(mock)
}
return mockObject;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy