package hudson.node_monitors;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.junit.Rule;
import org.junit.Test;
import hudson.slaves.DumbSlave;
import hudson.slaves.SlaveComputer;
import hudson.node_monitors.DiskSpaceMonitorDescriptor.DiskSpace;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.WithoutJenkins;
/**
* @author Kohsuke Kawaguchi
*/
public class DiskSpaceMonitorDescriptorTest {
@Rule
public JenkinsRule j = new JenkinsRule();
/**
* Makes sure that it returns some value.
*/
@Test
@Issue("JENKINS-3381")
public void remoteDiskSpaceUsage() throws Exception {
DumbSlave s = j.createSlave();
SlaveComputer c = s.getComputer();
c.connect(false).get(); // wait until it's connected
if(c.isOffline())
fail("Slave failed to go online: "+c.getLog());
DiskSpace du = TemporarySpaceMonitor.DESCRIPTOR.monitor(c);
du.toHtml();
assertTrue(du.size>0);
}
@Test
@WithoutJenkins
public void parse() throws Exception {
assertEquals(1,DiskSpace.parse("1").size);
assertEquals(1024,DiskSpace.parse("1KB").size);
assertEquals(1024,DiskSpace.parse("1K").size);
assertEquals(1024,DiskSpace.parse("1kb").size);
assertEquals(1024*1024,DiskSpace.parse("1MB").size);
assertEquals(1024*1024*1024,DiskSpace.parse("1GB").size);
assertEquals(512*1024*1024,DiskSpace.parse("0.5GB").size);
}
}