Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #839 from cfcosta/mw-os-disable-cmds2-refactor
Refactor MiddlewareServerAction#visible? (cherry picked from commit 00983f5)
- Loading branch information
Showing
6 changed files
with
52 additions
and
113 deletions.
There are no files selected for viewing
9 changes: 1 addition & 8 deletions
9
app/helpers/application_helper/button/middleware_domain_server_action.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,5 @@ | ||
class ApplicationHelper::Button::MiddlewareDomainServerAction < ApplicationHelper::Button::MiddlewareServerAction | ||
|
||
def visible? | ||
in_domain? && super | ||
end | ||
|
||
private | ||
|
||
def in_domain? | ||
@record.present? && (@record.try(:in_domain?) || @record.try(:middleware_server).try(:in_domain?)) | ||
@record.try(:in_domain?) | ||
end | ||
end |
15 changes: 1 addition & 14 deletions
15
app/helpers/application_helper/button/middleware_server_action.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,5 @@ | ||
class ApplicationHelper::Button::MiddlewareServerAction < ApplicationHelper::Button::Basic | ||
|
||
def visible? | ||
@record.present? && !hawkular? && !immutable? | ||
end | ||
|
||
private | ||
|
||
def immutable? | ||
properties = @record.try(:properties) | ||
properties.nil? ? false : properties['Immutable'] == 'true' | ||
end | ||
|
||
def hawkular? | ||
@record.try(:product) == 'Hawkular' || | ||
@record.try(:middleware_server).try(:product) == 'Hawkular' | ||
@record.try(:mutable?) | ||
end | ||
end |
9 changes: 1 addition & 8 deletions
9
app/helpers/application_helper/button/middleware_standalone_server_action.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,5 @@ | ||
class ApplicationHelper::Button::MiddlewareStandaloneServerAction < ApplicationHelper::Button::MiddlewareServerAction | ||
|
||
def visible? | ||
!in_domain? && super | ||
end | ||
|
||
private | ||
|
||
def in_domain? | ||
@record.present? && (@record.try(:in_domain?) || @record.try(:middleware_server).try(:in_domain?)) | ||
!@record.try(:in_domain?) && super | ||
end | ||
end |
37 changes: 14 additions & 23 deletions
37
spec/helpers/application_helper/buttons/middleware_action_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,21 @@ | ||
describe ApplicationHelper::Button::MiddlewareServerAction do | ||
subject { described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) } | ||
let(:record) { double("MiddlewareServer") } | ||
subject(:action) { described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) } | ||
|
||
describe '#visible?' do | ||
let(:record) { FactoryGirl.create(middleware, :product => product) } | ||
context 'when record respond_to?(:product)' do | ||
let(:middleware) { :middleware_server } | ||
context 'and product is Hawkular' do | ||
let(:product) { 'Hawkular' } | ||
it { expect(subject.visible?).to be_falsey } | ||
end | ||
context 'and product is not Hawkular' do | ||
let(:product) { nil } | ||
it { expect(subject.visible?).to be_truthy } | ||
end | ||
it 'is true if record is mutable' do | ||
allow(record).to receive(:mutable?) { true } | ||
expect(action).to be_visible | ||
end | ||
context 'when record does not respond_to?(:product)' do | ||
let(:record) { FactoryGirl.create(:middleware_datasource, :middleware_server => server) } | ||
let(:server) { FactoryGirl.create(:middleware_server, :product => product) } | ||
context 'and its middleware server returns Hawkular' do | ||
let(:product) { 'Hawkular' } | ||
it { expect(subject.visible?).to be_falsey } | ||
end | ||
context 'and its middleware server does not return Hawkular' do | ||
let(:product) { nil } | ||
it { expect(subject.visible?).to be_truthy } | ||
end | ||
|
||
it 'is false if record is immutable' do | ||
allow(record).to receive(:mutable?) { false } | ||
expect(action).not_to be_visible | ||
end | ||
|
||
it 'is false if record is nil' do | ||
action = described_class.new(setup_view_context_with_sandbox({}), {}, {}, {}) | ||
expect(action).not_to be_visible | ||
end | ||
end | ||
end |
38 changes: 16 additions & 22 deletions
38
spec/helpers/application_helper/buttons/middleware_domain_server_action_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,23 @@ | ||
describe ApplicationHelper::Button::MiddlewareDomainServerAction do | ||
let(:server) { FactoryGirl.create(:middleware_server, :middleware_server_group => group) } | ||
subject { described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) } | ||
let(:record) { double("MiddlewareServer") } | ||
subject(:action) { described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) } | ||
|
||
describe '#visible?' do | ||
context 'when record responds to #in_domain?' do | ||
let(:record) { server } | ||
context 'when server.in_domain? == true' do | ||
let(:group) { FactoryGirl.create(:middleware_server_group) } | ||
it { expect(subject.visible?).to be_truthy } | ||
end | ||
context 'when server.in_domain? == false' do | ||
let(:group) { nil } | ||
it { expect(subject.visible?).to be_falsey } | ||
end | ||
it 'is true if server is in domain' do | ||
allow(record).to receive(:in_domain?) { true } | ||
|
||
expect(action).to be_visible | ||
end | ||
context 'when record does not respond to #in_domain?' do | ||
let(:record) { FactoryGirl.create(:middleware_deployment, :middleware_server => server) } | ||
context 'when server.in_domain? == true' do | ||
let(:group) { FactoryGirl.create(:middleware_server_group) } | ||
it { expect(subject.visible?).to be_truthy } | ||
end | ||
context 'when server.in_domain? == false' do | ||
let(:group) { nil } | ||
it { expect(subject.visible?).to be_falsey } | ||
end | ||
|
||
it 'is false if server is not in domain' do | ||
allow(record).to receive(:in_domain?) { false } | ||
|
||
expect(action).not_to be_visible | ||
end | ||
|
||
it 'is false if record is nil' do | ||
action = described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) | ||
expect(action).not_to be_visible | ||
end | ||
end | ||
end |
57 changes: 19 additions & 38 deletions
57
spec/helpers/application_helper/buttons/middleware_standalone_server_action_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,31 @@ | ||
describe ApplicationHelper::Button::MiddlewareStandaloneServerAction do | ||
let(:server) { FactoryGirl.create(:middleware_server, :middleware_server_group => group) } | ||
subject { described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) } | ||
let(:record) { double("MiddlewareServer") } | ||
subject(:action) { described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) } | ||
|
||
describe '#visible?' do | ||
context 'when record responds to #in_domain?' do | ||
let(:record) { server } | ||
context 'when server.in_domain? == true' do | ||
let(:group) { FactoryGirl.create(:middleware_server_group) } | ||
it { expect(subject.visible?).to be_falsey } | ||
end | ||
context 'when server.in_domain? == false' do | ||
let(:group) { nil } | ||
it { expect(subject.visible?).to be_truthy } | ||
end | ||
it 'is true if record it not in domain and is mutable' do | ||
allow(record).to receive(:in_domain?) { false } | ||
allow(record).to receive(:mutable?) { true } | ||
|
||
expect(action).to be_visible | ||
end | ||
|
||
context 'when record responds to #immutable?' do | ||
def create_immutable(value) | ||
{'Immutable' => value.to_s } | ||
end | ||
it 'is false if record is in domain' do | ||
allow(record).to receive(:in_domain?) { true } | ||
|
||
expect(action).not_to be_visible | ||
end | ||
|
||
context 'when server.properties.immutable? == true' do | ||
let(:immutable_server) { FactoryGirl.create(:middleware_server, :properties => create_immutable(true)) } | ||
let(:record) { immutable_server } | ||
subject { described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) } | ||
it { expect(subject).not_to be_visible } | ||
end | ||
it 'is false if record is not in domain but it is immutable' do | ||
allow(record).to receive(:in_domain?) { false } | ||
allow(record).to receive(:mutable?) { false } | ||
|
||
context 'when server.properties.immutable? == false' do | ||
let(:mutable_server) { FactoryGirl.create(:middleware_server, :properties => create_immutable(false)) } | ||
let(:record) { mutable_server } | ||
subject { described_class.new(setup_view_context_with_sandbox({}), {}, {'record' => record}, {}) } | ||
it { expect(subject).to be_visible } | ||
end | ||
expect(action).not_to be_visible | ||
end | ||
|
||
context 'when record does not respond to #in_domain?' do | ||
let(:record) { FactoryGirl.create(:middleware_deployment, :middleware_server => server) } | ||
context 'when server.in_domain? == true' do | ||
let(:group) { FactoryGirl.create(:middleware_server_group) } | ||
it { expect(subject.visible?).to be_falsey } | ||
end | ||
context 'when server.in_domain? == false' do | ||
let(:group) { nil } | ||
it { expect(subject.visible?).to be_truthy } | ||
end | ||
it 'is false if record is nil' do | ||
action = described_class.new(setup_view_context_with_sandbox({}), {}, {}, {}) | ||
expect(action).not_to be_visible | ||
end | ||
end | ||
end |