package org.apache.isis.core.metamodel.facets.properties.promptstyle; import org.jmock.Expectations; import org.jmock.auto.Mock; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.apache.isis.applib.annotation.PromptStyle; import org.apache.isis.core.commons.config.IsisConfiguration; import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleConfiguration; import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2; import static org.hamcrest.CoreMatchers.is; public class PromptStyleConfiguration_Test { @Rule public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES); @Mock IsisConfiguration mockIsisConfiguration; @Test public void when_none() throws Exception { context.checking(new Expectations() {{ oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle"); will(returnValue(null)); }}); PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration); Assert.assertThat(editStyle, is(PromptStyle.INLINE)); } @Test public void when_inline() throws Exception { context.checking(new Expectations() {{ oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle"); will(returnValue("inline")); }}); PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration); Assert.assertThat(editStyle, is(PromptStyle.INLINE)); } @Test public void when_inline_mixed_case_and_superfluous_characters() throws Exception { context.checking(new Expectations() {{ oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle"); will(returnValue(" inLIne ")); }}); PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration); Assert.assertThat(editStyle, is(PromptStyle.INLINE)); } @Test public void when_dialog() throws Exception { context.checking(new Expectations() {{ oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle"); will(returnValue("dialog")); }}); PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration); Assert.assertThat(editStyle, is(PromptStyle.DIALOG)); } @Test public void when_invalid() throws Exception { context.checking(new Expectations() {{ oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle"); will(returnValue("garbage")); }}); PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration); Assert.assertThat(editStyle, is(PromptStyle.INLINE)); } }