test/unit/organisation_test.rb in xero_gateway-2.3.0 vs test/unit/organisation_test.rb in xero_gateway-2.4.0
- old
+ new
@@ -1,29 +1,74 @@
require File.join(File.dirname(__FILE__), '../test_helper.rb')
class OrganisationTest < Test::Unit::TestCase
-
+
# Tests that an organisation can be converted into XML that Xero can understand, and then converted back to an organisation
def test_build_and_parse_xml
org = create_test_organisation
-
+
# Generate the XML message
org_as_xml = org.to_xml
# Parse the XML message and retrieve the account element
org_element = REXML::XPath.first(REXML::Document.new(org_as_xml), "/Organisation")
# Build a new account from the XML
result_org = XeroGateway::Organisation.from_xml(org_element)
-
+
# Check the account details
assert_equal org, result_org
end
-
-
+
+ def test_organisation_with_addresses
+ org = create_test_organisation
+ org.add_address(
+ :address_type => 'POBOX',
+ :line_1 => 'NEW LINE 1',
+ :line_2 => 'NEW LINE 2',
+ :line_3 => 'NEW LINE 3',
+ :line_4 => 'NEW LINE 4',
+ :city => 'NEW CITY',
+ :region => 'NEW REGION',
+ :post_code => '5555',
+ :country => 'Australia'
+ )
+
+ org_as_xml = org.to_xml
+
+ assert org_as_xml.include?("<Addresses><Address>")
+ assert org_as_xml.include?("NEW REGION")
+
+ org_element = REXML::XPath.first(REXML::Document.new(org_as_xml), "/Organisation")
+ result_org = XeroGateway::Organisation.from_xml(org_element)
+
+ assert_equal org, result_org
+ end
+
+ test "should raise if you add an unsupported type as an address" do
+ org = create_test_organisation
+ org.addresses = [ { :a => 123 }]
+
+ assert_raises "UnsupportedAttributeType" do
+ org.to_xml
+ end
+ end
+
+ test "works with an empty addresses attribute" do
+ org = create_test_organisation
+ org.addresses = []
+
+ assert org_as_xml = org.to_xml
+
+ org_element = REXML::XPath.first(REXML::Document.new(org_as_xml), "/Organisation")
+ result_org = XeroGateway::Organisation.from_xml(org_element)
+
+ assert_equal org, result_org
+ end
+
private
-
+
def create_test_organisation
XeroGateway::Organisation.new.tap do |org|
org.name = "Demo Company (NZ)"
org.legal_name = "Demo Company (NZ)"
org.pays_tax = true
@@ -34,6 +79,6 @@
org.organisation_status = nil
org.is_demo_company = false
org.line_of_business = "Graphic Design & Web Development"
end
end
-end
\ No newline at end of file
+end