Hi Bao, Le Duc Bao wrote: > Hello, > > I've created some code for doing unit test Schema API based on Junit. There > are some concerns that I would discuss with you. ;-).
> 1. I try to reuse some class from xmlcft framework, especially > org.castor.xmlctf.xmldiff package and subpackages to compare test result. I > intend to add some further functions to compare two in-memory XML nodes > (does not serialize to a file). Do we need to clone to a separate version > (for dependence with xmlcft)? No, if the change is not intrusive, let's simply add new code to the package (module). > 2. I don't have right to commit on castor and castor-jaxb-2.0. So that I > attach my code to this email. Please do open a new Jira issue, and attach all relevant code there. Joachim and/or I will try to take care of things immediately. > 3. I don't know how to automatically add some metadata in source code like > * @version $Revision: 5951 $ $Date: 2006-04-25 16:09:10 -0600 (Tue, 25 Apr > 2006) $ > in the header. Do you have a template/tool to do that?. I did some changes > in Code Templates in Eclipse, but it seems that Eclipse doesn't support. This is done upon SVN commit. Afaik, there's no other way to achieve this. > Thank you very much, > Bao > > On Fri, May 9, 2008 at 10:14 AM, Werner Guttmann <[EMAIL PROTECTED]> > wrote: > >> Hi, >> >> Joachim Grüneis wrote: >>> Hello Bao, >>> >>> I'm not Werner :-) but I think I can answer some of your questions... >>> >>> >>> 2008/5/8 Le Duc Bao <[EMAIL PROTECTED]>: >>>> Hi Werner, >>>> >>>> In last couple of days, I studied the schema API, existent JAXB >>>> source code and also JAXB specification. I found that the existent >>>> schema module hasn't a complement test module. It's good idea to do >>>> some test on existent code to verify the completeness. >>> That is not completely right... there are some tests for SchemaReader >>> and SchemaWriter. There is a subproject with name xmlctf-framework >>> which contains an integration test framework developed for Castor and >>> xmlctf contains the integration tests for Castor XML. If you have a >>> look onto xmlctf/tests/MasterTestSuite/schema/... you fill find all >>> integration tests regarding reading and writing of schema definition >>> files. How these tests are executed can be seen in SchemaTestCase, >>> the main sequence is: >>> >>> File schemaFile = new File(_test.getTestFile() + "/" + _schemaName); >>> >>> String schemaURL = schemaFile.toURL().toString(); >>> >>> >>> >>> >>> Schema schema = testReadingSchema(schemaURL); >>> >>> if (schema == null) { >>> >>> return; >>> >>> } >>> >>> testWritingSchema(schemaURL, schema); >>> >>> // Compare marshaled schema to gold file if provided, otherwise to >>> input file >>> >>> compareSchemaFiles(schemaFile); >>> >>> so I expect that SchemaReader and SchemaWriter are tested. BUT I >>> think it will be better if you create plain JUnit tests for your >>> SchemaWriter tests - because: >>> >>> >>> * First of all the implementation of >>> the test framework is very ugly and I would like to get rid of it. * >>> The tests can not easily (nicely) be executed within Eclipse like >>> other JUnit based tests. >> And I will work with Joachim to supply you with a base test class that >> eases things considerably. >> >>> * The tests are meant to test a cycle of >>> read, write and compare the resulting xsd file with the start file... >>> I expect your tests will start with Java code - later annotated Java >>> classes - write a xsd file and compare against a gold file. >>> >>> I do agree that you should build a suite of tests that test creating >>> of schema files starting with Java declarations... to check if all >>> schema definitions you will need later are supported. >>> >>>> My understanding of your idea is that test cases will be created by >>>> writing some code fragments and expected schema files. Each test >>>> case will execute a code fragment to generate a schema, then >>>> compare this generated schema with expected schema. This approach >>>> will test the corectness of internal schema representation and the >>>> SchemaWriter. Is it right? >>> Yes >>> >>>> Furthermore, I have some stuffs that I need your comments/advices - >>>> Do you agree with my proposal for XML Schema generator >>>> architecture? >>> I have to check older mails regarding it... >>> >>>> - Related to SVN space for my project, will I work dirrectly in >>>> castor-jaxb-2.0 module or will you create a separate module for me? >>>> >>> for all stuff the needs to be extended in the Schema project you will >>> work on Castor itself - for JAXB specific stuff it will be >>> castor-jaxb-2.0 . >>> >>>> - For the coding convention, I remember that Ralf gave me a >>>> document some times before, but I don't keep it in my computer. >>>> Could you give me a pointer for this? >>> You should simply enable checkstyle and you will see the warnings... >>> I adapt files that I really change (more then just a few lines) but I >>> do not reformat class I do not really touch... >>> >>>> Anyway, I keep going on JAXB specification in next few days while >>>> looking for your reply. >>>> >>>> Regards, Bao >>>> >>>> >>> Have fun >>> >>> Joachim >>> >>>> >>>> On Thu, May 8, 2008 at 7:31 PM, Werner Guttmann >>>> <[EMAIL PROTECTED]> wrote: >>>> >>>>> Hi Bao, >>>>> >>>>> following up your last email about the schema classes, there's >>>>> some ideas how to go about things step by step. >>>>> >>>>> I think it would be a good idea if you added your code fragments >>>>> (that demonstrate and investigate the completeness of the >>>>> existing schema classes) to e.g. the test case of the 'schema' >>>>> module. >>>>> >>>>> I have been talking to Joachim the other day, and we think that >>>>> we could come up with a base test case class that takes a Schema >>>>> object instance, writes it to a physical XML schema file (using >>>>> SchemaWriter) and compares it with a gold XML schema file. >>>>> >>>>> Based upon this test case, you could create one test case after >>>>> the other and add them to src/test/java and src/test/resources of >>>>> the schema module. >>>>> >>>>> In terms of proceeding on the complexity side of things, I'd >>>>> start with simple things such as adding one complex type, one >>>>> global element definition to an XML schema, and then take it from >>>>> there. If you had a look at the JAXB specification, you'll find >>>>> plenty of references in terms of what XML schema artefacts you >>>>> will have to be able to produce (and serialize). >>>>> >>>>> Let me know whether this approach is fine for you, and whether >>>>> you have any additional thoughts. >>>>> >>>>> Regards Werner >>>>> >>>> >>>> -- Le Duc Bao >>> --------------------------------------------------------------------- >>> To unsubscribe from this list, please visit: >>> >>> http://xircles.codehaus.org/manage_email >>> >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe from this list, please visit: >> >> http://xircles.codehaus.org/manage_email >> >> >> > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email