package org.robolectric.shadows;
import android.os.StatFs;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.TestRunners;
import org.robolectric.annotation.Config;
import java.io.File;
import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR2;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(TestRunners.MultiApiSelfTest.class)
public class ShadowStatFsTest {
@Test
public void shouldRegisterStats() throws Exception {
ShadowStatFs.registerStats("/tmp", 100, 20, 10);
StatFs statsFs = new StatFs("/tmp");
assertThat(statsFs.getBlockCount()).isEqualTo(100);
assertThat(statsFs.getFreeBlocks()).isEqualTo(20);
assertThat(statsFs.getAvailableBlocks()).isEqualTo(10);
assertThat(statsFs.getBlockSize()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
}
@Test
public void shouldRegisterStatsWithFile() throws Exception {
ShadowStatFs.registerStats(new File("/tmp"), 100, 20, 10);
StatFs statsFs = new StatFs(new File("/tmp").getAbsolutePath());
assertThat(statsFs.getBlockCount()).isEqualTo(100);
assertThat(statsFs.getFreeBlocks()).isEqualTo(20);
assertThat(statsFs.getAvailableBlocks()).isEqualTo(10);
assertThat(statsFs.getBlockSize()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
}
@Test
public void shouldResetStateBetweenTests() throws Exception {
StatFs statsFs = new StatFs("/tmp");
assertThat(statsFs.getBlockCount()).isEqualTo(0);
assertThat(statsFs.getFreeBlocks()).isEqualTo(0);
assertThat(statsFs.getAvailableBlocks()).isEqualTo(0);
assertThat(statsFs.getBlockSize()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
}
@Test
@Config(minSdk = JELLY_BEAN_MR2)
public void withApi18_shouldRegisterStats() {
ShadowStatFs.registerStats("/tmp", 100, 20, 10);
StatFs statsFs = new StatFs("/tmp");
assertThat(statsFs.getBlockCountLong()).isEqualTo(100);
assertThat(statsFs.getAvailableBlocksLong()).isEqualTo(10L);
assertThat(statsFs.getBlockSizeLong()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
}
@Test
@Config(minSdk = JELLY_BEAN_MR2)
public void withApi18_shouldRegisterStatsWithFile() {
ShadowStatFs.registerStats(new File("/tmp"), 100, 20, 10);
StatFs statsFs = new StatFs(new File("/tmp").getAbsolutePath());
assertThat(statsFs.getBlockCountLong()).isEqualTo(100);
assertThat(statsFs.getAvailableBlocksLong()).isEqualTo(10L);
assertThat(statsFs.getBlockSizeLong()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
}
@Test
@Config(minSdk = JELLY_BEAN_MR2)
public void withApi18_shouldResetStateBetweenTests() {
StatFs statsFs = new StatFs("/tmp");
assertThat(statsFs.getBlockCountLong()).isEqualTo(0);
assertThat(statsFs.getAvailableBlocksLong()).isEqualTo(0);
assertThat(statsFs.getBlockSizeLong()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
}
@Test
public void shouldRestat() throws Exception {
ShadowStatFs.registerStats("/tmp", 100, 20, 10);
StatFs statsFs = new StatFs("/tmp");
assertThat(statsFs.getBlockCount()).isEqualTo(100);
assertThat(statsFs.getFreeBlocks()).isEqualTo(20);
assertThat(statsFs.getAvailableBlocks()).isEqualTo(10);
ShadowStatFs.registerStats("/tmp", 3, 2, 1);
statsFs.restat("/tmp");
assertThat(statsFs.getBlockCount()).isEqualTo(3);
assertThat(statsFs.getFreeBlocks()).isEqualTo(2);
assertThat(statsFs.getAvailableBlocks()).isEqualTo(1);
}
}