spec/mixlib/versioning/format/rubygems_spec.rb in mixlib-versioning-1.0.0 vs spec/mixlib/versioning/format/rubygems_spec.rb in mixlib-versioning-1.1.0
- old
+ new
@@ -1,7 +1,7 @@
#
-# Author:: Seth Chisamore (<schisamo@opscode.com>)
+# Author:: Seth Chisamore (<schisamo@chef.io>)
# Copyright:: Copyright (c) 2013 Opscode, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,126 +17,141 @@
#
require 'spec_helper'
describe Mixlib::Versioning::Format::Rubygems do
+ subject { described_class.new(version_string) }
- subject{ described_class.new(version_string) }
+ it_should_behave_like 'Basic SemVer'
- it_should_behave_like "Basic SemVer"
-
- it_has_behavior "parses valid version strings", {
- "10.1.1" => {
- :major => 10,
- :minor => 1,
- :patch => 1,
- :prerelease => nil,
- :build => nil,
- :release? => true,
- :prerelease? => false,
- :build? => false,
- :release_build? => false,
- :prerelease_build? => false,
- :iteration => 0
+ it_has_behavior 'parses valid version strings', {
+ '10.1.1' => {
+ major: 10,
+ minor: 1,
+ patch: 1,
+ prerelease: nil,
+ build: nil,
+ release?: true,
+ prerelease?: false,
+ build?: false,
+ release_build?: false,
+ prerelease_build?: false,
+ iteration: 0,
},
- "10.1.1.alpha.1" => {
- :major => 10,
- :minor => 1,
- :patch => 1,
- :prerelease => "alpha.1",
- :build => nil,
- :release? => false,
- :prerelease? => true,
- :build? => false,
- :release_build? => false,
- :prerelease_build? => false,
- :iteration => 0
+ '10.1.1.alpha.1' => {
+ major: 10,
+ minor: 1,
+ patch: 1,
+ prerelease: 'alpha.1',
+ build: nil,
+ release?: false,
+ prerelease?: true,
+ build?: false,
+ release_build?: false,
+ prerelease_build?: false,
+ iteration: 0,
},
- "11.0.8.rc.3" => {
- :major => 11,
- :minor => 0,
- :patch => 8,
- :prerelease => "rc.3",
- :build => nil,
- :release? => false,
- :prerelease? => true,
- :build? => false,
- :release_build? => false,
- :prerelease_build? => false,
- :iteration => 0
+ '11.0.8.rc.3' => {
+ major: 11,
+ minor: 0,
+ patch: 8,
+ prerelease: 'rc.3',
+ build: nil,
+ release?: false,
+ prerelease?: true,
+ build?: false,
+ release_build?: false,
+ prerelease_build?: false,
+ iteration: 0,
},
- "11.0.8-33" => {
- :major => 11,
- :minor => 0,
- :patch => 8,
- :prerelease => nil,
- :build => nil,
- :release? => true,
- :prerelease? => false,
- :build? => false,
- :release_build? => false,
- :prerelease_build? => false,
- :iteration => 33
+ '11.0.8-33' => {
+ major: 11,
+ minor: 0,
+ patch: 8,
+ prerelease: nil,
+ build: nil,
+ release?: true,
+ prerelease?: false,
+ build?: false,
+ release_build?: false,
+ prerelease_build?: false,
+ iteration: 33,
},
- "11.0.8.rc.3-1" => {
- :major => 11,
- :minor => 0,
- :patch => 8,
- :prerelease => "rc.3",
- :build => nil,
- :release? => false,
- :prerelease? => true,
- :build? => false,
- :release_build? => false,
- :prerelease_build? => false,
- :iteration => 1
- }
+ '11.0.8.rc.3-1' => {
+ major: 11,
+ minor: 0,
+ patch: 8,
+ prerelease: 'rc.3',
+ build: nil,
+ release?: false,
+ prerelease?: true,
+ build?: false,
+ release_build?: false,
+ prerelease_build?: false,
+ iteration: 1,
+ },
}
- it_has_behavior "rejects invalid version strings", {
- "1.1.1-rutro" => "dash for pre-release delimeter"
+ it_has_behavior 'rejects invalid version strings', {
+ '1.1.1-rutro' => 'dash for pre-release delimeter',
}
- it_has_behavior "serializable", [
- "1.0.0",
- "1.0.0.alpha.1",
- "1.0.0.beta"
+ it_has_behavior 'serializable', [
+ '1.0.0',
+ '1.0.0.alpha.1',
+ '1.0.0.beta',
]
- it_has_behavior "sortable" do
- let(:unsorted_version_strings){%w{
- 1.0.0.beta.2
- 1.3.7.alpha.0
- 1.0.0.alpha
- 1.0.0.rc.1
- 1.0.0
- }}
- let(:sorted_version_strings){%w{
- 1.0.0.alpha
- 1.0.0.beta.2
- 1.0.0.rc.1
- 1.0.0
- 1.3.7.alpha.0
- }}
- let(:min){ "1.0.0.alpha" }
- let(:max){ "1.3.7.alpha.0" }
+ it_has_behavior 'sortable' do
+ let(:unsorted_version_strings) do
+ %w(
+ 1.0.0.beta.2
+ 1.3.7.alpha.0
+ 1.0.0.alpha
+ 1.0.0.rc.1
+ 1.0.0
+ )
+ end
+ let(:sorted_version_strings) do
+ %w(
+ 1.0.0.alpha
+ 1.0.0.beta.2
+ 1.0.0.rc.1
+ 1.0.0
+ 1.3.7.alpha.0
+ )
+ end
+ let(:min) { '1.0.0.alpha' }
+ let(:max) { '1.3.7.alpha.0' }
end
# The +Rubygems+ format only produces release and prerelease versions.
- it_has_behavior "filterable" do
- let(:unsorted_version_strings){%w{
- 1.0.0.beta.2
- 1.3.7.alpha.0
- 1.0.0.alpha
- 1.0.0.rc.1
- 1.0.0
- }}
- let(:release_versions){%w{ 1.0.0 }}
- let(:prerelease_versions){%w{
- 1.0.0.beta.2
- 1.3.7.alpha.0
- 1.0.0.alpha
- 1.0.0.rc.1
- }}
+ it_has_behavior 'filterable' do
+ let(:unsorted_version_strings) do
+ %w(
+ 1.0.0.beta.2
+ 1.3.7.alpha.0
+ 1.0.0.alpha
+ 1.0.0.rc.1
+ 1.0.0
+ )
+ end
+ let(:release_versions) { %w(1.0.0) }
+ let(:prerelease_versions) do
+ %w(
+ 1.0.0.beta.2
+ 1.3.7.alpha.0
+ 1.0.0.alpha
+ 1.0.0.rc.1
+ )
+ end
end
+ it_has_behavior 'comparable', [
+ '0.1.0', '0.2.0',
+ '1.0.0.alpha.1', '1.0.0',
+ '1.2.3.alpha', '1.2.3.alpha.1',
+ '2.4.5.alpha', '2.4.5.beta',
+ '3.0.0.beta.1', '3.0.0.rc.1',
+ '3.1.2.rc.42', '3.1.2'
+ ]
end