Я выполняю модульный тест для своего проекта и хочу смоделировать указанный метод c из SaveFileProcessor, потому что он используется в методе, который будет сохранять файл на файловом сервере. Я хочу, чтобы он возвращал значение true, потому что есть какое-то исключение. Вот метод, который я хочу издеваться:
public Boolean saveToFileServer(SmbFile file, byte[] data, SaveFileParams param)
throws SmbException, MalformedURLException {
if (!(validator.validateDirectory(file, new NtlmPasswordAuthentication(param.getDomain(),
param.getUsername(), param.getPassword())))) {
return false;
}
try (SmbFileOutputStream outputStream = new SmbFileOutputStream(file);) {
outputStream.write(data);
return true;
} catch (IOException e) {
return false;
}
}
Это тестовый класс
@Tested
private FileServerUtilityImpl service;
@Injectable
private Validator validator;
@Injectable
private FileNameGenerator fileNameGenerator;
@Injectable
private SmbFileGenerator smbFileGenerator;
@Injectable
private SaveFileProcessor saveFileProcessor;
@Injectable
private GetFileProcessor getFileProcessor;
Я хочу издеваться private SaveFileProcessor saveFileProcessor
@Test
public void given_ValidAllParams_When_SaveFile_Then_Return_Success() throws IOException {
new MockUp<SaveFileProcessor>() {
@Mock
Boolean saveToFileServer(SmbFile smbFile, byte[] byt, SaveFileParams param) {
return true;
}
};
Response res = service.saveFile(param);
assertEquals(StatusCodes.SUCCESS.getStatusCode(), res.getStatusCode());
}
Но это дает я java.lang.IllegalArgumentException: Class already mocked: com.file.server.processor.SaveFileProcessor