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 no.met.metadataeditor.InvalidEditorConfigurationException; import no.met.metadataeditor.dataTypes.EditorVariable; import no.met.metadataeditor.dataTypes.EditorVariableContent; import no.met.metadataeditor.dataTypes.attributes.DateAttribute; import no.met.metadataeditor.dataTypes.attributes.ListElementAttribute; import org.junit.Test; public class NowDateWidgetTest { @Test public void testMissingNowDateGeneration() { List<EditorVariableContent> evcl = new ArrayList<>(); EditorWidget widget = new NowDateWidget(); widget.setVariableName("test-now-date"); widget.setMinOccurs(1); widget.setMaxOccurs(1); widget.setAttributeClass(DateAttribute.class); widget.generateWidgetViews(evcl); List<EditorVariableContent> content = widget.getContent(); assertEquals(1, content.size()); assertEquals(NowDateWidget.nowTimeStamp(),content.get(0).getAttrs().getAttribute("date")); } @Test public void testNewNowDateGeneration() { List<EditorVariableContent> evcl = new ArrayList<>(); EditorVariableContent evc = new EditorVariableContent(); DateAttribute da = new DateAttribute(); da.addAttribute("date", "2010-01-01"); evc.setAttrs(da); evcl.add(evc); EditorWidget widget = new NowDateWidget(); widget.setVariableName("test-now-date"); widget.setMinOccurs(1); widget.setMaxOccurs(1); widget.setAttributeClass(DateAttribute.class); widget.generateWidgetViews(evcl); List<EditorVariableContent> content = widget.getContent(); assertEquals(1, content.size()); // NowDateWidget will generate a new date instead of taking the one from editorvariablecontent. assertEquals(NowDateWidget.nowTimeStamp(),content.get(0).getAttrs().getAttribute("date")); } @Test public void testValidConfig() { EditorVariable ev = new EditorVariable(new DateAttribute()); ev.setMaxOccurs(1); ev.setMinOccurs(1); EditorWidget widget = new NowDateWidget(); assertTrue(widget.configure(ev)); } @Test(expected=InvalidEditorConfigurationException.class) public void testInvalidMinOccursConfig () { EditorVariable ev = new EditorVariable(new DateAttribute()); ev.setMaxOccurs(1); ev.setMinOccurs(0); EditorWidget widget = new NowDateWidget(); widget.configure(ev); } @Test(expected=InvalidEditorConfigurationException.class) public void testInvalidMaxOccursConfig () { EditorVariable ev = new EditorVariable(new DateAttribute()); ev.setMaxOccurs(2); ev.setMinOccurs(1); EditorWidget widget = new NowDateWidget(); 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 NowDateWidget(); widget.configure(ev); } }