TestCase and Mockobject for PHPPartitionScanner Junit testing.
authormusk <musk>
Mon, 28 Apr 2003 18:56:41 +0000 (18:56 +0000)
committermusk <musk>
Mon, 28 Apr 2003 18:56:41 +0000 (18:56 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/DummyDocument.java [new file with mode: 0644]
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/PHPPartitionScannerTest.java [new file with mode: 0644]

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 (file)
index 0000000..19ba311
--- /dev/null
@@ -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 (file)
index 0000000..5813d6e
--- /dev/null
@@ -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 =
+            "<?php\n"
+                + "$test = \"<?php this is a dummy 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 =
+            "<html><head><title>Some Text</title></head><body>"
+                + "<h1>Test</h1><p>Nothing particular</body></html>";
+        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 = "<?php $test=\"Some data\";";
+        String text2 =
+            "/** A comment with some data \n"
+                + " * @param test A test parameter \n"
+                + " */";
+        String text3 =
+            "\nfunction test($test)\n"
+                + "{\n"
+                + "    echo \"Test <?php ?>\";\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());
+    }
+}