package com.flextrade.jfixture.mockito.customisation;
import com.flextrade.jfixture.specifications.Specification;
import com.flextrade.jfixture.utility.SpecimenType;
import java.lang.reflect.Modifier;
class MockitoAutoPropertySpecification implements Specification {
@Override
public boolean isSatisfiedBy(Object request) {
if(!(request instanceof SpecimenType)) {
return false;
}
// No need to auto populate the properties of
// an interface/abstract class because they'll be mocked
SpecimenType<?> requestClass = (SpecimenType<?>)request;
if(requestClass.getRawType().isInterface() || Modifier.isAbstract(requestClass.getRawType().getModifiers())) {
return false;
}
String requestName = requestClass.getRawType().getName();
Boolean isAMock = requestName.contains("Mockito");
return !isAMock;
}
}