package no.met.metadataeditor.widget; import static org.hamcrest.Matchers.startsWith; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import java.util.ArrayList; import java.util.List; import no.met.metadataeditor.dataTypes.EditorVariableContent; import no.met.metadataeditor.dataTypes.attributes.StringAttribute; import org.junit.Test; public class MetnoDatasetIdentifierWidgetTest { @Test public void testEmptyWidgetValue() { List<EditorVariableContent> evcl = createVariableContent(""); EditorWidget widget = createWidget(); widget.generateWidgetViews(evcl); List<EditorVariableContent> content = widget.getContent(); assertEquals(1, content.size()); assertEquals("",content.get(0).getAttrs().getAttribute("str")); } @Test public void testNewWidgetValue() { List<EditorVariableContent> evcl = createVariableContent("hirlam-8km"); EditorWidget widget = createWidget(); widget.generateWidgetViews(evcl); List<EditorVariableContent> content = widget.getContent(); assertEquals(1, content.size()); assertThat(content.get(0).getAttrs().getAttribute("str"),startsWith("hirlam-8km-a-")); } @Test public void testOldValueValue() { List<EditorVariableContent> evcl = createVariableContent("hirlam-8km-a-mk8c77a"); EditorWidget widget = createWidget(); widget.generateWidgetViews(evcl); List<EditorVariableContent> content = widget.getContent(); assertEquals(1, content.size()); assertEquals("hirlam-8km-a-mk8c77a",content.get(0).getAttrs().getAttribute("str")); } private MetnoDatasetIdentifierWidget createWidget(){ MetnoDatasetIdentifierWidget widget = new MetnoDatasetIdentifierWidget("a"); widget.setVariableName("test-now-date"); widget.setMinOccurs(1); widget.setMaxOccurs(1); widget.setAttributeClass(StringAttribute.class); return widget; } private List<EditorVariableContent> createVariableContent(String value){ List<EditorVariableContent> evcl = new ArrayList<>(); EditorVariableContent evc = new EditorVariableContent(); StringAttribute sa = new StringAttribute(); sa.addAttribute("str", value); evc.setAttrs(sa); evcl.add(evc); return evcl; } }