| package org.jetbrains.plugins.gradle.util; |
| |
| import com.intellij.testFramework.SkipInHeadlessEnvironment; |
| import org.jetbrains.plugins.gradle.ui.RichTextControlBuilder; |
| import org.jmock.Expectations; |
| import org.jmock.Mockery; |
| import org.jmock.integration.junit4.JMock; |
| import org.jmock.integration.junit4.JUnit4Mockery; |
| import org.jmock.lib.legacy.ClassImposteriser; |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| |
| import javax.swing.*; |
| |
| /** |
| * @author Denis Zhdanov |
| * @since 01/17/2012 |
| */ |
| @RunWith(JMock.class) |
| @SkipInHeadlessEnvironment |
| public class RichTextControlBuilderTest { |
| |
| private static final String META_KEY = "my-key"; |
| |
| private RichTextControlBuilder myBuilder; |
| private Mockery myMockery; |
| private RichTextControlBuilder.RichTextProcessor myProcessor; |
| |
| @Before |
| public void setUp() { |
| myBuilder = new RichTextControlBuilder(); |
| myMockery = new JUnit4Mockery() {{ |
| setImposteriser(ClassImposteriser.INSTANCE); |
| }}; |
| |
| myProcessor = myMockery.mock(RichTextControlBuilder.RichTextProcessor.class); |
| myMockery.checking(new Expectations() {{ |
| allowing(myProcessor).getKey(); will(returnValue(META_KEY)); |
| }}); |
| myBuilder.registerProcessor(myProcessor); |
| } |
| |
| @After |
| public void checkExpectations() { |
| myMockery.assertIsSatisfied(); |
| } |
| |
| @Test(expected = IllegalArgumentException.class) |
| public void invalidMetaKeyDefinition() { |
| myBuilder.setText("test {@ invalid-key data}"); |
| } |
| |
| @Test(expected = IllegalArgumentException.class) |
| public void noProcessorForMetaKey() { |
| myBuilder.setText("{@key data}"); |
| } |
| |
| @Test |
| public void completeMetaInfo() { |
| String text = String.format("this is a test text with two inline meta-datas: {@%s meta \t text} and {@%s}", META_KEY, META_KEY); |
| myMockery.checking(new Expectations() {{ |
| one(myProcessor).process("meta \t text"); will(returnValue(new JLabel(""))); |
| one(myProcessor).process(""); will(returnValue(new JLabel(""))); |
| }}); |
| myBuilder.setText(text); |
| } |
| } |