Sha256: c13a97d37f767cfeb90d2fe08d5d91f362baf23402a06f1fd081f3fd40860326

Contents?: true

Size: 1.1 KB

Versions: 10

Compression:

Stored size: 1.1 KB

Contents

require 'dm-core'
require 'dm-migrations'
require 'slf4r/ruby_logger'
require 'ixtlan/audit/manager'

class Audit
  include DataMapper::Resource

  property :id, Serial

  property :login, String
  property :message, String

  property :created_at, DateTime

  before :save do
    self.created_at = DateTime.now
  end
end

class Fixnum
  def days
    self
  end
  def ago
    DateTime.now - 86000 * self
  end
end
DataMapper.setup(:default, "sqlite3::memory:")
DataMapper.finalize
DataMapper.repository.auto_migrate!

describe Ixtlan::Audit::Manager do

  it 'should collect log events and the save them all in one go' do
    size = Audit.all.size
    subject.push("msg1", "login1")
    subject.push("msg2", "login2")
    subject.push("msg3", "login3")
    subject.save_all

    Audit.all.size.should == size + 3
  end

  it "should clean up audit logs" do
    Audit.create(:message => "msg", :login => "login")
    Audit.all.size.should > 0
    subject.keep_logs = 0
    Audit.all.size.should == 0
    subject.push("msg", "login")
    subject.push("msg", "login")
    subject.save_all
    Audit.all.size.should == 2
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ixtlan-audit-0.4.3 lib/ixtlan/audit/audit_resource.rb~
ixtlan-audit-0.4.2 lib/ixtlan/audit/audit_resource.rb~
ixtlan-audit-0.4.1 lib/ixtlan/audit/audit_resource.rb~
ixtlan-audit-0.4.0 lib/ixtlan/audit/audit_resource.rb~
ixtlan-audit-0.3.3 lib/ixtlan/audit/audit_resource.rb~
ixtlan-audit-0.3.2 lib/ixtlan/audit/audit_resource.rb~
ixtlan-audit-0.3.1 lib/ixtlan/audit/audit_resource.rb~
ixtlan-audit-0.3.0 lib/ixtlan/audit/audit_resource.rb~
ixtlan-audit-0.2.1 spec/audit_manager_spec.rb
ixtlan-audit-0.2.0 spec/audit_manager_spec.rb