It seems there could be just a common class for basic sanity checking.

On Tue, 2002-02-19 at 23:33, Glen Stampoultzis wrote:
> Sanity checker.  Yes I like it.  You apply that to each file and in addition
> do some testing of individual things you're more interested in.
> 
> -- Glen
> 
> 
> ----- Original Message -----
> From: "Andrew C. Oliver" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, February 20, 2002 2:53 PM
> Subject: Re: Re: cvs
> commit:jakarta-poi/src/java/org/apache/poi/hssf/usermodel/examplesCreateCell
> s.java CreateDateCells.java
> 
> 
> > I agree, it was basically a matter of I needed to know if the length
> > changed..  In earlier days this was actually *possible* without me being
> > aware of it.  I think all those problems are fixed.  The only issue is
> > what I really want is "load this up in excel and see if it doesn't
> > crash"...since that isn't feasible, maybe we should run through the
> > event based API and do some record checking?  I'd like to do some basic
> > sanity checking.  Maybe check that the first record is a BOF and so is
> > the last and maybe some counting of sheet records etc to ensure that the
> > file is "well formed" (no off by one error or any nastiness like
> > that)..  I think that would be more appropriate than the length yet
> > achieve what I was kinda-achieving by the length check.
> >
> > -Andy
> >
> > On Tue, 2002-02-19 at 22:37, Glen Stampoultzis wrote:
> > > Good question.  I'm not sure.  We already have unit tests that test the
> > > underlying framework (although these could be better).  Right now I'm
> just
> > > running the example and looking at the output.  Since the examples
> aren't
> > > likely to change (much) and the underlying framework has at least some
> level
> > > of tests I'm inclined to simply test manually once.  I am open to
> discussion
> > > on this however.
> > >
> > > While were on the subject I had another question regarding the some of
> the
> > > existing tests.  I noticed a common technique is to simply write out a
> file
> > > and check it's length.  This approach seems a little brittle to me but
> I'm
> > > not sure what the best thing to test for is.  The disadvantages I can
> see
> > > for the current technique are:
> > >
> > > * Brittle - The introduction of a new record could easily break numerous
> > > tests.
> > > * Incomplete - The test does nothing to check the contents of the file
> are
> > > what you expect.
> > > * Opaque - If you view the test as a form of documentation, as I tend
> to, it
> > > seems that we are not saying enough about what the expected result is.
> > >
> > > Testing for every record is simply not practical so that's probably out
> of
> > > the question.  But testing for certain records or for certain attributes
> > > seems as if it could provide some more concrete form of testing.    Any
> > > thoughts on this.  Am I barking up the wrong tree here?
> > >
> > > Regards,
> > >
> > > Glen Stampoultzis
> > > [EMAIL PROTECTED]
> > > +61 3 9753-6850  -   0402 835 458 (mob)
> > > ICQ: 62722370  AIM: FubbleWobble
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: "acoliver" <[EMAIL PROTECTED]>
> > > To: <[EMAIL PROTECTED]>
> > > Sent: Wednesday, February 20, 2002 10:05 AM
> > > Subject: Re: Re: cvs commit:
> > > jakarta-poi/src/java/org/apache/poi/hssf/usermodel/examples
> CreateCells.java
> > > CreateDateCells.java
> > >
> > >
> > > > Cool thanks!  Should we do unit tests for the examples?  (just curious
> > > what
> > > > you think).
> > > >
> > > > -Andy
> > > >
> > > > >On Wed, 20 Feb 2002 10:01:50  1100 "Glen Stampoultzis"
> > > > <[EMAIL PROTECTED]> wrote.
> > > > >I agree and will move it...
> > > > >
> > > > >The intend is to use these examples in the documentation I'm
> producing.
> > > > I'd
> > > > >rather have examples that compile and run against the actual source
> than
> > > > >just embedded into a text file with no verification that they
> actually
> > > work
> > > > >against the latest and greated source.
> > > > >
> > > > >-- Glen
> > > > >
> > > > >----- Original Message -----
> > > > >From: "acoliver" <[EMAIL PROTECTED]>
> > > > >To: <[EMAIL PROTECTED]>
> > > > >Sent: Wednesday, February 20, 2002 9:45 AM
> > > > >Subject: Re: cvs commit:
> > > > >jakarta-poi/src/java/org/apache/poi/hssf/usermodel/examples
> > > > CreateCells.java
> > > > >CreateDateCells.java
> > > > >
> > > > >
> > > > >> Oooh like the work, hate the location.  I don't want people to need
> to
> > > > >> deploy examples into production. .  please move this to
> > > > >>
> > > > >> jakarta-poi/examples/java.org....
> > > > >>
> > > > >> create new ant target "examples"
> > > > >>
> > > > >> (also compiled-only examples are practically useless anyhow)
> > > > >>
> > > > >> >On 19 Feb 2002 22:42:15 -0000 [EMAIL PROTECTED] wrote.
> > > > >> >glens       02/02/19 14:42:15
> > > > >> >
> > > > >> >  Added:       src/java/org/apache/poi/hssf/usermodel/examples
> > > > >> >                        CreateCells.java CreateDateCells.java
> > > > >> >  Log:
> > > > >> >  Examples galore.  Well okay, only two.  More to come...  Really!
> > > > >> >
> > > > >> >  Revision  Changes    Path
> > > > >> >  1.1
> > > > >>
> > > >
> > >
> >jakarta-poi/src/java/org/apache/poi/hssf/usermodel/examples/CreateCells.jav
> > > a
> > > > >> >
> > > > >> >  Index: CreateCells.java
> > > > >> >
> ===================================================================
> > > > >> >  /*
> > > > ====================================================================
> > > > >> >   * The Apache Software License, Version 1.1
> > > > >> >   *
> > > > >> >   * Copyright (c) 2002 The Apache Software Foundation.  All
> rights
> > > > >> >   * reserved.
> > > > >> >   *
> > > > >> >   * Redistribution and use in source and binary forms, with or
> > > without
> > > > >> >   * modification, are permitted provided that the following
> > > conditions
> > > > >> >   * are met:
> > > > >> >   *
> > > > >> >   * 1. Redistributions of source code must retain the above
> copyright
> > > > >> >   *    notice, this list of conditions and the following
> disclaimer.
> > > > >> >   *
> > > > >> >   * 2. Redistributions in binary form must reproduce the above
> > > > copyright
> > > > >> >   *    notice, this list of conditions and the following
> disclaimer
> > > in
> > > > >> >   *    the documentation and/or other materials provided with the
> > > > >> >   *    distribution.
> > > > >> >   *
> > > > >> >   * 3. The end-user documentation included with the
> redistribution,
> > > > >> >   *    if any, must include the following acknowledgment:
> > > > >> >   *       "This product includes software developed by the
> > > > >> >   *        Apache Software Foundation (http://www.apache.org/)."
> > > > >> >   *    Alternately, this acknowledgment may appear in the
> software
> > > > >itself,
> > > > >> >   *    if and wherever such third-party acknowledgments normally
> > > > appear.
> > > > >> >   *
> > > > >> >   * 4. The names "Apache" and "Apache Software Foundation" and
> > > > >> >   *    "Apache POI" must not be used to endorse or promote
> products
> > > > >> >   *    derived from this software without prior written
> permission.
> > > For
> > > > >> >   *    written permission, please contact [EMAIL PROTECTED]
> > > > >> >   *
> > > > >> >   * 5. Products derived from this software may not be called
> > > "Apache",
> > > > >> >   *    "Apache POI", nor may "Apache" appear in their name,
> without
> > > > >> >   *    prior written permission of the Apache Software
> Foundation.
> > > > >> >   *
> > > > >> >   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR
> IMPLIED
> > > > >> >   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> WARRANTIES
> > > > >> >   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > > > >> >   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION
> OR
> > > > >> >   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> INCIDENTAL,
> > > > >> >   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> NOT
> > > > >> >   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
> OF
> > > > >> >   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
> CAUSED
> > > AND
> > > > >> >   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> > > LIABILITY,
> > > > >> >   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
> WAY
> > > OUT
> > > > >> >   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> POSSIBILITY
> > > OF
> > > > >> >   * SUCH DAMAGE.
> > > > >> >   *
> > > > ====================================================================
> > > > >> >   *
> > > > >> >   * This software consists of voluntary contributions made by
> many
> > > > >> >   * individuals on behalf of the Apache Software Foundation.  For
> > > more
> > > > >> >   * information on the Apache Software Foundation, please see
> > > > >> >   * <http://www.apache.org/>.
> > > > >> >   */
> > > > >> >
> > > > >> >  package org.apache.poi.hssf.usermodel.examples;
> > > > >> >
> > > > >> >  import org.apache.poi.hssf.usermodel.HSSFWorkbook;
> > > > >> >  import org.apache.poi.hssf.usermodel.HSSFSheet;
> > > > >> >  import org.apache.poi.hssf.usermodel.HSSFRow;
> > > > >> >  import org.apache.poi.hssf.usermodel.HSSFCell;
> > > > >> >
> > > > >> >  import java.io.FileOutputStream;
> > > > >> >  import java.io.IOException;
> > > > >> >
> > > > >> >  /**
> > > > >> >   * Illustrates how to create cell values.
> > > > >> >   *
> > > > >> >   * @author Glen Stampoultzis (glens at apache.org)
> > > > >> >   */
> > > > >> >  public class CreateCells
> > > > >> >  {
> > > > >> >      public static void main(String[] args)
> > > > >> >          throws IOException
> > > > >> >      {
> > > > >> >          HSSFWorkbook wb = new HSSFWorkbook();
> > > > >> >          HSSFSheet sheet = wb.createSheet("new sheet");
> > > > >> >
> > > > >> >          // Create a row and put some cells in it. Rows are 0
> based.
> > > > >> >          HSSFRow row = sheet.createRow((short)0);
> > > > >> >          // Create a cell and put a value in it.
> > > > >> >          HSSFCell cell = row.createCell((short)0);
> > > > >> >          cell.setCellValue(1);
> > > > >> >
> > > > >> >          // Or do it on one line.
> > > > >> >          row.createCell((short)1).setCellValue(1.2);
> > > > >> >          row.createCell((short)2).setCellValue("This is a
> string");
> > > > >> >          row.createCell((short)3).setCellValue(true);
> > > > >> >
> > > > >> >          // Write the output to a file
> > > > >> >          FileOutputStream fileOut = new
> > > > >FileOutputStream("workbook.xls");
> > > > >> >          wb.write(fileOut);
> > > > >> >          fileOut.close();
> > > > >> >      }
> > > > >> >  }
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >  1.1
> > > > >>
> > > >
> > >
> >jakarta-poi/src/java/org/apache/poi/hssf/usermodel/examples/CreateDateCells
> > > .
> > > > >java
> > > > >> >
> > > > >> >  Index: CreateDateCells.java
> > > > >> >
> ===================================================================
> > > > >> >  /*
> > > > ====================================================================
> > > > >> >   * The Apache Software License, Version 1.1
> > > > >> >   *
> > > > >> >   * Copyright (c) 2002 The Apache Software Foundation.  All
> rights
> > > > >> >   * reserved.
> > > > >> >   *
> > > > >> >   * Redistribution and use in source and binary forms, with or
> > > without
> > > > >> >   * modification, are permitted provided that the following
> > > conditions
> > > > >> >   * are met:
> > > > >> >   *
> > > > >> >   * 1. Redistributions of source code must retain the above
> copyright
> > > > >> >   *    notice, this list of conditions and the following
> disclaimer.
> > > > >> >   *
> > > > >> >   * 2. Redistributions in binary form must reproduce the above
> > > > copyright
> > > > >> >   *    notice, this list of conditions and the following
> disclaimer
> > > in
> > > > >> >   *    the documentation and/or other materials provided with the
> > > > >> >   *    distribution.
> > > > >> >   *
> > > > >> >   * 3. The end-user documentation included with the
> redistribution,
> > > > >> >   *    if any, must include the following acknowledgment:
> > > > >> >   *       "This product includes software developed by the
> > > > >> >   *        Apache Software Foundation (http://www.apache.org/)."
> > > > >> >   *    Alternately, this acknowledgment may appear in the
> software
> > > > >itself,
> > > > >> >   *    if and wherever such third-party acknowledgments normally
> > > > appear.
> > > > >> >   *
> > > > >> >   * 4. The names "Apache" and "Apache Software Foundation" and
> > > > >> >   *    "Apache POI" must not be used to endorse or promote
> products
> > > > >> >   *    derived from this software without prior written
> permission.
> > > For
> > > > >> >   *    written permission, please contact [EMAIL PROTECTED]
> > > > >> >   *
> > > > >> >   * 5. Products derived from this software may not be called
> > > "Apache",
> > > > >> >   *    "Apache POI", nor may "Apache" appear in their name,
> without
> > > > >> >   *    prior written permission of the Apache Software
> Foundation.
> > > > >> >   *
> > > > >> >   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR
> IMPLIED
> > > > >> >   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> WARRANTIES
> > > > >> >   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > > > >> >   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION
> OR
> > > > >> >   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> INCIDENTAL,
> > > > >> >   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> NOT
> > > > >> >   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
> OF
> > > > >> >   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
> CAUSED
> > > AND
> > > > >> >   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> > > LIABILITY,
> > > > >> >   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
> WAY
> > > OUT
> > > > >> >   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> POSSIBILITY
> > > OF
> > > > >> >   * SUCH DAMAGE.
> > > > >> >   *
> > > > ====================================================================
> > > > >> >   *
> > > > >> >   * This software consists of voluntary contributions made by
> many
> > > > >> >   * individuals on behalf of the Apache Software Foundation.  For
> > > more
> > > > >> >   * information on the Apache Software Foundation, please see
> > > > >> >   * <http://www.apache.org/>.
> > > > >> >   */
> > > > >> >
> > > > >> >  package org.apache.poi.hssf.usermodel.examples;
> > > > >> >
> > > > >> >  import org.apache.poi.hssf.usermodel.*;
> > > > >> >
> > > > >> >  import java.io.FileOutputStream;
> > > > >> >  import java.io.IOException;
> > > > >> >  import java.util.Date;
> > > > >> >
> > > > >> >  /**
> > > > >> >   * An example on how to cells with dates.  The important thing
> to
> > > note
> > > > >> >   * about dates is that they are really normal numeric cells that
> are
> > > > >> >   * formatted specially.
> > > > >> >   *
> > > > >> >   * @author Glen Stampoultzis (glens at apache.org)
> > > > >> >   */
> > > > >> >  public class CreateDateCells
> > > > >> >  {
> > > > >> >      public static void main(String[] args)
> > > > >> >          throws IOException
> > > > >> >      {
> > > > >> >          HSSFWorkbook wb = new HSSFWorkbook();
> > > > >> >          HSSFSheet sheet = wb.createSheet("new sheet");
> > > > >> >
> > > > >> >          // Create a row and put some cells in it. Rows are 0
> based.
> > > > >> >          HSSFRow row = sheet.createRow((short)0);
> > > > >> >
> > > > >> >          // Create a cell and put a date value in it.  The first
> cell
> > > > is
> > > > >> not styled as a date.
> > > > >> >          HSSFCell cell = row.createCell((short)0);
> > > > >> >          cell.setCellValue(new Date());
> > > > >> >
> > > > >> >          // we style the second cell as a date (and time).  It is
> > > > >> important to create a new cell style from the workbook
> > > > >> >          // otherwise you can end up modifying the built in style
> and
> > > > >> effecting not only this cell but other cells.
> > > > >> >          HSSFCellStyle cellStyle = wb.createCellStyle();
> > > > >> >          cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy
> > > > >h:mm"));
> > > > >> >          cell = row.createCell((short)1);
> > > > >> >          cell.setCellValue(new Date());
> > > > >> >          cell.setCellStyle(cellStyle);
> > > > >> >
> > > > >> >          // Write the output to a file
> > > > >> >          FileOutputStream fileOut = new
> > > > >FileOutputStream("workbook.xls");
> > > > >> >          wb.write(fileOut);
> > > > >> >          fileOut.close();
> > > > >> >
> > > > >> >      }
> > > > >> >  }
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >>
> > > > >
> > > > >
> > > >
> > >
> > >
> > --
> > www.superlinksoftware.com
> > www.sourceforge.net/projects/poi - port of Excel format to java
> > http://developer.java.sun.com/developer/bugParade/bugs/4487555.html
> > - fix java generics!
> >
> >
> > The avalanche has already started. It is too late for the pebbles to
> > vote.
> > -Ambassador Kosh
> >
> 
> 
-- 
www.superlinksoftware.com
www.sourceforge.net/projects/poi - port of Excel format to java
http://developer.java.sun.com/developer/bugParade/bugs/4487555.html 
                        - fix java generics!


The avalanche has already started. It is too late for the pebbles to
vote.
-Ambassador Kosh

Reply via email to