blob: da4ea67c788c3b54ed113f29692325d2f1d3168b [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with this
# work for additional information regarding copyright ownership. The ASF
# licenses this file to you 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.
require File.expand_path('../spec_helpers', File.dirname(__FILE__))
Sandbox.require_optional_extension 'buildr/jaxb_xjc'
XSD_CONTENT = <<XSD
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:simpleType name="agency">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DSE"/>
<xsd:enumeration value="PV"/>
<xsd:enumeration value="CFA"/>
<xsd:enumeration value="DPI"/>
<xsd:enumeration value="VF"/>
<xsd:enumeration value="Unknown"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="latLongCoordinate">
<xsd:all>
<xsd:element name="latitude" type="xsd:float"/>
<xsd:element name="longitude" type="xsd:float"/>
</xsd:all>
</xsd:complexType>
<xsd:element name="wildfire">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="district" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The name of the district WITHOUT the "FIRE DISTRICT" suffix.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="status">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="GOING"/>
<xsd:enumeration value="CONTAINED"/>
<xsd:enumeration value="UNDER CONTROL - 1"/>
<xsd:enumeration value="UNDER CONTROL - 2"/>
<xsd:enumeration value="SAFE"/>
<xsd:enumeration value="SAFE - OVERRUN"/>
<xsd:enumeration value="SAFE - NOT FOUND"/>
<xsd:enumeration value="SAFE - FALSE ALARM"/>
<xsd:enumeration value="NOT FOUND"/>
<xsd:enumeration value="UNKNOWN"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="reported-at" type="xsd:dateTime"/>
<xsd:element name="lead-agency" type="xsd:string"/>
<xsd:element name="origin" type="latLongCoordinate" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This is a grid reference in lat/long format.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="area" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="number">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="global-id">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="data-source" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
XSD
describe Buildr::JaxbXjc do
describe "compiled with specified xsd" do
before do
write "src/main/xsd/wildfire-1.3.xsd", XSD_CONTENT
@foo = define "foo" do
project.version = "2.1.3"
compile.from compile_jaxb("src/main/xsd/wildfire-1.3.xsd", "-quiet", :package => "org.foo.api")
package :jar
end
task('compile').invoke
end
it "produce .java files in the correct location" do
File.should be_exist(@foo._("target/generated/jaxb/main/java/org/foo/api/Agency.java"))
File.should be_exist(@foo._("target/generated/jaxb/main/java/org/foo/api/LatLongCoordinate.java"))
File.should be_exist(@foo._("target/generated/jaxb/main/java/org/foo/api/ObjectFactory.java"))
File.should be_exist(@foo._("target/generated/jaxb/main/java/org/foo/api/Wildfire.java"))
end
it "produce .class files in the correct location" do
File.should be_exist(@foo._("target/classes/org/foo/api/Agency.class"))
File.should be_exist(@foo._("target/classes/org/foo/api/LatLongCoordinate.class"))
File.should be_exist(@foo._("target/classes/org/foo/api/ObjectFactory.class"))
File.should be_exist(@foo._("target/classes/org/foo/api/Wildfire.class"))
end
end
end