/** * Copyright 2010 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.eclipse.editors.completion; import org.eclipse.jdt.core.Signature; import junit.framework.TestCase; public class CompletionUtilTest extends TestCase { public void testIsGetter() { assertTrue( CompletionUtil.isGetter( "getThis", 0, "String" ) ); } public void testIsGetterCannotReturnVoid() { assertFalse( CompletionUtil.isGetter( "getThis", 0, Signature.SIG_VOID ) ); } public void testIsGetterWrongPrefix() { assertFalse( CompletionUtil.isGetter( "hasThis", 0, Signature.SIG_VOID ) ); } public void testIsGetterTooManyArgs() { assertFalse( CompletionUtil.isGetter( "getThis", 2, "String" ) ); } public void testIsGetterMethodNameTooShort() { assertFalse( CompletionUtil.isGetter( "get", 2, "String" ) ); } public void testIsIsGetter() { assertTrue( CompletionUtil.isIsGetter( "isGood", 0, Signature.SIG_BOOLEAN ) ); } public void testIsIsGetterWrongPrefix() { assertFalse( CompletionUtil.isIsGetter( "getThis", 0, Signature.SIG_BOOLEAN ) ); } public void testIsIsGetterAlwaysReturnsBoolean() { assertFalse( CompletionUtil.isIsGetter( "isThis", 0, Signature.SIG_VOID ) ); } public void testIsIsGetterTooManyArgs() { assertFalse( CompletionUtil.isIsGetter( "isThis", 2, "String" ) ); } public void testIsIsGetterMethodNameTooShort() { assertFalse( CompletionUtil.isIsGetter( "is", 2, "String" ) ); } public void testIsSetter() { assertTrue( CompletionUtil.isSetter( "setThat", 1, Signature.SIG_VOID ) ); } public void testIsSetterWrongPrefix() { assertFalse( CompletionUtil.isSetter( "getThat", 1, Signature.SIG_VOID ) ); } public void testIsSetterTooShort() { assertFalse( CompletionUtil.isSetter( "se", 1, Signature.SIG_VOID ) ); } public void testIsSetterNoArgs() { assertFalse( CompletionUtil.isSetter( "setThat", 0, Signature.SIG_VOID ) ); } public void testIsSetterWrongType() { assertFalse( CompletionUtil.isSetter( "setThat", 1, "String" ) ); } public void testGetPropertyName() { assertEquals( "me", CompletionUtil.getPropertyName( "getMe", 0, "String" ) ); assertEquals( "me", CompletionUtil.getPropertyName( "isMe", 0, Signature.SIG_BOOLEAN ) ); assertEquals( "me", CompletionUtil.getPropertyName( "setMe", 1, Signature.SIG_VOID ) ); assertEquals( "setMe", CompletionUtil.getPropertyName( "setMe", 0, Signature.SIG_VOID ) ); assertEquals( "MySuperMethod", CompletionUtil.getPropertyName( "MySuperMethod", 1, Signature.SIG_VOID ) ); } public void testGetPropertyNameStripsParenthesis() { assertEquals( "MySuperMethod()", CompletionUtil.getPropertyName( "MySuperMethod()", 1, Signature.SIG_VOID ) ); assertEquals( "me", CompletionUtil.getPropertyName( "getMe()", 0, "String" ) ); assertEquals( "me", CompletionUtil.getPropertyName( "isMe()", 0, Signature.SIG_BOOLEAN ) ); assertEquals( "me", CompletionUtil.getPropertyName( "setMe()", 1, Signature.SIG_VOID ) ); } public void testStripLastWord() { String backtext = "rule \"GoodBye\"\r\n" + " no-loop true\r\n" + " when\r\n" + " m : Message( status == Message.GOODBYE, message : message )\r\n" + " then\r\n" + " m.message=message;\r\n" + " m.last"; String lastword = "last"; assertEquals( lastword, CompletionUtil.stripLastWord( backtext ) ); } public void testGetPreviousExpression1() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d';"; String previous = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d';"; assertEquals( previous, CompletionUtil.getPreviousExpression( backText ) ); } public void testGetPreviousExpression2() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " message== "; String previous = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;"; assertEquals( previous, CompletionUtil.getPreviousExpression( backText ) ); } public void testGetPreviousExpression3() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " message(sdasdasd, "; String previous = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;"; assertEquals( previous, CompletionUtil.getPreviousExpression( backText ) ); } public void testGetPreviousExpression4() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " message( "; String previous = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;"; assertEquals( previous, CompletionUtil.getPreviousExpression( backText ) ); } public void testGetPreviousExpression5() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " this.asd "; String previous = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;"; assertEquals( previous, CompletionUtil.getPreviousExpression( backText ) ); } public void testGetPreviousExpression6() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " message(){ "; String previous = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;"; assertEquals( previous, CompletionUtil.getPreviousExpression( backText ) ); } public void testGetPreviousExpression7() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d';message== "; String previous = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d';"; assertEquals( previous, CompletionUtil.getPreviousExpression( backText ) ); } public void testGetLastExpression11() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d'"; String previous = "\r\n" + " adasd ='d'"; assertEquals( previous, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression1() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d';"; String previous = "\r\n adasd ='d'"; assertEquals( previous, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression10() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d';\r\n"; assertEquals( backText, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression2() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " message== "; String previous = "\r\n message== "; assertEquals( previous, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression3() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " message(sdasdasd, "; String previous = "\r\n message(sdasdasd, "; assertEquals( previous, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression4() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " message( "; String previous = "\r\n message( "; assertEquals( previous, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression5() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " this.asd "; String previous = "\r\n this.asd "; assertEquals( previous, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression6() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " message(){ "; String previous = "\r\n message(){ "; assertEquals( previous, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression7() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d';message== "; String previous = "message== "; assertEquals( previous, CompletionUtil.getLastExpression( backText ) ); } public void testGetInnerExpression() { String backText = " \r\n" + " System.out.println( message );\r\n" + " m.message = \"Goodbyte cruel world\";\r\n" + " m.status = 1;\r\n" + " adasd ='d';message== "; String previous = ""; assertEquals( previous, CompletionUtil.getInnerExpression( backText ) ); } public void testGetInnerExpression2() { String backText = "System.out.println(m "; String previous = "m"; assertEquals( previous, CompletionUtil.getInnerExpression( backText ) ); } public void testGetInnerExpression3() { String backText = "update(m) {"; String previous = ""; assertEquals( previous, CompletionUtil.getInnerExpression( backText ) ); } public void testGetInnerExpression4() { String backText = "update(m) {some="; String previous = ""; assertEquals( previous, CompletionUtil.getInnerExpression( backText ) ); } public void testGetInnerExpression5() { String backText = "update(m) {asdasdas==asdasd, asdasd"; String previous = "asdasd"; assertEquals( previous, CompletionUtil.getInnerExpression( backText ) ); } public void testGetInnerExpression6() { String backText = "update(m) {asdasdas==asdasd, asdasd}"; String previous = ""; assertEquals( previous, CompletionUtil.getInnerExpression( backText ) ); } public void testGetLastExpression_withComments() { String backText = "dasdasdas\nsasasasa\n //fsdfsdfdsfdsf\n\n"; String exp = "dasdasdas\n" + "sasasasa\n" + " //fsdfsdfdsfdsf\n" + "\n"; assertEquals( exp, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression_withComments2() { String backText = "dasdasdas\nsasasasa\n //fsdfsdfdsfdsf\n"; String exp = "dasdasdas\n" + "sasasasa\n" + " //fsdfsdfdsfdsf\n" ; assertEquals( exp, CompletionUtil.getLastExpression( backText ) ); } public void testGetLastExpression_withComments3() { String backText = "dasdasdas\nsasasasa\n //fsdfsdfdsfdsf\n"; String exp = "dasdasdas\n" + "sasasasa\n" + " //fsdfsdfdsfdsf\n" ; assertEquals( exp, CompletionUtil.getLastExpression( backText ) ); } public void testGetTextWithoutPrefix() { String text = "modify(m) {asdasdas==asdasd, asdasd.asa"; String expected = "modify(m) {asdasdas==asdasd, asdasd."; assertEquals( expected, CompletionUtil.getTextWithoutPrefix( text, "asa" ) ); } public void testGetTextWithoutPrefix2() { String text = "it"; String expected = ""; assertEquals( expected, CompletionUtil.getTextWithoutPrefix( text, text ) ); } }