/*
* Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org
* Use is subject to license terms. See license.txt.
*/
package org.beanfabrics.swing;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import junit.framework.JUnit4TestAdapter;
import org.beanfabrics.ModelProvider;
import org.beanfabrics.Path;
import org.beanfabrics.model.AbstractPM;
import org.beanfabrics.model.IconTextPM;
import org.beanfabrics.model.PMManager;
import org.beanfabrics.model.TextPM;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;
/**
* @author Michael Karneim
* @author Marcel Eyke
*/
public class BnLabelTest {
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(BnLabelTest.class);
}
BnLabel lbl;
private static class RootModel extends AbstractPM {
AModel a = new AModel();
public RootModel() {
PMManager.setup(this);
}
}
private static class AModel extends AbstractPM {
BModel b = new BModel();
public AModel() {
PMManager.setup(this);
}
}
private static class BModel extends AbstractPM {
TextPM c = new TextPM();
public BModel() {
PMManager.setup(this);
}
}
RootModel root;
AModel a;
BModel b;
TextPM c;
public BnLabelTest() {
}
@Before
public void setUp()
throws Exception {
lbl = new BnLabel();
root = new RootModel();
a = root.a;
b = a.b;
c = b.c;
}
@AfterClass
public static void tearDownClass()
throws Exception {
}
@Test
public void create() {
assertNotNull(lbl);
}
@Test
public void bind() {
ModelProvider provider = new ModelProvider();
provider.setPresentationModel(root);
lbl.setPath(new Path("this.a.b.c"));
lbl.setModelProvider(provider);
assertEquals("lbl.isConnected()", true, lbl.isConnected());
assertEquals("lbl.getText()", "", lbl.getText());
c.setText("hello, world!");
assertEquals("lbl.getText()", "hello, world!", lbl.getText());
}
@Test
public void bind2() {
ModelProvider provider = new ModelProvider();
lbl.setPath(new Path("this.a.b.c"));
lbl.setModelProvider(provider);
provider.setPresentationModel(root);
assertEquals("lbl.isConnected()", true, lbl.isConnected());
assertEquals("lbl.getText()", "", lbl.getText());
c.setText("hello, world!");
assertEquals("lbl.getText()", "hello, world!", lbl.getText());
}
@Test
public void bind3() {
ModelProvider provider = new ModelProvider();
lbl.setModelProvider(provider);
provider.setPresentationModel(root);
lbl.setPath(new Path("this.a.b.c"));
assertEquals("lbl.isConnected()", true, lbl.isConnected());
assertEquals("lbl.getText()", "", lbl.getText());
c.setText("hello, world!");
assertEquals("lbl.getText()", "hello, world!", lbl.getText());
}
@Test
public void bind4() {
ModelProvider provider = new ModelProvider();
provider.setPresentationModel(root);
lbl.setPath(new Path("this.a.b.c"));
lbl.setModelProvider(provider);
assertEquals("lbl.isConnected()", true, lbl.isConnected());
assertEquals("lbl.getText()", "", lbl.getText());
c.setText("hello, world!");
assertEquals("lbl.getText()", "hello, world!", lbl.getText());
}
@Test
public void bind5() {
ModelProvider provider = new ModelProvider();
lbl.setPath(new Path("this.a.b.c"));
lbl.setModelProvider(provider);
provider.setPresentationModel(root);
assertEquals("lbl.isConnected()", true, lbl.isConnected());
assertEquals("lbl.getText()", "", lbl.getText());
c.setText("hello, world!");
assertEquals("lbl.getText()", "hello, world!", lbl.getText());
}
@Test
public void setPrsentationModel() {
BnLabel lbl = new BnLabel();
TextPM prop = new TextPM();
prop.setText("hello, world!");
assertEquals("lbl.isConnected()", false, lbl.isConnected());
assertEquals("lbl.getText()", "", lbl.getText());
lbl.setPresentationModel(prop);
assertEquals("lbl.isConnected()", true, lbl.isConnected());
assertEquals("lbl.getText()", "hello, world!", lbl.getText());
// connect with icon and text model
IconTextPM iconText = new IconTextPM();
iconText.setIconUrl(BnLabelTest.class.getResource("sample.gif"));
iconText.setText("hello, world!");
lbl.setPresentationModel(iconText);
assertEquals("lbl.isConnected()", true, lbl.isConnected());
assertEquals("lbl.getText()", "hello, world!", lbl.getText());
assertNotNull("lbl.getIcon()", lbl.getIcon());
// disconnect
lbl.setPresentationModel(null);
assertEquals("lbl.isConnected()", false, lbl.isConnected());
assertEquals("lbl.getText()", "", lbl.getText());
}
}