package no.difi.datahotel.logic;
import no.difi.datahotel.BaseTest;
import no.difi.datahotel.model.Metadata;
import no.difi.datahotel.util.DatahotelException;
import org.junit.Before;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
public class DataBeanTest extends BaseTest {
private DataBean dataBean;
private Map<String, Metadata> directory;
private Metadata root;
private Metadata m1;
private Metadata m2;
@Before
public void before() throws Exception {
root = new Metadata();
directory = new HashMap<String, Metadata>();
directory.put("", root);
m1 = new Metadata();
m1.setLocation("difi");
m1.setActive(true);
m2 = new Metadata();
m2.setLocation("fad");
m2.setActive(true);
directory.put("difi", m1);
directory.put("fad", m2);
root.addChild(m1);
root.addChild(m2);
dataBean = new DataBean();
dataBean.setDirectory(directory);
}
@Test
public void testSimple() {
assertEquals(m2, dataBean.getChild("fad"));
assertEquals(2, dataBean.getChildren().size());
}
@Test
public void testSomeInactive() {
m2.setActive(false);
assertEquals(m2, dataBean.getChild("fad"));
assertEquals(1, dataBean.getChildren().size());
}
@Test
public void testAllInactive() {
m1.setActive(false);
m2.setActive(false);
assertEquals(m2, dataBean.getChild("fad"));
assertEquals(null, dataBean.getChildren());
}
@Test
public void testChildNotFound() {
DatahotelException exception;
exception = null;
try {
dataBean.getChild("smk");
} catch (DatahotelException e) {
exception = e;
}
assertNotNull(exception);
assertEquals(null, dataBean.getChildren("smk"));
}
@Test
public void testDataset() {
// No datasets
assertEquals(0, dataBean.getDatasets().size());
// One active dataset
m1.setDataset(true);
assertEquals(1, dataBean.getDatasets().size());
// One inactive dataset
m1.setActive(false);
assertEquals(0, dataBean.getDatasets().size());
// One inactive and one active
m2.setDataset(true);
assertEquals(1, dataBean.getDatasets().size());
// Two active dataset
m1.setActive(true);
assertEquals(2, dataBean.getDatasets().size());
}
}