LoginSystem/src/test/java/fr/xephi/authme/WrapperMock.java
ljacqu 6422f90114 Create Wrapper for instances / revise MockUtils
- Add test resources folder
- Create basic test for Messages (todo: add concrete tests)
- Create WrapperMock
- Change UtilsTest (todo: make it work)
2015-11-23 23:25:03 +01:00

55 lines
1.1 KiB
Java

package fr.xephi.authme;
import fr.xephi.authme.util.Wrapper;
import org.bukkit.Server;
import org.mockito.Mockito;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
/**
* Class returning mocks for all calls in {@link Wrapper}.
* This class keeps track of its mocks and will always return
* the same one for each type.
*/
public class WrapperMock extends Wrapper {
private static Map<Class<?>, Object> mocks = new HashMap<>();
public WrapperMock() {
this((AuthMe) getMock(AuthMe.class));
}
public WrapperMock(AuthMe authMe) {
super(authMe);
}
@Override
public Logger getLogger() {
return getMock(Logger.class);
}
@Override
public Server getServer() {
return getMock(Server.class);
}
@Override
public AuthMe getAuthMe() {
return getMock(AuthMe.class);
}
@SuppressWarnings("unchecked")
private static <T> T getMock(Class<?> clazz) {
Object o = mocks.get(clazz);
if (o == null) {
o = Mockito.mock(clazz);
mocks.put(clazz, o);
}
return (T) o;
}
}