Add some parser tests

This commit is contained in:
cn 2013-05-03 21:38:10 +02:00
parent 468e002162
commit 457aec64db
3 changed files with 62 additions and 0 deletions

View File

@ -0,0 +1,23 @@
require 'spec_helper'
describe OpenVPNStatusWeb::Parser::ModernStateless do
{
2 => status_v2,
3 => status_v3
}.each do |version, status|
context "for status-version #{version}" do
it 'parses client list' do
status.client_list.map { |client| client[0] }.should be_eql ["foo", "bar"]
end
it 'parses routing table' do
status.routing_table.map { |route| route[1] }.should be_eql ["foo", "bar", "foo", "bar"]
end
it 'parses global stats' do
status.global_stats.size.should be_eql 1
status.global_stats.first.should be_eql ["Max bcast/mcast queue length", "42"]
end
end
end
end

18
spec/parser/v1_spec.rb Normal file
View File

@ -0,0 +1,18 @@
require 'spec_helper'
describe OpenVPNStatusWeb::Parser::V1 do
def status; status_v1; end
it 'parses client list' do
status.client_list.map { |client| client[0] }.should be_eql ["foo", "bar"]
end
it 'parses routing table' do
status.routing_table.map { |route| route[1] }.should be_eql ["foo", "bar", "foo", "bar"]
end
it 'parses global stats' do
status.global_stats.size.should be_eql 1
status.global_stats.first.should be_eql ["Max bcast/mcast queue length", "42"]
end
end

21
spec/spec_helper.rb Normal file
View File

@ -0,0 +1,21 @@
require 'rubygems'
require 'bundler/setup'
require 'rack/test'
require 'openvpn-status-web'
def status_v1
text = File.open('examples/status.v1', 'rb') do |f| f.read end
OpenVPNStatusWeb::Parser::V1.new.parse_status_log text
end
def status_v2
text = File.open('examples/status.v2', 'rb') do |f| f.read end
OpenVPNStatusWeb::Parser::V2.new.parse_status_log text
end
def status_v3
text = File.open('examples/status.v3', 'rb') do |f| f.read end
OpenVPNStatusWeb::Parser::V3.new.parse_status_log text
end