# encoding: UTF-8 require 'spec_helper' describe Vulnerability do describe '#new' do subject(:vulnerability) { Vulnerability.new(title, type, references, modules) } let(:title) { 'A vulnerability title' } let(:type) { 'XSS' } let(:references) { %w{http://ref1.com http://ref2.com} } context 'w/o metasploit modules argument' do subject(:vulnerability) { Vulnerability.new(title, type, references) } its(:title) { should be title } its(:references) { should be references } its(:type) { should be type } its(:metasploit_modules) { should be_empty } end context 'with metasploit modules argument' do let(:modules) { %w{exploit/some_exploit exploit/unix/anotherone } } its(:metasploit_modules) { should be modules } end end describe '::load_from_xml_node' do subject(:vulnerability) { Vulnerability.load_from_xml_node(node) } let(:node) { xml(MODELS_FIXTURES + '/vulnerability/xml_node.xml').xpath('//vulnerability') } its(:title) { should == 'Vuln Title' } its(:type) { should == 'CSRF' } its(:references) { should == ['Ref 1', 'Ref 2'] } its(:metasploit_modules) { should == %w{exploit/ex1} } end end