1package com.xtremelabs.robolectric.shadows;
2
3import static org.hamcrest.CoreMatchers.equalTo;
4import static org.junit.Assert.assertThat;
5
6import com.xtremelabs.robolectric.WithTestDefaultsRunner;
7import org.junit.Test;
8import org.junit.runner.RunWith;
9
10import android.os.StatFs;
11
12import java.io.File;
13
14@RunWith(WithTestDefaultsRunner.class)
15public class StatFsTest {
16    @Test
17    public void shouldRegisterStats() throws Exception {
18        ShadowStatFs.registerStats("/tmp", 100, 20, 10);
19        StatFs statsFs = new StatFs("/tmp");
20
21        assertThat(statsFs.getBlockCount(), equalTo(100));
22        assertThat(statsFs.getFreeBlocks(), equalTo(20));
23        assertThat(statsFs.getAvailableBlocks(), equalTo(10));
24        assertThat(statsFs.getBlockSize(), equalTo(ShadowStatFs.BLOCK_SIZE));
25    }
26
27    @Test
28    public void shouldRegisterStatsWithFile() throws Exception {
29        ShadowStatFs.registerStats(new File("/tmp"), 100, 20, 10);
30        StatFs statsFs = new StatFs("/tmp");
31
32        assertThat(statsFs.getBlockCount(), equalTo(100));
33        assertThat(statsFs.getFreeBlocks(), equalTo(20));
34        assertThat(statsFs.getAvailableBlocks(), equalTo(10));
35        assertThat(statsFs.getBlockSize(), equalTo(ShadowStatFs.BLOCK_SIZE));
36    }
37
38    @Test
39    public void shouldResetStateBetweenTests() throws Exception {
40        StatFs statsFs = new StatFs("/tmp");
41        assertThat(statsFs.getBlockCount(), equalTo(0));
42        assertThat(statsFs.getFreeBlocks(), equalTo(0));
43        assertThat(statsFs.getAvailableBlocks(), equalTo(0));
44        assertThat(statsFs.getBlockSize(), equalTo(ShadowStatFs.BLOCK_SIZE));
45    }
46
47    @Test
48    public void shouldRestat() throws Exception {
49        ShadowStatFs.registerStats("/tmp", 100, 20, 10);
50        StatFs statsFs = new StatFs("/tmp");
51
52        assertThat(statsFs.getBlockCount(), equalTo(100));
53        assertThat(statsFs.getFreeBlocks(), equalTo(20));
54        assertThat(statsFs.getAvailableBlocks(), equalTo(10));
55
56        ShadowStatFs.registerStats("/tmp", 3, 2, 1);
57
58        statsFs.restat("/tmp");
59        assertThat(statsFs.getBlockCount(), equalTo(3));
60        assertThat(statsFs.getFreeBlocks(), equalTo(2));
61        assertThat(statsFs.getAvailableBlocks(), equalTo(1));
62    }
63}
64