Ниже приведен основной код, состоящий из одного класса утилиты и класса обслуживания, использующего его
@PropertySource("classpath:atlas-application.properties")
public class ApacheAtlasUtils {
@Value("${atlas.rest.address}")
private String atlasURL;
@Value("${atlas.rest.user}")
private String atlasUsername;
@Value("${atlas.rest.password}")
private String atlasPassword;
private AtlasClientV2 client;
public AtlasClientV2 createClient() {
if (client == null) {
return new AtlasClientV2(new String[] {atlasURL}, new String[] {atlasUsername, atlasPassword});
} else {
return client;
}
}
}
Класс обслуживания ниже: -
@Override
public Page<SearchResultDto> findFilesWithPages(QueryParent queryParent, Pageable pageable)
throws AtlasServiceException {
// Some code
client = new ApacheAtlasUtils().createClient();
//some code
}
Я пишу модульный тест для метода обслуживания и Я получаю исключение для метода createClient, запрашивающего значения для URL-адреса, имени пользователя и пароля, чего не должно происходить, поскольку это должно быть издевательским, но издевательство дает мне ошибку ниже
java.lang.IllegalArgumentException: Base URL cannot be null or empty.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:141)
at org.apache.atlas.AtlasServerEnsemble.<init>(AtlasServerEnsemble.java:35)
at org.apache.atlas.AtlasBaseClient.determineActiveServiceURL(AtlasBaseClient.java:318)
at org.apache.atlas.AtlasBaseClient.initializeState(AtlasBaseClient.java:460)
at org.apache.atlas.AtlasBaseClient.initializeState(AtlasBaseClient.java:448)
at org.apache.atlas.AtlasBaseClient.<init>(AtlasBaseClient.java:132)
at org.apache.atlas.AtlasClientV2.<init>(AtlasClientV2.java:82)
at com.jlr.stratus.commons.utils.ApacheAtlasUtils.createClient(ApacheAtlasUtils.java:40)
at com.jlr.stratus.rest.service.impl.FileSearchService.findFilesWithPages(FileSearchService.java:49)
Тестовый код выглядит следующим образом: -
private FileSearchService fileSearchService;
@Spy
private ApacheAtlasUtils apacheAtlasUtils;
@Mock
private AtlasClientV2 client;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
fileSearchService = new FileSearchService();
}
@Test
public void findFilesWithPages_searchAll() throws AtlasServiceException {
Mockito.doReturn(client).when(apacheAtlasUtils).createClient();
service.search(queryParent,pageable);
}