From: <ro...@us...> - 2009-03-05 12:34:45
|
Revision: 52 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=52&view=rev Author: roekens Date: 2009-03-05 12:34:42 +0000 (Thu, 05 Mar 2009) Log Message: ----------- - adding of several testing methods for each domain object - code polishing: introduced constants class and removed string definitions from entity classes Modified Paths: -------------- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/Constants.java 2009-03-05 12:34:42 UTC (rev 52) @@ -1,5 +1,60 @@ package de.campussource.cse.cdmm; public class Constants{ + //namespace public static final String NAMESPACE_DATATYPES="http://cse.campussource.de/DataTypes"; + + //xml structure elements + public static final String COURSE = "course"; + public static final String COURSES = "courses"; + public static final String CATEGORY = "category"; + public static final String CATEGORIES = "categories"; + public static final String WORKGROUP = "workgroup"; + public static final String WORKGROUPS = "workgroups"; + public static final String ROLE = "role"; + public static final String ROLES = "roles"; + public static final String ACCOUNT = "account"; + public static final String ACCOUNTS = "accounts"; + public static final String GROUP = "group"; + public static final String GROUPS = "groups"; + public static final String PARENT = "parent"; + public static final String PARENTS = "parents"; + public static final String MEMBERS = "members"; + public static final String TYPE = "type"; + + //entity ids + public static final String COURSE_ID = "courseId"; + public static final String CATEGORY_ID = "categoryId"; + public static final String ROLE_ID = "roleId"; + public static final String ACCOUNT_ID = "accountId"; + public static final String GROUP_ID = "groupId"; + public static final String MEMBER = "member"; + + //entity property names + public static final String PROPERTY_PARENTS = "parents"; + public static final String PROPERTY_CHILDREN = "children"; + public static final String PROPERTY_COURSES = "courses"; + + //table names + public static final String TABLENAME_ACCOUNT = "CDMM_ACCOUNT"; + public static final String TABLENAME_CATEGORY = "CDMM_CATEGORY"; + public static final String TABLENAME_COURSE = "CDMM_COURSE"; + public static final String TABLENAME_ENTITY = "CDMM_ENTITY"; + public static final String TABLENAME_GROUP = "CDMM_GROUP"; + public static final String TABLENAME_ROLE = "CDMM_ROLE"; + public static final String TABLENAME_CATEGORY2CATEGORY = "CDMM_CAT2CAT"; + public static final String TABLENAME_GROUP2ACCOUNT = "CDMM_GROUP2ACCOUNT"; + public static final String TABLENAME_COURSE2CATEGORY = "CDMM_COURSE2CAT"; + + //column names + public static final String COLUMNNAME_ROLE_TYPE="ROLE_TYPE"; + public static final String COLUMNNAME_CHILD_ID="CHILD_ID"; + public static final String COLUMNNAME_PARENT_ID="PARENT_ID"; + public static final String COLUMNNAME_GROUP_ID="GROUP_ID"; + public static final String COLUMNNAME_ACCOUNT_ID = "ACCOUNT_ID"; + public static final String COLUMNNAME_CATEGORY_ID = "CATEGORY_ID"; + public static final String COLUMNNAME_COURSE_ID = "COURSE_ID"; + + public static final String ID = "id"; + } \ No newline at end of file Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-05 12:34:42 UTC (rev 52) @@ -19,19 +19,19 @@ @Entity @Embeddable -@Table(name = "CDMM_ACCOUNT") +@Table(name = Constants.TABLENAME_ACCOUNT) @XmlRootElement -@XmlType(propOrder={ "groups", "roles"}, namespace=Constants.NAMESPACE_DATATYPES) +@XmlType(propOrder={ Constants.GROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES) public class Account extends de.campussource.cse.cdmm.domain.Entity{ - @OneToMany(mappedBy="account") + @OneToMany(mappedBy=Constants.ACCOUNT) private List<Role> roles; @ManyToMany @JoinTable( - name = "CDMM_GROUP2ACCOUNT", - joinColumns={@JoinColumn(name="GROUP_ID")}, - inverseJoinColumns={@JoinColumn(name="ACCOUNT_ID")}) + name = Constants.TABLENAME_GROUP2ACCOUNT, + joinColumns={@JoinColumn(name=Constants.COLUMNNAME_GROUP_ID)}, + inverseJoinColumns={@JoinColumn(name=Constants.COLUMNNAME_GROUP_ID)}) private List<Group> groups; public Account(){ @@ -47,8 +47,8 @@ this.roles = roles; } - @XmlElementWrapper(name="roles") - @XmlElement(name="role") + @XmlElementWrapper(name=Constants.ROLES) + @XmlElement(name=Constants.ROLE) public List<Role> getRoles() { return roles; } @@ -57,8 +57,8 @@ this.roles = roles; } - @XmlElementWrapper(name="groups") - @XmlElement(name="group") + @XmlElementWrapper(name=Constants.GROUPS) + @XmlElement(name=Constants.GROUP) @XmlIDREF public List<Group> getGroups() { return groups; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-05 12:34:42 UTC (rev 52) @@ -19,22 +19,22 @@ @Entity @Embeddable -@Table(name = "CDMM_CATEGORY") +@Table(name = Constants.TABLENAME_CATEGORY) @XmlRootElement -@XmlType(propOrder={ "parents", "children", "courses"}, namespace=Constants.NAMESPACE_DATATYPES) +@XmlType(propOrder={Constants.PROPERTY_PARENTS, Constants.PROPERTY_CHILDREN, Constants.PROPERTY_COURSES}, namespace=Constants.NAMESPACE_DATATYPES) public class Category extends de.campussource.cse.cdmm.domain.Entity { @ManyToMany @JoinTable( - name = "CDMM_CAT2CAT", - joinColumns={@JoinColumn(name="CHILD_ID")}, - inverseJoinColumns={@JoinColumn(name="PARENT_ID")}) + name = Constants.TABLENAME_CATEGORY2CATEGORY, + joinColumns={@JoinColumn(name=Constants.COLUMNNAME_CHILD_ID)}, + inverseJoinColumns={@JoinColumn(name=Constants.COLUMNNAME_PARENT_ID)}) private List<Category> parents; - @ManyToMany(mappedBy="parent") + @ManyToMany(mappedBy=Constants.PARENT) private List<Category> children; - @ManyToMany(mappedBy="categories") + @ManyToMany(mappedBy=Constants.CATEGORIES) private List<Course> courses; public Category() { @@ -52,8 +52,8 @@ } - @XmlElementWrapper(name="categories") - @XmlElement(name="category") + @XmlElementWrapper(name=Constants.CATEGORIES) + @XmlElement(name=Constants.CATEGORY) public List<Category> getChildren() { return children; } @@ -62,8 +62,8 @@ this.children = children; } - @XmlElementWrapper(name="courses") - @XmlElement(name="course") + @XmlElementWrapper(name=Constants.COURSES) + @XmlElement(name=Constants.COURSE) @XmlIDREF public List<Course> getCourses() { return courses; @@ -73,8 +73,8 @@ this.courses = courses; } - @XmlElementWrapper(name="parents") - @XmlElement(name="parent") + @XmlElementWrapper(name=Constants.PARENTS) + @XmlElement(name=Constants.PARENT) @XmlIDREF public List<Category> getParents() { return parents; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-05 12:34:42 UTC (rev 52) @@ -23,26 +23,26 @@ @Entity @Embeddable -@Table(name = "CDMM_COURSE") +@Table(name = Constants.TABLENAME_COURSE) @XmlRootElement -@XmlType(propOrder={ "categories", "parent", "workgroups", "roles"}, namespace=Constants.NAMESPACE_DATATYPES) +@XmlType(propOrder={ Constants.CATEGORIES, Constants.PARENT, Constants.WORKGROUPS, Constants.ROLES}, namespace=Constants.NAMESPACE_DATATYPES) public class Course extends de.campussource.cse.cdmm.domain.Entity{ @ManyToOne - @JoinTable(name="PARENT_ID") + @JoinTable(name=Constants.COLUMNNAME_PARENT_ID) private Course parent; - @OneToMany(mappedBy="parent") + @OneToMany(mappedBy=Constants.PARENT) private List<Course> workgroups; @ManyToMany @JoinTable( - name = "CDMM_COURSE2CAT", - joinColumns={@JoinColumn(name="CATEGORY_ID")}, - inverseJoinColumns={@JoinColumn(name="COURSE_ID")}) + name = Constants.TABLENAME_COURSE2CATEGORY, + joinColumns={@JoinColumn(name=Constants.COLUMNNAME_CATEGORY_ID)}, + inverseJoinColumns={@JoinColumn(name=Constants.COLUMNNAME_COURSE_ID)}) private List<Category> categories; - @OneToMany(mappedBy="course") + @OneToMany(mappedBy=Constants.COURSE) private List<Role> roles; public Course(){ @@ -64,7 +64,7 @@ return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE).toString(); } - @XmlElement + @XmlElement(name=Constants.PARENT) @XmlIDREF public Course getParent() { return parent; @@ -74,8 +74,8 @@ this.parent = parent; } - @XmlElementWrapper(name="workgroups") - @XmlElement(name="workgroup") + @XmlElementWrapper(name=Constants.WORKGROUPS) + @XmlElement(name=Constants.WORKGROUP) public List<Course> getWorkgroups() { return workgroups; } @@ -84,8 +84,8 @@ this.workgroups = workgroups; } - @XmlElementWrapper(name="categories") - @XmlElement(name="category", required=true) + @XmlElementWrapper(name=Constants.CATEGORIES) + @XmlElement(name=Constants.CATEGORY, required=true) @XmlIDREF public List<Category> getCategories() { return categories; @@ -95,8 +95,8 @@ this.categories = categories; } - @XmlElementWrapper(name="roles") - @XmlElement(name="role") + @XmlElementWrapper(name=Constants.ROLES) + @XmlElement(name=Constants.ROLE) public List<Role> getRoles() { return roles; } Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Entity.java 2009-03-05 12:34:42 UTC (rev 52) @@ -17,7 +17,7 @@ import de.campussource.cse.cdmm.IdAdapter; @XmlRootElement -@XmlType(propOrder={"id"}, namespace=Constants.NAMESPACE_DATATYPES) +@XmlType(propOrder={Constants.ID}, namespace=Constants.NAMESPACE_DATATYPES) public class Entity{ @Id @@ -63,7 +63,7 @@ @XmlID @XmlJavaTypeAdapter(value=IdAdapter.class) - @XmlAttribute(name="id") + @XmlAttribute(name=Constants.ID) public Long getId() { return id; }; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java 2009-03-05 12:34:42 UTC (rev 52) @@ -31,20 +31,20 @@ this.accounts = accounts; } - @XmlElement(name="category") + @XmlElement(name=Constants.CATEGORY) public Category getRootCategory() { return rootCategory; } - @XmlElementWrapper(name="courses") - @XmlElement(name="course") + @XmlElementWrapper(name=Constants.COURSES) + @XmlElement(name=Constants.COURSE) public List<Course> getCourses() { return courses; } - @XmlElementWrapper(name="accounts") - @XmlElements(value= {@XmlElement(name="account",type=Account.class), @XmlElement(name="group",type=Group.class)}) + @XmlElementWrapper(name=Constants.ACCOUNTS) + @XmlElements(value= {@XmlElement(name=Constants.ACCOUNT,type=Account.class), @XmlElement(name=Constants.GROUP,type=Group.class)}) public List<Account> getAccounts() { return accounts; } Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-05 12:34:42 UTC (rev 52) @@ -19,12 +19,12 @@ @Entity @Embeddable -@Table(name = "CDMM_GROUP") +@Table(name = Constants.TABLENAME_GROUP) @XmlRootElement -@XmlType(propOrder={"members"}, namespace=Constants.NAMESPACE_DATATYPES) +@XmlType(propOrder={Constants.MEMBERS}, namespace=Constants.NAMESPACE_DATATYPES) public class Group extends Account{ - @ManyToMany(mappedBy="groups") + @ManyToMany(mappedBy=Constants.GROUPS) private List<Account> members; public Group(){ @@ -69,8 +69,8 @@ this.members = members; } - @XmlElementWrapper(name="members") - @XmlElement(name="member") + @XmlElementWrapper(name=Constants.MEMBERS) + @XmlElement(name=Constants.MEMBER) @XmlIDREF public List<Account> getMembers() { return members; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-05 12:34:42 UTC (rev 52) @@ -16,20 +16,20 @@ @Entity @Embeddable -@Table(name = "CDMM_ROLE") +@Table(name = Constants.TABLENAME_ROLE) @XmlRootElement -@XmlType(propOrder={"type", "account", "course"}, namespace=Constants.NAMESPACE_DATATYPES) +@XmlType(propOrder={Constants.TYPE, Constants.ACCOUNT, Constants.COURSE}, namespace=Constants.NAMESPACE_DATATYPES) public class Role extends de.campussource.cse.cdmm.domain.Entity{ - @Column(name="ROLE_TYPE") + @Column(name=Constants.COLUMNNAME_ROLE_TYPE) private RoleType type; @ManyToOne - @JoinColumn(name="ACCOUNT_ID") + @JoinColumn(name=Constants.COLUMNNAME_ACCOUNT_ID) private Account account; @ManyToOne - @JoinColumn(name="COURSE_ID") + @JoinColumn(name=Constants.COLUMNNAME_COURSE_ID) private Course course; public Role(){ @@ -60,7 +60,7 @@ this.type = type; } - @XmlElement(name="accountId", required=true) + @XmlElement(name=Constants.ACCOUNT_ID, required=true) @XmlIDREF public Account getAccount() { return account; @@ -70,7 +70,7 @@ this.account = account; } - @XmlElement(name="courseId", required=true) + @XmlElement(name=Constants.COURSE_ID, required=true) @XmlIDREF public Course getCourse() { return course; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-04 14:09:18 UTC (rev 51) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-05 12:34:42 UTC (rev 52) @@ -42,11 +42,25 @@ } @Test - public void testConversionSimple(){ + public void testAccountXml(){ + System.out.println("----- entering Account XML Test -----"); + //create and fetch account object + EntityContainer container = generateTestStructure(); + Account account = null; + for (Account acc : container.getAccounts()){ + if (acc instanceof Account && !(acc instanceof Group)){ + account = acc; + } + } + if (account == null){ + fail("no account object created"); + } + + //create jaxb context and marshaller Marshaller marshaller=null; JAXBContext context=null; try { - context = JAXBContext.newInstance(EntityContainer.class); + context = JAXBContext.newInstance(Account.class); marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); } catch (JAXBException e) { @@ -54,52 +68,100 @@ fail(e.getMessage()); } - EntityContainer container = generateTestStructure(); - - + //convert account object to xml String outputXml = ""; try { Writer writer = new StringWriter(); - marshaller.marshal(container, writer); + marshaller.marshal(account, writer); outputXml = writer.toString(); writer.close(); } catch (JAXBException e) { fail(e.getMessage()); } catch (IOException e) { fail(e.getMessage()); - } + } + assertTrue((outputXml!=null)&&(outputXml!="")); System.out.println(outputXml); + //convert xml back to an object and assert equality to source object + Account convertedAccount=null; try { Unmarshaller unmarshaller = context.createUnmarshaller(); - EntityContainer ec = (EntityContainer) unmarshaller.unmarshal(new StringReader(outputXml)); - System.out.println(ec.toString()); + convertedAccount = (Account) unmarshaller.unmarshal(new StringReader(outputXml)); + System.out.println(convertedAccount.toString()); } catch (JAXBException e) { fail(e.getMessage()); } + assertTrue(account.equals(convertedAccount)); + System.out.println("----- leaving Account XML Test -----"); + } + + @Test + public void testCategoryXml(){ + System.out.println("----- entering Category XML Test -----"); + //create and fetch category object + EntityContainer container = generateTestStructure(); + Category category = container.getRootCategory(); + assertNotNull(category); - final List<DOMResult> results = new ArrayList<DOMResult>(); + //create jaxb context and marshaller + Marshaller marshaller=null; + JAXBContext context=null; try { - context.generateSchema( - new SchemaOutputResolver() { - @Override - public Result createOutput(String ns, String file) throws IOException { - DOMResult result = new DOMResult(); - result.setSystemId(file); - results.add(result); - return result; - } - }); - printDOMResult(results.get(0)); - } catch (IOException e) { + context = JAXBContext.newInstance(Category.class); + marshaller = context.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); + } catch (JAXBException e) { e.printStackTrace(); fail(e.getMessage()); } + //convert account object to xml + String outputXml = ""; + try { + Writer writer = new StringWriter(); + marshaller.marshal(category, writer); + outputXml = writer.toString(); + writer.close(); + } catch (JAXBException e) { + fail(e.getMessage()); + } catch (IOException e) { + fail(e.getMessage()); + } + assertTrue((outputXml!=null)&&(outputXml!="")); + System.out.println(outputXml); - - } + //convert xml back to an object and assert equality to source object + Category convertedCategory=null; + try { + Unmarshaller unmarshaller = context.createUnmarshaller(); + convertedCategory = (Category) unmarshaller.unmarshal(new StringReader(outputXml)); + System.out.println(convertedCategory.toString()); + } catch (JAXBException e) { + fail(e.getMessage()); + } + assertTrue(category.equals(convertedCategory)); + System.out.println("----- leaving Category XML Test -----"); + } +// final List<DOMResult> results = new ArrayList<DOMResult>(); +// try { +// context.generateSchema( +// new SchemaOutputResolver() { +// @Override +// public Result createOutput(String ns, String file) throws IOException { +// DOMResult result = new DOMResult(); +// result.setSystemId(file); +// results.add(result); +// return result; +// } +// }); +// printDOMResult(results.get(0)); +// } catch (IOException e) { +// e.printStackTrace(); +// fail(e.getMessage()); +// } + private void printDOMResult(DOMResult domResult) throws IOException{ Document doc = (Document) domResult.getNode(); OutputFormat format = new OutputFormat(doc); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |