/**
* This file is part of Graylog.
*
* Graylog is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Graylog is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Graylog. If not, see <http://www.gnu.org/licenses/>.
*/
package org.graylog2.plugin.configuration.fields;
import com.google.common.collect.ImmutableList;
import org.junit.Test;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
public class ListFieldTest {
@Test
public void testGetFieldType() throws Exception {
final ListField list = new ListField("list", "The List", Collections.emptyList(), "Hello, this is a list", ConfigurationField.Optional.NOT_OPTIONAL);
assertThat(list.getFieldType()).isEqualTo(ListField.FIELD_TYPE);
}
@Test
public void testGetDefaultValue() throws Exception {
final ListField list = new ListField("list", "The List", ImmutableList.of("Foo", "Bar", "Baz"), "Hello, this is a list", ConfigurationField.Optional.NOT_OPTIONAL);
final Object defaultValue = list.getDefaultValue();
assertThat(defaultValue instanceof List).isTrue();
final List<?> defaultValue1 = (List) defaultValue;
assertThat(defaultValue1.size()).isEqualTo(3);
assertThat((String) defaultValue1.get(0)).isEqualTo("Foo");
assertThat((String) defaultValue1.get(1)).isEqualTo("Bar");
assertThat((String) defaultValue1.get(2)).isEqualTo("Baz");
}
@Test
public void testSetDefaultValue() throws Exception {
final ListField list = new ListField("list", "The List", Collections.emptyList(), "Hello, this is a list", ConfigurationField.Optional.NOT_OPTIONAL);
final Object defaultValue1 = list.getDefaultValue();
assertThat(defaultValue1 instanceof List).isTrue();
assertThat(((List) defaultValue1).size()).isEqualTo(0);
list.setDefaultValue(ImmutableList.of("Foo", "Bar"));
final Object defaultValue2 = list.getDefaultValue();
assertThat(defaultValue2 instanceof List).isTrue();
assertThat(((List) defaultValue2).size()).isEqualTo(2);
list.setDefaultValue("Foo");
final Object defaultValue3 = list.getDefaultValue();
assertThat(defaultValue3 instanceof List).isTrue();
assertThat(((List) defaultValue3).size()).isEqualTo(2);
list.setDefaultValue(ImmutableList.of(3, "lol"));
final Object defaultValue4 = list.getDefaultValue();
assertThat(defaultValue4 instanceof List).isTrue();
final List defaultValue4List = (List) defaultValue4;
assertThat(defaultValue4List.size()).isEqualTo(1);
assertThat(defaultValue4List.get(0)).isEqualTo("lol");
}
@Test
public void testGetValues() throws Exception {
Map<String,String> values = new HashMap<>();
values.put("foo", "bar");
values.put("baz", "lol");
final ListField list = new ListField("list", "The List", Collections.emptyList(), values, "Hello, this is a list", ConfigurationField.Optional.NOT_OPTIONAL);
assertThat(list.getAdditionalInformation().get("values")).isEqualTo(values);
}
@Test
public void testGetAttributes() throws Exception {
final ListField list = new ListField("list", "The List", Collections.emptyList(), "Hello, this is a list", ConfigurationField.Optional.NOT_OPTIONAL);
assertThat(list.getAttributes().size()).isEqualTo(0);
final ListField list1 = new ListField("list", "The List", Collections.emptyList(), Collections.emptyMap(), "Hello, this is a list", ConfigurationField.Optional.NOT_OPTIONAL, ListField.Attribute.ALLOW_CREATE);
assertThat(list1.getAttributes().size()).isEqualTo(1);
assertThat(list1.getAttributes()).contains("allow_create");
}
}