package org.rubypeople.rdt.refactoring.tests.core; import junit.framework.TestCase; import org.rubypeople.rdt.refactoring.core.IRefactoringConditionChecker; import org.rubypeople.rdt.refactoring.core.IRefactoringConfig; import org.rubypeople.rdt.refactoring.core.RefactoringConditionChecker; import org.rubypeople.rdt.refactoring.documentprovider.IDocumentProvider; import org.rubypeople.rdt.refactoring.documentprovider.StringDocumentProvider; public class TC_RefactoringConditionChecker extends TestCase { private final class TestConditionChecker extends RefactoringConditionChecker { private TestConditionChecker(final IDocumentProvider provider) { super(getDefaultConfig(provider)); } @Override public void init(IRefactoringConfig configObj) { } @Override protected void checkInitialConditions() { } } public void testSyntaxErrors() { RefactoringConditionChecker checker = new TestConditionChecker(new StringDocumentProvider("errorous_dummy_doc.rb", "class Test; en")); assertEquals(1, checker.getInitialMessages().get(IRefactoringConditionChecker.ERRORS).size()); assertEquals(0, checker.getInitialMessages().get(IRefactoringConditionChecker.WARNING).size()); } public void testSyntaxErrorsInIncludes() { StringDocumentProvider stringDocumentProvider = new StringDocumentProvider("dummy_doc_wit_errorous_include.rb", "class Test; end"); stringDocumentProvider.addFile("other", "class Test; en"); RefactoringConditionChecker checker = new TestConditionChecker(stringDocumentProvider); assertEquals(0, checker.getInitialMessages().get(IRefactoringConditionChecker.ERRORS).size()); assertEquals(0, checker.getInitialMessages().get(IRefactoringConditionChecker.WARNING).size()); assertEquals(0, checker.getFinalMessages().get(IRefactoringConditionChecker.ERRORS).size()); assertEquals(1, checker.getFinalMessages().get(IRefactoringConditionChecker.WARNING).size()); } private static IRefactoringConfig getDefaultConfig(final IDocumentProvider provider) { return new IRefactoringConfig() { public IDocumentProvider getDocumentProvider() { return provider; } public void setDocumentProvider(IDocumentProvider doc) { }}; } }