package org.robolectric.internal;
import org.junit.Before;
import org.junit.Test;
import org.robolectric.annotation.Config;
import org.robolectric.res.FileFsFile;
import org.robolectric.res.FsFile;
import static org.assertj.core.api.Assertions.assertThat;
public class MavenManifestFactoryTest {
private Config.Builder configBuilder;
private MyMavenManifestFactory myMavenManifestFactory;
@Before
public void setUp() throws Exception {
configBuilder = Config.Builder.defaults();
myMavenManifestFactory = new MyMavenManifestFactory();
}
@Test public void identify() throws Exception {
ManifestIdentifier manifestIdentifier = myMavenManifestFactory.identify(configBuilder.build());
assertThat(manifestIdentifier.getManifestFile())
.isEqualTo(FileFsFile.from(":fakefs:path/to/AndroidManifest.xml"));
assertThat(manifestIdentifier.getResDir())
.isEqualTo(FileFsFile.from(":fakefs:path/to/res"));
}
@Test public void withDotSlashManifest_identify() throws Exception {
configBuilder.setManifest("./AndroidManifest.xml");
ManifestIdentifier manifestIdentifier = myMavenManifestFactory.identify(configBuilder.build());
assertThat(manifestIdentifier.getManifestFile())
.isEqualTo(FileFsFile.from(":fakefs:path/to/AndroidManifest.xml"));
assertThat(manifestIdentifier.getResDir())
.isEqualTo(FileFsFile.from(":fakefs:path/to/res"));
}
@Test public void withDotDotSlashManifest_identify() throws Exception {
configBuilder.setManifest("../AndroidManifest.xml");
ManifestIdentifier manifestIdentifier = myMavenManifestFactory.identify(configBuilder.build());
assertThat(manifestIdentifier.getManifestFile())
.isEqualTo(FileFsFile.from(":fakefs:path/to/../AndroidManifest.xml"));
assertThat(manifestIdentifier.getResDir())
.isEqualTo(FileFsFile.from(":fakefs:path/to/../res"));
}
private static class MyMavenManifestFactory extends MavenManifestFactory {
@Override
FsFile getBaseDir() {
return FileFsFile.from(":fakefs:path/to");
}
}
}