Ilya,

Thus test_setAsTextNull is redundant but
other two test cases have to be added.

This is exactly what I mean.
BTW, If you have more patches (or free time) for java.beans you are
highly welcome. I have already tired from working on this package
alone. :)

Regards,

2006/8/14, Ilya Okomin <[EMAIL PROTECTED]>:
On 8/14/06, Alexei Zakharov <[EMAIL PROTECTED]> wrote:
>
> Hi Ilya,
>
> FYI there is the existing class
> org.apache.harmony.beans.tests.java.beans.PropertyEditorSupportTest
> that contains all tests for PropertyEditorSupport. IMHO it would be
> better if you embed your tests into this class. BTW, you may also take
> a look at existent
> testSetAsText
> method since it seems it does the same job.


Thanks for suggested solution, I've already done it before read your message
:-)

Hmmm..you right, existing one test testSetAsText is the same as
test_setAsTextNull.
Actually existing testSetAsText test doesn't cover the problem, according to
the documentation setAsText method behavior depends on the object state
(rather newValue field type), thus we have to take into account the type of
the newValue before setAsText call, if it is instanse of String or not. I've
created tests for these cases. Thus test_setAsTextNull is redundant but
other two test cases have to be added.

Regards,
> Alexei
>
> P.S. thanks for the patch :)


Always welcome!

 Thanks,
Ilya.

2006/8/14, Ilya Okomin <[EMAIL PROTECTED]>:
> > Hello, Mikhail!
> >
> > Provided test case can work from classpath of course. It's my mistake,
> > thanks for noticed it. I'll prepare updated test case' patch with
> correct
> > packaging and taking into account exceptions handling recommendation
> ASAP.
> >
> > Thanks,
> > Ilya.
> >
> >
> > On 8/14/06, Mikhail Loenko <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi Ilya
> > >
> > > Is it significant that the test code is in bootclasspath, or it can
> > > work from classpath?
> > >
> > > There were some discussions around the tests that might be
> interesting,
> > > please look at [1].
> > >
> > > Please look at the section
> > > Utilize JUnit's assert/fail methods and exception handling for clean
> test
> > > code
> > >
> > > This also might be useful [2]
> > >
> > > Thanks,
> > > Mikhail
> > >
> > > [1]
> > >
> 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200603.mbox/[EMAIL 
PROTECTED]
> > >
> > > [2]
> > >
> http://incubator.apache.org/harmony/subcomponents/classlibrary/agreements.html
> > >
> > >
> > > 2006/8/9, Ilya Okomin (JIRA) <[EMAIL PROTECTED]>:
> > > > [classlib][beans]Harmony does not throw IllegalArgumentException for
> > > java.beans.PropertyEditorSupport.setAsText() while RI does.
> > > >
> > >
> 
--------------------------------------------------------------------------------------------------------------------------------
> > > >
> > > >                 Key: HARMONY-1113
> > > >                 URL:
> http://issues.apache.org/jira/browse/HARMONY-1113
> > > >             Project: Harmony
> > > >          Issue Type: Bug
> > > >          Components: Classlib
> > > >            Reporter: Ilya Okomin
> > > >            Priority: Minor
> > > >         Attachments: PropertyEditorSupport.patch,
> > > PropertyEditorSupportTest.patch
> > > >
> > > > Harmony does not throw IllegalArgumentException for
> > > java.beans.PropertyEditorSupport.setAsText(String) when parameter is
> > > invalid
> > > > while RI throws IllegalArgumentException.
> > > > Java 1.5.0 spec says:"May raise java.lang.IllegalArgumentExceptionif
> > > either the String is badly formatted or if this kind of property can't
> be
> > > expressed as text."
> > > > =============test.java==============
> > > > import java.beans.PropertyEditorSupport;
> > > >
> > > > public class test {
> > > >
> > > >    public static void main(String args[]) {
> > > >        PropertyEditorSupport undefPropertyEditorSupport = new
> > > > PropertyEditorSupport();
> > > >        try {
> > > >            System.err.print("value is null: ");
> > > >            undefPropertyEditorSupport.setAsText("string");
> > > >            System.err.println("failed: IllegalArgumentException
> > > expected, but
> > > > nothing was thrown!\n");
> > > >        } catch (IllegalArgumentException eE) {
> > > >            System.err.println("success!");
> > > >            eE.printStackTrace();
> > > >        }
> > > >
> > > >        PropertyEditorSupport defPropertyEditorSupport = new
> > > > PropertyEditorSupport();
> > > >        try {
> > > >            defPropertyEditorSupport.setValue(new Object());
> > > >
> > > >            System.err.print("value is Object: ");
> > > >            defPropertyEditorSupport.setAsText("string");
> > > >            System.err.println("failed: IllegalArgumentException
> > > expected, but
> > > > nothing was thrown!\n");
> > > >        } catch (IllegalArgumentException eE) {
> > > >            System.err.println("success!");
> > > >            eE.printStackTrace();
> > > >        }
> > > >
> > > >        defPropertyEditorSupport = new PropertyEditorSupport();
> > > >        try {
> > > >            defPropertyEditorSupport.setValue(new String());
> > > >            System.err.print("value is String: ");
> > > >            defPropertyEditorSupport.setAsText("string");
> > > >            System.err.println("success!");
> > > >        } catch (IllegalArgumentException eE) {
> > > >            System.err.println("failed!");
> > > >            eE.printStackTrace();
> > > >        }
> > > >
> > > >    }
> > > >
> > > > }
> > > > ===========================================
> > > > Output:
> > > >
> > > > Harmony:
> > > > java version "1.5.0"
> > > > pre-alpha : not complete or compatible
> > > > svn = r424571, (Jul 22 2006), Windows/ia32/msvc 1310, release build
> > > > http://incubator.apache.org/harmony
> > > >
> > > > value is null: failed: IllegalArgumentException expected, but
> nothing
> > > was
> > > > thrown!
> > > >
> > > > value is Object: failed: IllegalArgumentException expected, but
> nothing
> > > was
> > > > thrown!
> > > >
> > > > value is String: success!
> > > >
> > > > RI:
> > > > java version "1.5.0"
> > > > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
> > > > BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32,
> > > R25.0.0-75,
> > > > GC: System optimized over throughput (initial strategy
> singleparpar))
> > > >
> > > > value is null: success!
> > > > java.lang.IllegalArgumentException: string
> > > >        at
> > > > java.beans.PropertyEditorSupport.setAsText(
> PropertyEditorSupport.java
> > > :166)
> > > >        at bugzilla.Test9433.main(Test9433.java:11)
> > > > value is Object: success!
> > > > java.lang.IllegalArgumentException: string
> > > >        at
> > > > java.beans.PropertyEditorSupport.setAsText(
> PropertyEditorSupport.java
> > > :166)
> > > >        at bugzilla.Test9433.main(Test9433.java:23)
> > > > value is String: success!
> > > >
> > > > For this reason, suggested solution is to check in setAsText()
> method if
> > > the
> > > > value is instanse of String, in case of true - setValue, otherwise -
> > > throw an
> > > > IAE following the spec, "...this kind of property can't be expressed
> as
> > > text".
> > > >
> > > > Suggested patch and regression test can be found in the attach
> > > >



--
Alexei Zakharov,
Intel Middleware Product Division

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to