Skip to content
Snippets Groups Projects
Commit 7de72012 authored by kaloyane's avatar kaloyane
Browse files

improve test

SVN: 23405
parent a0891f74
No related branches found
No related tags found
No related merge requests found
......@@ -76,14 +76,21 @@ public class PostgresPlusFileSystemFreeSpaceProvider implements IFreeSpaceProvid
private final DataSource dataSource;
private final IFreeSpaceProvider fileSystemFreeSpaceProvider = new SimpleFreeSpaceProvider();
private final IFreeSpaceProvider fileSystemFreeSpaceProvider;
public PostgresPlusFileSystemFreeSpaceProvider(Properties properties)
{
executeVacuum = PropertyUtils.getBoolean(properties, EXECUTE_VACUUM_KEY, false);
this(properties, new SimpleFreeSpaceProvider());
}
PostgresPlusFileSystemFreeSpaceProvider(Properties properties,
IFreeSpaceProvider fileSystemFreeSpaceProvider)
{
this.executeVacuum = PropertyUtils.getBoolean(properties, EXECUTE_VACUUM_KEY, false);
String dataSourceName = PropertyUtils.getMandatoryProperty(properties, DATA_SOURCE_KEY);
dataSource = ServiceProvider.getDataSourceProvider().getDataSource(dataSourceName);
this.dataSource = ServiceProvider.getDataSourceProvider().getDataSource(dataSourceName);
this.fileSystemFreeSpaceProvider = fileSystemFreeSpaceProvider;
}
public long freeSpaceKb(HostAwareFile path) throws IOException
......
......@@ -26,7 +26,6 @@ import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.io.FileSystemUtils;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.springframework.beans.factory.BeanFactory;
......@@ -36,6 +35,7 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import ch.systemsx.cisd.common.filesystem.HostAwareFile;
import ch.systemsx.cisd.common.filesystem.IFreeSpaceProvider;
import ch.systemsx.cisd.openbis.dss.generic.shared.IDataSourceProvider;
import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProviderTestWrapper;
......@@ -50,6 +50,8 @@ public class PostgresPlusFileSystemFreeSpaceProviderTest extends AssertJUnit
private PostgresPlusFileSystemFreeSpaceProvider provider;
private Mockery context;
private IFreeSpaceProvider fsFreeSpaceProvider;
private Connection connection;
private BeanFactory mockApplicationContext;
......@@ -97,18 +99,24 @@ public class PostgresPlusFileSystemFreeSpaceProviderTest extends AssertJUnit
return props;
}
private PostgresPlusFileSystemFreeSpaceProvider createProvider(boolean executeVacuum)
{
Properties props = createProperties(executeVacuum);
fsFreeSpaceProvider = context.mock(IFreeSpaceProvider.class);
return new PostgresPlusFileSystemFreeSpaceProvider(props, fsFreeSpaceProvider);
}
@Test
public void testNoVacuum() throws Exception
{
Properties props = createProperties(false);
provider = new PostgresPlusFileSystemFreeSpaceProvider(props);
provider = createProvider(false);
final long postgresFreeSpace = 1000L;
prepareFreeSpaceExpectations(postgresFreeSpace);
final long fsFreeSpace = 5001L;
prepareFreeSpaceExpectations(postgresFreeSpace, fsFreeSpace);
File workDir = new File(".");
HostAwareFile file = new HostAwareFile(workDir);
long fsFreeSpace = FileSystemUtils.freeSpaceKb(workDir.getAbsolutePath());
long totalFreeSpace = provider.freeSpaceKb(file);
assertEquals(fsFreeSpace + postgresFreeSpace, totalFreeSpace);
......@@ -117,16 +125,15 @@ public class PostgresPlusFileSystemFreeSpaceProviderTest extends AssertJUnit
@Test
public void testWithVacuum() throws Exception
{
Properties props = createProperties(true);
provider = new PostgresPlusFileSystemFreeSpaceProvider(props);
provider = createProvider(true);
final long postgresFreeSpace = 1000L;
final long fsFreeSpace = 5001L;
prepareVacuumExpectations();
prepareFreeSpaceExpectations(postgresFreeSpace);
prepareFreeSpaceExpectations(postgresFreeSpace, fsFreeSpace);
File workDir = new File(".");
HostAwareFile file = new HostAwareFile(workDir);
long fsFreeSpace = FileSystemUtils.freeSpaceKb(workDir.getAbsolutePath());
long totalFreeSpace = provider.freeSpaceKb(file);
assertEquals(fsFreeSpace + postgresFreeSpace, totalFreeSpace);
......@@ -146,7 +153,8 @@ public class PostgresPlusFileSystemFreeSpaceProviderTest extends AssertJUnit
});
}
private void prepareFreeSpaceExpectations(final long freeSpace) throws Exception
private void prepareFreeSpaceExpectations(final long freeSpace, final long fsFreeSpace)
throws Exception
{
context.checking(new Expectations()
{
......@@ -162,6 +170,9 @@ public class PostgresPlusFileSystemFreeSpaceProviderTest extends AssertJUnit
one(rs).getLong(1);
will(returnValue(freeSpace));
one(fsFreeSpaceProvider).freeSpaceKb(with(any(HostAwareFile.class)));
will(returnValue(fsFreeSpace));
}
});
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment