package com.github.dreamhead.moco.parser;
import com.github.dreamhead.moco.parser.model.GlobalSetting;
import com.google.common.collect.ImmutableList;
import org.junit.Before;
import org.junit.Test;
import java.io.InputStream;
import static com.github.dreamhead.moco.util.Files.join;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class GlobalSettingParserTest {
private GlobalSettingParser parser;
@Before
public void setUp() throws Exception {
parser = new GlobalSettingParser();
}
@Test
public void should_parse_settings_file() {
InputStream stream = getResourceAsStream("settings/settings.json");
ImmutableList<GlobalSetting> globalSettings = parser.parse(stream);
assertThat(globalSettings.get(0).getInclude(), is(join("src", "test", "resources", "settings", "foo.json")));
assertThat(globalSettings.get(1).getInclude(), is(join("src", "test", "resources", "settings", "bar.json")));
}
@Test
public void should_parse_settings_file_with_context() {
InputStream stream = getResourceAsStream("settings/context-settingss.json");
ImmutableList<GlobalSetting> globalSettings = parser.parse(stream);
assertThat(globalSettings.get(0).getInclude(), is(join("src", "test", "resources", "settings", "foo.json")));
assertThat(globalSettings.get(0).getContext(), is("/foo"));
assertThat(globalSettings.get(1).getInclude(), is(join("src", "test", "resources", "settings", "bar.json")));
assertThat(globalSettings.get(1).getContext(), is("/bar"));
}
@Test
public void should_parse_setting_file_with_file_root() {
InputStream stream = getResourceAsStream("settings/fileroot-settings.json");
ImmutableList<GlobalSetting> globalSettings = parser.parse(stream);
assertThat(globalSettings.get(0).getInclude(), is(join("src", "test", "resources", "settings", "fileroot.json")));
assertThat(globalSettings.get(0).getContext(), is("/fileroot"));
assertThat(globalSettings.get(0).getFileRoot(), is("src/test/resources"));
}
@Test
public void should_parse_setting_file_with_env() {
InputStream stream = getResourceAsStream("settings/env-settings.json");
ImmutableList<GlobalSetting> globalSettings = parser.parse(stream);
assertThat(globalSettings.get(0).getInclude(), is(join("src", "test", "resources", "settings", "foo.json")));
assertThat(globalSettings.get(0).getContext(), is("/foo"));
assertThat(globalSettings.get(0).getEnv(), is("foo"));
assertThat(globalSettings.get(1).getInclude(), is(join("src", "test", "resources", "settings", "bar.json")));
assertThat(globalSettings.get(1).getContext(), is("/bar"));
assertThat(globalSettings.get(1).getEnv(), is("bar"));
}
private InputStream getResourceAsStream(final String filename) {
return GlobalSettingParserTest.class.getClassLoader().getResourceAsStream(filename);
}
}