From: musk Date: Mon, 28 Apr 2003 18:56:41 +0000 (+0000) Subject: TestCase and Mockobject for PHPPartitionScanner Junit testing. X-Git-Url: http://git.phpeclipse.com TestCase and Mockobject for PHPPartitionScanner Junit testing. --- diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/DummyDocument.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/DummyDocument.java new file mode 100644 index 0000000..19ba311 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/DummyDocument.java @@ -0,0 +1,391 @@ +/* + * Created on 28.04.2003 + * + */ +package net.sourceforge.phpeclipse.phpeditor.php.test; + +import org.eclipse.jface.text.*; + +/** + * Mockobject for Testing. + * + * @author Stefan Langer + * @version $Revision: 1.1 $ + */ +public class DummyDocument implements IDocument +{ + private char[] fTextBuffer; + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getChar(int) + */ + public char getChar(int offset) throws BadLocationException + { + if(offset >= 0 && offset < fTextBuffer.length) + return fTextBuffer[offset]; + else + throw new BadLocationException("Offset out of range!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLength() + */ + public int getLength() + { + return fTextBuffer.length; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#get() + */ + public String get() + { + return String.copyValueOf(fTextBuffer); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#get(int, int) + */ + public String get(int offset, int length) throws BadLocationException + { + if(offset >= 0 && (offset + length) < fTextBuffer.length) + return String.copyValueOf(fTextBuffer, offset, length); + else + throw new BadLocationException("Out of range!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#set(java.lang.String) + */ + public void set(String text) + { + fTextBuffer = text.toCharArray(); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#replace(int, int, java.lang.String) + */ + public void replace(int offset, int length, String text) + throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#addDocumentListener(org.eclipse.jface.text.IDocumentListener) + */ + public void addDocumentListener(IDocumentListener listener) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#removeDocumentListener(org.eclipse.jface.text.IDocumentListener) + */ + public void removeDocumentListener(IDocumentListener listener) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#addPrenotifiedDocumentListener(org.eclipse.jface.text.IDocumentListener) + */ + public void addPrenotifiedDocumentListener(IDocumentListener documentAdapter) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#removePrenotifiedDocumentListener(org.eclipse.jface.text.IDocumentListener) + */ + public void removePrenotifiedDocumentListener(IDocumentListener documentAdapter) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#addPositionCategory(java.lang.String) + */ + public void addPositionCategory(String category) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#removePositionCategory(java.lang.String) + */ + public void removePositionCategory(String category) + throws BadPositionCategoryException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getPositionCategories() + */ + public String[] getPositionCategories() + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#containsPositionCategory(java.lang.String) + */ + public boolean containsPositionCategory(String category) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#addPosition(org.eclipse.jface.text.Position) + */ + public void addPosition(Position position) throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#removePosition(org.eclipse.jface.text.Position) + */ + public void removePosition(Position position) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#addPosition(java.lang.String, org.eclipse.jface.text.Position) + */ + public void addPosition(String category, Position position) + throws BadLocationException, BadPositionCategoryException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#removePosition(java.lang.String, org.eclipse.jface.text.Position) + */ + public void removePosition(String category, Position position) + throws BadPositionCategoryException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getPositions(java.lang.String) + */ + public Position[] getPositions(String category) + throws BadPositionCategoryException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#containsPosition(java.lang.String, int, int) + */ + public boolean containsPosition(String category, int offset, int length) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#computeIndexInCategory(java.lang.String, int) + */ + public int computeIndexInCategory(String category, int offset) + throws BadLocationException, BadPositionCategoryException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#addPositionUpdater(org.eclipse.jface.text.IPositionUpdater) + */ + public void addPositionUpdater(IPositionUpdater updater) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#removePositionUpdater(org.eclipse.jface.text.IPositionUpdater) + */ + public void removePositionUpdater(IPositionUpdater updater) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#insertPositionUpdater(org.eclipse.jface.text.IPositionUpdater, int) + */ + public void insertPositionUpdater(IPositionUpdater updater, int index) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getPositionUpdaters() + */ + public IPositionUpdater[] getPositionUpdaters() + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLegalContentTypes() + */ + public String[] getLegalContentTypes() + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getContentType(int) + */ + public String getContentType(int offset) throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getPartition(int) + */ + public ITypedRegion getPartition(int offset) throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#computePartitioning(int, int) + */ + public ITypedRegion[] computePartitioning(int offset, int length) + throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#addDocumentPartitioningListener(org.eclipse.jface.text.IDocumentPartitioningListener) + */ + public void addDocumentPartitioningListener(IDocumentPartitioningListener listener) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#removeDocumentPartitioningListener(org.eclipse.jface.text.IDocumentPartitioningListener) + */ + public void removeDocumentPartitioningListener(IDocumentPartitioningListener listener) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#setDocumentPartitioner(org.eclipse.jface.text.IDocumentPartitioner) + */ + public void setDocumentPartitioner(IDocumentPartitioner partitioner) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getDocumentPartitioner() + */ + public IDocumentPartitioner getDocumentPartitioner() + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLineLength(int) + */ + public int getLineLength(int line) throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLineOfOffset(int) + */ + public int getLineOfOffset(int offset) throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLineOffset(int) + */ + public int getLineOffset(int line) throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLineInformation(int) + */ + public IRegion getLineInformation(int line) throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLineInformationOfOffset(int) + */ + public IRegion getLineInformationOfOffset(int offset) + throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getNumberOfLines() + */ + public int getNumberOfLines() + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getNumberOfLines(int, int) + */ + public int getNumberOfLines(int offset, int length) + throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#computeNumberOfLines(java.lang.String) + */ + public int computeNumberOfLines(String text) + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLegalLineDelimiters() + */ + public String[] getLegalLineDelimiters() + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#getLineDelimiter(int) + */ + public String getLineDelimiter(int line) throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.text.IDocument#search(int, java.lang.String, boolean, boolean, boolean) + */ + public int search( + int startOffset, + String findString, + boolean forwardSearch, + boolean caseSensitive, + boolean wholeWord) + throws BadLocationException + { + throw new UnsupportedOperationException("Not implemented!"); + } + +} diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/PHPPartitionScannerTest.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/PHPPartitionScannerTest.java new file mode 100644 index 0000000..5813d6e --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/PHPPartitionScannerTest.java @@ -0,0 +1,126 @@ +/* + * Created on 28.04.2003 + * + */ +package net.sourceforge.phpeclipse.phpeditor.php.test; + +import org.eclipse.jface.text.*; +import org.eclipse.jface.text.rules.*; + +import net.sourceforge.phpeclipse.phpeditor.php.*; +import junit.framework.*; + +/** + * Testcase for the PHPPartitionScanner + * @author Stefan Langer + * @version $Revision: 1.1 $ + */ +public class PHPPartitionScannerTest extends TestCase +{ + private PHPPartitionScanner fScanner; + private IDocument fDocument; + + /* (non-Javadoc) + * @see junit.framework.TestCase#setUp() + */ + protected void setUp() throws Exception + { + fScanner = new PHPPartitionScanner(); + fDocument = new DummyDocument(); + } + + public void testPHPPartition() + { + String text = + "\";\n" + + "function test()\n" + + "{echo 'Test!';}\n" + + "?>"; + fDocument.set(text); + fScanner.setRange(fDocument, 0, fDocument.getLength()); + IToken token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + fDocument.getLength(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals(0, fScanner.getTokenOffset()); + } + + public void testHTMLPartition() + { + String text = + "Some Text" + + "

Test

Nothing particular"; + fDocument.set(text); + fScanner.setRange(fDocument, 0, fDocument.getLength()); + IToken token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + IPHPPartitionScannerConstants.HTML, + (String) token.getData()); + junit.framework.Assert.assertEquals( + fDocument.getLength(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals(0, fScanner.getTokenOffset()); + } + + public void testPHPMultiLineCommentPartition() + { + String text = "\";\n" + + "}?>"; + fDocument.set(text + text2 + text3); + fScanner.setRange(fDocument, 0, fDocument.getLength()); + // first half of php + IToken token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition part 1 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition part 1 not correct!", + text.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition part 1 not correct!", + 0, + fScanner.getTokenOffset()); + // check for multiline + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Multiline not recognized!", + IPHPPartitionScannerConstants.PHP_MULTILINE_COMMENT, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Multinline not correct!", + text2.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Multiline not correct!", + text.length(), + fScanner.getTokenOffset()); + // rest of php + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition part 2 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition part 2 not correct!", + text3.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition part 2 not correct!", + text.length() + text2.length(), + fScanner.getTokenOffset()); + } +}