blob: ed52a1b4c458a2465a12a4b22399f3793020d5dc [file] [log] [blame]
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);
}
}