<?xml version="1.0"?> | |
<!-- | |
Copyright 2002,2004 The Apache Software Foundation. | |
Licensed under the Apache License, Version 2.0 (the "License"); | |
you may not use this file except in compliance with the License. | |
You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
--> | |
<test:suite | |
xmlns:j="jelly:core" | |
xmlns:dynabean="jelly:dynabean" | |
xmlns:test="jelly:junit" | |
xmlns:log="jelly:log"> | |
<test:case name="simpleDynaBean"> | |
<dynabean:dynaclass var="CustomerType" name ="CustomerDynaClass"> | |
<dynabean:property name="name" type="String" /> | |
<dynabean:property name="address" type="String" /> | |
</dynabean:dynaclass> | |
<dynabean:dynabean var="customer" dynaclass="${CustomerType}"/> | |
<dynabean:set var="customer" property="name" value="Customer 1" /> | |
<dynabean:set var="customer" property="address" value="Address of Customer 1" /> | |
<test:assertEquals expected="Customer 1" actual="${customer.name}"/> | |
<test:assertEquals expected="Address of Customer 1" actual="${customer.address}"/> | |
<test:assertEquals expected="CustomerDynaClass" actual="${customer.dynaClass.name}"/> | |
</test:case> | |
<test:case name="nestedDynaBean"> | |
<dynabean:dynaclass var="AddressType" name="AddressDynaClass"> | |
<dynabean:property name="city" type="String" /> | |
<dynabean:property name="street" type="String" /> | |
<dynabean:property name="housenumber" type="Integer" /> | |
</dynabean:dynaclass> | |
<dynabean:dynaclass var="CustomerType" name="CustomerDynaClass"> | |
<dynabean:property name="name" type="String" /> | |
<dynabean:property name="address" type="org.apache.commons.beanutils.DynaBean"/> | |
</dynabean:dynaclass> | |
<dynabean:dynabean var="customer" dynaclass="${CustomerType}" /> | |
<dynabean:dynabean var="address" dynaclass="${AddressType}" /> | |
<dynabean:set var="customer" property="name" value="Customer 1" /> | |
<dynabean:set var="customer" property="address" value="${address}" /> | |
<dynabean:set var="customer" property="address.city" value="London" /> | |
<dynabean:set var="customer" property="address.street" value="Downing Street" /> | |
<dynabean:set var="customer" property="address.housenumber" value="10" /> | |
<test:assertEquals expected="Customer 1" actual="${customer.name}"/> | |
<test:assertEquals expected="London" actual="${customer.address.city}"/> | |
<test:assertEquals expected="Downing Street" actual="${customer.address.street}"/> | |
<!-- #### JellyUnit needs to support type cooercion for this to work... | |
<test:assertEquals expected="10" actual="${customer.address.housenumber}"/> | |
--> | |
</test:case> | |
</test:suite> |