package org.robotframework.swing.chooser; import java.awt.Component; import jdave.Specification; import jdave.junit4.JDaveRunner; import org.jmock.Expectations; import org.junit.runner.RunWith; @RunWith(JDaveRunner.class) public class ByNameComponentChooserSpec extends Specification<ByNameComponentChooser> { private String componentName = "someComponent"; private ByNameComponentChooser byNameComponentChooser; public void create() { byNameComponentChooser = new ByNameComponentChooser(componentName); } public class WithDescription { public ByNameComponentChooser create() { return byNameComponentChooser; } public void usesNameAsDescription() { specify(context.getDescription(), must.equal(componentName)); } } public class WhenChoosing { private Component component; public ByNameComponentChooser create() { component = mock(Component.class); return byNameComponentChooser; } public void choosesIfNameMatches() { checking(new Expectations() {{ one(component).getName(); will(returnValue(componentName)); }}); specify(context.checkComponent(component), must.equal(true)); } public void doesntChooseIfNameDoesntMatch() { checking(new Expectations() {{ one(component).getName(); will(returnValue("somethingElse")); }}); specify(context.checkComponent(component), must.equal(false)); } public void doesntChooseIfNameIsNull() { checking(new Expectations() {{ one(component).getName(); will(returnValue(null)); }}); specify(context.checkComponent(component), must.equal(false)); } } }