tests
This commit is contained in:
parent
fbd8f30e05
commit
1614002b5c
|
@ -201,4 +201,12 @@ public class MDStoreController extends AbstractDnetController {
|
|||
return info;
|
||||
}
|
||||
|
||||
protected void setDatabaseUtils(final DatabaseUtils databaseUtils) {
|
||||
this.databaseUtils = databaseUtils;
|
||||
}
|
||||
|
||||
protected void setHdfsClient(final HdfsClient hdfsClient) {
|
||||
this.hdfsClient = hdfsClient;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
package eu.dnetlib.data.mdstore.manager.controller;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
|
||||
import eu.dnetlib.data.mdstore.manager.exceptions.MDStoreManagerException;
|
||||
import eu.dnetlib.data.mdstore.manager.utils.DatabaseUtils;
|
||||
import eu.dnetlib.data.mdstore.manager.utils.HdfsClient;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class MDStoreControllerWithMocksTest {
|
||||
|
||||
// Class Under Test
|
||||
private MDStoreController controller;
|
||||
|
||||
@Mock
|
||||
private DatabaseUtils dbUtils;
|
||||
|
||||
@Mock
|
||||
private HdfsClient hdfsClient;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
controller = new MDStoreController();
|
||||
controller.setDatabaseUtils(dbUtils);
|
||||
controller.setHdfsClient(hdfsClient);
|
||||
when(hdfsClient.listHadoopDirs()).thenReturn(Sets.newHashSet("/tmp/a", "/tmp/a/1", "/tmp/b", "/tmp/b/1", "/tmp/b/2", "/tmp/c"));
|
||||
when(dbUtils.listValidHdfsPaths()).thenReturn(Sets.newHashSet("/tmp/a", "/tmp/a/1", "/tmp/b", "/tmp/b/2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFixHdfsInconsistencies_false() throws MDStoreManagerException {
|
||||
final Set<String> toDelete = controller.fixHdfsInconsistencies(false);
|
||||
assertEquals(2, toDelete.size());
|
||||
assertTrue(toDelete.contains("/tmp/b/1"));
|
||||
assertTrue(toDelete.contains("/tmp/c"));
|
||||
verify(hdfsClient, never()).deletePath(anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFixHdfsInconsistencies_true() throws MDStoreManagerException {
|
||||
final Set<String> toDelete = controller.fixHdfsInconsistencies(true);
|
||||
assertEquals(2, toDelete.size());
|
||||
assertTrue(toDelete.contains("/tmp/b/1"));
|
||||
assertTrue(toDelete.contains("/tmp/c"));
|
||||
verify(hdfsClient).deletePath("/tmp/b/1");
|
||||
verify(hdfsClient).deletePath("/tmp/c");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue