package no.met.metadataeditor.widget;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import no.met.metadataeditor.InvalidEditorConfigurationException;
import no.met.metadataeditor.dataTypes.EditorVariable;
import no.met.metadataeditor.dataTypes.EditorVariableContent;
import no.met.metadataeditor.dataTypes.attributes.ListElementAttribute;
import no.met.metadataeditor.dataTypes.attributes.StringAttribute;
import org.junit.Test;
public class AutoUUIDWidgetTest {
@Test
public void testUUIDGeneration() {
List<EditorVariableContent> evcl = new ArrayList<>();
EditorWidget widget = new AutoUUIDWidget();
widget.setVariableName("test-uuid");
widget.setMinOccurs(1);
widget.setMaxOccurs(1);
widget.setAttributeClass(StringAttribute.class);
widget.generateWidgetViews(evcl);
List<EditorVariableContent> content = widget.getContent();
assertEquals(1, content.size());
// will throw exception of it does not work
UUID.fromString(content.get(0).getAttrs().getAttribute("str"));
}
@Test
public void testValidConfig() {
EditorVariable ev = new EditorVariable(new StringAttribute());
ev.setMaxOccurs(1);
ev.setMinOccurs(1);
EditorWidget widget = new AutoUUIDWidget();
assertTrue(widget.configure(ev));
}
@Test(expected=InvalidEditorConfigurationException.class)
public void testInvalidMinOccursConfig () {
EditorVariable ev = new EditorVariable(new StringAttribute());
ev.setMaxOccurs(1);
ev.setMinOccurs(0);
EditorWidget widget = new AutoUUIDWidget();
widget.configure(ev);
}
@Test(expected=InvalidEditorConfigurationException.class)
public void testInvalidMaxOccursConfig () {
EditorVariable ev = new EditorVariable(new StringAttribute());
ev.setMaxOccurs(2);
ev.setMinOccurs(1);
EditorWidget widget = new AutoUUIDWidget();
widget.configure(ev);
}
@Test(expected=InvalidEditorConfigurationException.class)
public void testInvalidDataAttributeConfig () {
EditorVariable ev = new EditorVariable(new ListElementAttribute());
ev.setMaxOccurs(1);
ev.setMinOccurs(1);
EditorWidget widget = new AutoUUIDWidget();
widget.configure(ev);
}
}