require File.expand_path '../../test_helper', __dir__ # Test class for Network Security Group Model class TestNetworkSecurityGroup < Minitest::Test def setup @service = Fog::Network::AzureRM.new(credentials) @client = @service.instance_variable_get(:@network_client) @network_security_group = network_security_group(@service) @response = ApiStub::Models::Network::NetworkSecurityGroup.create_network_security_group_response(@client) end def test_model_methods methods = [ :save, :destroy, :update_security_rules, :add_security_rules, :remove_security_rule ] methods.each do |method| assert @network_security_group.respond_to? method end end def test_model_attributes attributes = [ :name, :id, :resource_group, :location, :network_interfaces_ids, :subnets_ids, :security_rules, :default_security_rules ] attributes.each do |attribute| assert_respond_to @network_security_group, attribute end end def test_save_method_response @service.stub :create_or_update_network_security_group, @response do assert_instance_of Fog::Network::AzureRM::NetworkSecurityGroup, @network_security_group.save end end def test_destroy_method_response @service.stub :delete_network_security_group, true do assert @network_security_group.destroy end end def test_update_method_response @service.stub :create_or_update_network_security_group, @response do assert_instance_of Fog::Network::AzureRM::NetworkSecurityGroup, @network_security_group.update_security_rules( security_rules: [ { name: 'testRule', protocol: 'tcp', source_port_range: '*', destination_port_range: '*', source_address_prefix: '0.0.0.0/0', destination_address_prefix: '0.0.0.0/0', access: 'Allow', priority: '100', direction: 'Inbound' } ] ) end end def test_add_security_rules_method_response @service.stub :add_security_rules, @response do assert_instance_of Fog::Network::AzureRM::NetworkSecurityGroup, @network_security_group.add_security_rules(ApiStub::Models::Network::NetworkSecurityGroup.security_rules_array) end end def test_remove_security_rule_method_response @service.stub :remove_security_rule, @response do assert_instance_of Fog::Network::AzureRM::NetworkSecurityGroup, @network_security_group.remove_security_rule('myNsRule') end end end