package org.vaadin.viritin.v7.fields;
import org.vaadin.viritin.v7.fields.CommaSeparatedCollectionField;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.junit.*;
public class CommaSeparatedCollectionFieldTest {
private CommaSeparatedCollectionField fieldUnderTest;
@Before
public void setUp() throws Exception {
fieldUnderTest = new CommaSeparatedCollectionField();
}
@Test
public void basicStringCollection() {
ArrayList<String> strings = new ArrayList<>(Arrays.asList("Foo", "Bar"));
fieldUnderTest.setValue(strings);
String textFieldPresentation = fieldUnderTest.textField.getValue();
assertEquals("Foo, Bar", textFieldPresentation);
// simulate user value change event
fieldUnderTest.textField.userValueChange = true;
fieldUnderTest.textField.setValue("Foo, Bar,Car");
fieldUnderTest.textField.userValueChange = false;
Collection value = fieldUnderTest.getValue();
assertEquals(3, value.size());
}
public static class Test1 {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "Test1{" + "value=" + value + '}';
}
public static Test1 valueOf(String str) {
Test1 test1 = new Test1();
test1.setValue(str);
return test1;
}
}
@Test
public void testWithValueOfFuction() {
ArrayList list = new ArrayList();
CommaSeparatedCollectionField field = new CommaSeparatedCollectionField();
field.setElementType(Test1.class);
field.setValue(list);
field.textField.userValueChange = true;
field.textField.setValue("Foo");
field.textField.userValueChange = false;
Test1 get = (Test1) list.get(0);
assertEquals("Foo", get.getValue());
field.textField.userValueChange = true;
field.textField.setValue("Foo, bar");
field.textField.userValueChange = false;
get = (Test1) list.get(1);
assertEquals("bar", get.getValue());
list.clear();
list.add(16);
field.setElementType(Integer.class);
field.setValue(null);
field.setValue(list);
assertEquals("16", field.textField.getValue());
field.textField.userValueChange = true;
field.textField.setValue("2, 1");
field.textField.userValueChange = false;
Integer int1 = (Integer) list.get(1);
assertEquals(Integer.valueOf(1), int1);
}
public static class Test2 {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "Test1{" + "value=" + value + '}';
}
public Test2(String value) {
this.value = value;
}
}
@Test
public void testWithConstructor() {
ArrayList list = new ArrayList();
CommaSeparatedCollectionField field = new CommaSeparatedCollectionField();
field.setElementType(Test2.class);
field.setValue(list);
field.textField.userValueChange = true;
field.textField.setValue("Foo");
field.textField.userValueChange = false;
Test2 get = (Test2) list.get(0);
assertEquals("Foo", get.getValue());
field.textField.userValueChange = true;
field.textField.setValue("Foo, bar");
field.textField.userValueChange = false;
get = (Test2) list.get(1);
assertEquals("bar", get.getValue());
}
}