package com.turhanoz.android.reactivedirectorychooser.model;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = "library/src/main/AndroidManifest.xml", emulateSdk = 18)
public class FileComparatorTest{
@Test
public void shouldProperlySortList() throws Exception {
ArrayList<File> files = new ArrayList<File>();
populateFile(files, "a");
populateFile(files, "i");
populateFile(files, "B");
populateFile(files, ".a");
Collections.shuffle(files);
Collections.sort(files, new FileComparator());
assertThat(files.get(0).getAbsolutePath(), is(".a"));
assertThat(files.get(1).getAbsolutePath(), is("B"));
assertThat(files.get(2).getAbsolutePath(), is("a"));
assertThat(files.get(3).getAbsolutePath(), is("i"));
}
private void populateFile(ArrayList<File> files, String absolutePath) {
File stubFile = mock(File.class);
when(stubFile.getAbsolutePath()).thenReturn(absolutePath);
files.add(stubFile);
}
}