diff --git a/src/lib/registration/registration.rb b/src/lib/registration/registration.rb index 42d44a47c..90101d0e3 100644 --- a/src/lib/registration/registration.rb +++ b/src/lib/registration/registration.rb @@ -126,6 +126,7 @@ def activated_products # @param [Array] installed_products # @return [Array>] list of possible migrations def migration_products(installed_products) + log.info "Loading migration products for: #{installed_products}" migrations = SUSE::Connect::YaST.system_migrations(installed_products) log.info "Received system migrations: #{migrations}" diff --git a/test/fixtures/installed_sles12_product.yml b/test/fixtures/installed_sles12_product.yml new file mode 100644 index 000000000..1ccb92aa4 --- /dev/null +++ b/test/fixtures/installed_sles12_product.yml @@ -0,0 +1,7 @@ +--- +- !ruby/object:SUSE::Connect::Remote::Product + table: + :arch: x86_64 + :identifier: SLES + :version: '12' + :release_type: DVD diff --git a/test/fixtures/migation_to_sles12_sp1.yml b/test/fixtures/migation_to_sles12_sp1.yml new file mode 100644 index 000000000..c0c40639d --- /dev/null +++ b/test/fixtures/migation_to_sles12_sp1.yml @@ -0,0 +1,7 @@ +--- +- - !ruby/object:SUSE::Connect::Remote::Product + table: + :identifier: SLES + :version: '12.1' + :arch: x86_64 + :release_type: diff --git a/test/registration_spec.rb b/test/registration_spec.rb index 0c24566de..46d45315b 100644 --- a/test/registration_spec.rb +++ b/test/registration_spec.rb @@ -167,4 +167,17 @@ expect { callback.call(false, context) }.to raise_error OpenSSL::X509::CertificateError end end + + describe "#migration_products" do + let(:installed_products) { YAML.load_file(fixtures_file("installed_sles12_product.yml")) } + let(:migration_products) { YAML.load_file(fixtures_file("migation_to_sles12_sp1.yml")) } + + it "returns migration products from the server" do + expect(SUSE::Connect::YaST).to receive(:system_migrations) + .with(installed_products) + .and_return(migration_products) + result = Registration::Registration.new.migration_products(installed_products) + expect(result).to eq(migration_products) + end + end end diff --git a/test/registration_ui_test.rb b/test/registration_ui_test.rb index 6d868354b..1514a840e 100644 --- a/test/registration_ui_test.rb +++ b/test/registration_ui_test.rb @@ -137,4 +137,20 @@ expect(registration_ui.register_addons([addon_legacy], {})).to eq :back end end + + describe "#migration_products" do + let(:installed_products) { YAML.load_file(fixtures_file("installed_sles12_product.yml")) } + let(:migration_products) { YAML.load_file(fixtures_file("migation_to_sles12_sp1.yml")) } + + it "returns migration products from the server with UI feedback" do + allow(Yast::UI).to receive(:OpenDialog) + allow(Yast::UI).to receive(:CloseDialog) + + expect(registration).to receive(:migration_products) + .with(installed_products) + .and_return(migration_products) + + expect(registration_ui.migration_products(installed_products)).to eq(migration_products) + end + end end