Code Search for Developers
 
 
  

human_version_to_cfbundle_version_test.rb from redshed at Krugle


Show human_version_to_cfbundle_version_test.rb syntax highlighted

#! /usr/bin/ruby
# 
# human_version_to_cfbundle_version_test.rb
#   Based on <http://www.dribin.org/dave/blog/archives/2006/08/02/versioning_os_x_apps/>
#   Copyright (c) 2006 Jonathan 'Wolf' Rentzsch.
#   Some rights reserved: <http://creativecommons.org/licenses/by/2.0/>

require 'test/unit'
require 'human_version_to_cfbundle_version'

class Test::Unit::TestCase
  def assert_equal_s(a,b)
    assert_equal(a.to_s,b.to_s)
  end
end
class VersionNumberTest < Test::Unit::TestCase
  def test_version_number
    # Human -> Human
    assert_raise(ArgumentError) {  VersionNumber.new('')}
    assert_raise(ArgumentError) {  VersionNumber.new('.')}
    assert_equal_s                 VersionNumber.new('1'),                              '1.0'
    assert_raise(ArgumentError) {  VersionNumber.new('1.')}                           
    assert_equal_s                 VersionNumber.new('1.2'),                            '1.2'
    assert_raise(ArgumentError) {  VersionNumber.new('1.2.')}                         
    assert_equal_s                 VersionNumber.new('1.2.3'),                          '1.2.3'
    assert_raise(ArgumentError) {  VersionNumber.new('1.2.3d')}                       
    assert_equal_s                 VersionNumber.new('1.2.3d4'),                        '1.2.3d4'
    assert_equal_s                 VersionNumber.new('1.2.3a4'),                        '1.2.3a4'
    assert_equal_s                 VersionNumber.new('1.2.3b4'),                        '1.2.3b4'
    assert_equal_s                 VersionNumber.new('1.2.3fc4'),                       '1.2.3fc4'
    assert_equal_s                 VersionNumber.new('01.2.3fc4'),                      '1.2.3fc4' # We normalize.
    assert_equal_s                 VersionNumber.new('1.02.3fc4'),                      '1.2.3fc4'
    assert_equal_s                 VersionNumber.new('1.2.03fc4'),                      '1.2.3fc4'
    assert_equal_s                 VersionNumber.new('1.2.3fc04'),                      '1.2.3fc4'
    assert_equal_s                 VersionNumber.new('1fc4'),                           '1.0fc4'
    
    assert_equal_s                 VersionNumber.new('99.99.99fc99'),                   '99.99.99fc99'
    assert_raise(ArgumentError) {  VersionNumber.new('999.99.99fc99')}
    assert_raise(ArgumentError) {  VersionNumber.new('99.999.99fc99')}
    assert_raise(ArgumentError) {  VersionNumber.new('99.99.999fc99')}
    assert_raise(ArgumentError) {  VersionNumber.new('99.99.99fc999')}
    
    # CFBundleVersion -> CFBundleVersion
    assert_equal_s                 VersionNumber.new('01031.02.04').cfbundle_version,   '01031.02.04'
    assert_equal_s                 VersionNumber.new('02000.19.00').cfbundle_version,   '02000.19.00'
    assert_equal_s                 VersionNumber.new('99999.93.99').cfbundle_version,   '99999.93.99'
    assert_raise(ArgumentError) {  VersionNumber.new('99999.96.99')} # 6, 7, 8 don't have stage mappings.
    assert_raise(ArgumentError) {  VersionNumber.new('99999.97.99')}
    assert_raise(ArgumentError) {  VersionNumber.new('99999.98.99')}
    
    # CFBundleVersion -> Human
    assert_equal_s                 VersionNumber.new('01031.02.04'),                    '1.3.10b4'
    assert_equal_s                 VersionNumber.new('02000.19.00'),                    '2.0.1'
    assert_equal_s                 VersionNumber.new('99999.93.99'),                    '99.99.99fc99'
    
    # Human -> CFBundleVersion
    assert_equal_s                 VersionNumber.new('1.3.10b4').cfbundle_version,      '01031.02.04'
    assert_equal_s                 VersionNumber.new('2.0.1').cfbundle_version,         '02000.19.00'
    assert_equal_s                 VersionNumber.new('99.99.99fc99').cfbundle_version,  '99999.93.99'
  end
end




See more files for this project here

redshed

Code for Mac+WebObjects.

Project homepage: http://sourceforge.net/projects/redshed
Programming language(s): C,Java,Objective C
License: other

  human_version_to_cfbundle_version.rb
  human_version_to_cfbundle_version_test.rb