]> source.dussan.org Git - poi.git/commitdiff
fixed mistake in FuncPtg.clone(), added test case, cleaned up outdated (since bug...
authorJosh Micich <josh@apache.org>
Thu, 8 May 2008 23:02:43 +0000 (23:02 +0000)
committerJosh Micich <josh@apache.org>
Thu, 8 May 2008 23:02:43 +0000 (23:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@654649 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/formula/FuncPtg.java
src/testcases/org/apache/poi/hssf/record/formula/TestFuncPtg.java

index 7901fb675d30aaf91eaf3c349b576882e9f3bcb4..2585bd764f90219b69bde80c2e07fe8afbe64429 100644 (file)
@@ -75,11 +75,9 @@ public final class FuncPtg extends AbstractFunctionPtg {
     }
 
     public Object clone() {
-      FuncPtg ptg = new FuncPtg();
-      //ptg.field_1_num_args = field_1_num_args;
-      ptg.field_2_fnc_index = field_2_fnc_index;
-      ptg.setClass(ptgClass);
-     return ptg;
+        FuncPtg ptg = new FuncPtg(field_2_fnc_index);
+        ptg.setClass(ptgClass);
+        return ptg;
     }
 
     public int getSize() {
index fd2b1cd12425e2eaa33f6261b0defa2d45da4caa..89997b59d1a98af2ab2ef6d089c014a55894675d 100644 (file)
@@ -1,4 +1,3 @@
-        
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -26,45 +25,31 @@ import org.apache.poi.hssf.record.TestcaseRecordInputStream;
  *
  * @author Danny Mui (dmui at apache dot org)
  */
+public final class TestFuncPtg extends TestCase {
 
-public class TestFuncPtg extends TestCase
-{
-
-    public TestFuncPtg( String name )
-    {
-        super( name );
-    }
-
-
-    public static void main( java.lang.String[] args )
-    {
-        junit.textui.TestRunner.run( TestFuncPtg.class );
-    }
-
-    /**
-     * Make sure the left overs are re-serialized on excel file reads to avoid
-     * the "Warning: Data may have been lost" prompt in excel.
-     * <p/>
-     * This ptg represents a LEN function extracted from excel
-     */
-
-    public void testLeftOvers()
-    {
-        byte[] fakeData = new byte[4];
-
-        //fakeData[0] = (byte) 0x41;
-        fakeData[0] = (byte) 0x20;  //function index
-        fakeData[1] = (byte) 0;
-        fakeData[2] = (byte) 8;
+    public void testRead() {
+       // This ptg represents a LEN function extracted from excel
+        byte[] fakeData = {
+            0x20,  //function index
+            0,
+        };
 
         FuncPtg ptg = new FuncPtg( new TestcaseRecordInputStream((short)0, (short)fakeData.length, fakeData) );
-        assertEquals( "Len formula index is not 32(20H)", (int) 0x20, ptg.getFunctionIndex() );
+        assertEquals( "Len formula index is not 32(20H)", 0x20, ptg.getFunctionIndex() );
         assertEquals( "Number of operands in the len formula", 1, ptg.getNumberOfOperands() );
         assertEquals( "Function Name", "LEN", ptg.getName() );
         assertEquals( "Ptg Size", 3, ptg.getSize() );
-        //assertEquals("first leftover byte is not 0", (byte)0, ptg.leftOvers[0]);
-        //assertEquals("second leftover byte is not 8", (byte)8, ptg.leftOvers[1]);
-
+    }
+    
+    public void testClone() {
+        FuncPtg funcPtg = new FuncPtg(27); // ROUND() - takes 2 args
+
+        FuncPtg clone = (FuncPtg) funcPtg.clone();
+        if (clone.getNumberOfOperands() == 0) {
+            fail("clone() did copy field numberOfOperands");
+        }
+        assertEquals(2, clone.getNumberOfOperands());
+        assertEquals("ROUND", clone.getName());
     }
 }