Home | History | Annotate | Download | only in shadows
      1 package org.robolectric.shadows;
      2 
      3 import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR2;
      4 import static org.assertj.core.api.Assertions.assertThat;
      5 
      6 import android.os.StatFs;
      7 import java.io.File;
      8 import org.junit.Test;
      9 import org.junit.runner.RunWith;
     10 import org.robolectric.RobolectricTestRunner;
     11 import org.robolectric.annotation.Config;
     12 
     13 @RunWith(RobolectricTestRunner.class)
     14 public class ShadowStatFsTest {
     15   @Test
     16   public void shouldRegisterStats() throws Exception {
     17     ShadowStatFs.registerStats("/tmp", 100, 20, 10);
     18     StatFs statsFs = new StatFs("/tmp");
     19 
     20     assertThat(statsFs.getBlockCount()).isEqualTo(100);
     21     assertThat(statsFs.getFreeBlocks()).isEqualTo(20);
     22     assertThat(statsFs.getAvailableBlocks()).isEqualTo(10);
     23     assertThat(statsFs.getBlockSize()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
     24   }
     25 
     26   @Test
     27   public void shouldRegisterStatsWithFile() throws Exception {
     28     ShadowStatFs.registerStats(new File("/tmp"), 100, 20, 10);
     29     StatFs statsFs = new StatFs(new File("/tmp").getAbsolutePath());
     30 
     31     assertThat(statsFs.getBlockCount()).isEqualTo(100);
     32     assertThat(statsFs.getFreeBlocks()).isEqualTo(20);
     33     assertThat(statsFs.getAvailableBlocks()).isEqualTo(10);
     34     assertThat(statsFs.getBlockSize()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
     35   }
     36 
     37   @Test
     38   public void shouldResetStateBetweenTests() throws Exception {
     39     StatFs statsFs = new StatFs("/tmp");
     40     assertThat(statsFs.getBlockCount()).isEqualTo(0);
     41     assertThat(statsFs.getFreeBlocks()).isEqualTo(0);
     42     assertThat(statsFs.getAvailableBlocks()).isEqualTo(0);
     43     assertThat(statsFs.getBlockSize()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
     44   }
     45 
     46   @Test
     47   @Config(minSdk = JELLY_BEAN_MR2)
     48   public void withApi18_shouldRegisterStats() {
     49     ShadowStatFs.registerStats("/tmp", 100, 20, 10);
     50     StatFs statsFs = new StatFs("/tmp");
     51 
     52     assertThat(statsFs.getBlockCountLong()).isEqualTo(100L);
     53     assertThat(statsFs.getFreeBlocksLong()).isEqualTo(20L);
     54     assertThat(statsFs.getFreeBytes()).isEqualTo(20L * ShadowStatFs.BLOCK_SIZE);
     55     assertThat(statsFs.getAvailableBlocksLong()).isEqualTo(10L);
     56     assertThat(statsFs.getAvailableBytes()).isEqualTo(10L * ShadowStatFs.BLOCK_SIZE);
     57     assertThat(statsFs.getBlockSizeLong()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
     58   }
     59 
     60   @Test
     61   @Config(minSdk = JELLY_BEAN_MR2)
     62   public void withApi18_shouldRegisterStatsWithFile() {
     63     ShadowStatFs.registerStats(new File("/tmp"), 100, 20, 10);
     64     StatFs statsFs = new StatFs(new File("/tmp").getAbsolutePath());
     65 
     66     assertThat(statsFs.getBlockCountLong()).isEqualTo(100L);
     67     assertThat(statsFs.getFreeBlocksLong()).isEqualTo(20L);
     68     assertThat(statsFs.getFreeBytes()).isEqualTo(20L * ShadowStatFs.BLOCK_SIZE);
     69     assertThat(statsFs.getAvailableBlocksLong()).isEqualTo(10L);
     70     assertThat(statsFs.getAvailableBytes()).isEqualTo(10L * ShadowStatFs.BLOCK_SIZE);
     71     assertThat(statsFs.getBlockSizeLong()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
     72   }
     73 
     74   @Test
     75   @Config(minSdk = JELLY_BEAN_MR2)
     76   public void withApi18_shouldResetStateBetweenTests() {
     77     StatFs statsFs = new StatFs("/tmp");
     78     assertThat(statsFs.getBlockCountLong()).isEqualTo(0L);
     79     assertThat(statsFs.getFreeBlocksLong()).isEqualTo(0L);
     80     assertThat(statsFs.getFreeBytes()).isEqualTo(0L);
     81     assertThat(statsFs.getAvailableBlocksLong()).isEqualTo(0L);
     82     assertThat(statsFs.getAvailableBytes()).isEqualTo(0L);
     83     assertThat(statsFs.getBlockSizeLong()).isEqualTo(ShadowStatFs.BLOCK_SIZE);
     84   }
     85 
     86   @Test
     87   public void shouldRestat() throws Exception {
     88     ShadowStatFs.registerStats("/tmp", 100, 20, 10);
     89     StatFs statsFs = new StatFs("/tmp");
     90 
     91     assertThat(statsFs.getBlockCount()).isEqualTo(100);
     92     assertThat(statsFs.getFreeBlocks()).isEqualTo(20);
     93     assertThat(statsFs.getAvailableBlocks()).isEqualTo(10);
     94 
     95     ShadowStatFs.registerStats("/tmp", 3, 2, 1);
     96 
     97     statsFs.restat("/tmp");
     98     assertThat(statsFs.getBlockCount()).isEqualTo(3);
     99     assertThat(statsFs.getFreeBlocks()).isEqualTo(2);
    100     assertThat(statsFs.getAvailableBlocks()).isEqualTo(1);
    101   }
    102 
    103   @Test
    104   @Config(minSdk = JELLY_BEAN_MR2)
    105   public void withApi18_shouldRestat() throws Exception {
    106     ShadowStatFs.registerStats("/tmp", 100, 20, 10);
    107     StatFs statsFs = new StatFs("/tmp");
    108 
    109     assertThat(statsFs.getBlockCountLong()).isEqualTo(100L);
    110     assertThat(statsFs.getFreeBlocksLong()).isEqualTo(20L);
    111     assertThat(statsFs.getFreeBytes()).isEqualTo(20L * ShadowStatFs.BLOCK_SIZE);
    112     assertThat(statsFs.getAvailableBlocksLong()).isEqualTo(10L);
    113     assertThat(statsFs.getAvailableBytes()).isEqualTo(10L * ShadowStatFs.BLOCK_SIZE);
    114 
    115     ShadowStatFs.registerStats("/tmp", 3, 2, 1);
    116 
    117     statsFs.restat("/tmp");
    118     assertThat(statsFs.getBlockCountLong()).isEqualTo(3L);
    119     assertThat(statsFs.getFreeBlocksLong()).isEqualTo(2L);
    120     assertThat(statsFs.getFreeBytes()).isEqualTo(2L * ShadowStatFs.BLOCK_SIZE);
    121     assertThat(statsFs.getAvailableBlocksLong()).isEqualTo(1L);
    122     assertThat(statsFs.getAvailableBytes()).isEqualTo(1L * ShadowStatFs.BLOCK_SIZE);
    123   }
    124 }
    125