indy 0.4.0.pre → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,29 +12,29 @@ describe 'Indy' do
12
12
  end
13
13
 
14
14
  it "should be returned by #for search" do
15
- @entry_struct.should be_kind_of Struct::Entry
15
+ expect(@entry_struct).to be_kind_of Struct::Entry
16
16
  end
17
17
 
18
18
  it "should contain entire log entry as :raw_entry" do
19
- @entry_struct.raw_entry.should == "2000-09-07 14:07:42 DEBUG MyApp - Initializing APPLICATION."
19
+ expect(@entry_struct.raw_entry).to eq("2000-09-07 14:07:42 DEBUG MyApp - Initializing APPLICATION.")
20
20
  end
21
21
 
22
22
  context 'using Indy::DEFAULT_LOG_FORMAT' do
23
23
 
24
24
  it "should contain :time" do
25
- @entry_struct.time.should == "2000-09-07 14:07:42"
25
+ expect(@entry_struct.time).to eq("2000-09-07 14:07:42")
26
26
  end
27
27
 
28
28
  it "should contain :severity" do
29
- @entry_struct.severity.should == "DEBUG"
29
+ expect(@entry_struct.severity).to eq("DEBUG")
30
30
  end
31
31
 
32
32
  it "should contain :application" do
33
- @entry_struct.application.should == "MyApp"
33
+ expect(@entry_struct.application).to eq("MyApp")
34
34
  end
35
35
 
36
36
  it "should contain :message" do
37
- @entry_struct.message.should == "Initializing APPLICATION."
37
+ expect(@entry_struct.message).to eq("Initializing APPLICATION.")
38
38
  end
39
39
 
40
40
  end
@@ -11,25 +11,25 @@ describe 'Indy::LogDefinition' do
11
11
  end
12
12
 
13
13
  it "should set entry_regexp" do
14
- @ld.entry_regexp.should eq /foo/
14
+ expect(@ld.entry_regexp).to eq /foo/
15
15
  end
16
16
 
17
17
  it "should set entry_fields" do
18
- @ld.entry_fields.should eq [:field_one]
18
+ expect(@ld.entry_fields).to eq [:field_one]
19
19
  end
20
20
 
21
21
  it "should set time_format" do
22
- @ld.time_format.should eq '%M-%d-%Y'
22
+ expect(@ld.time_format).to eq '%M-%d-%Y'
23
23
  end
24
24
 
25
25
  end
26
26
 
27
27
  it "should raise ArgumentError when missing entry_fields" do
28
- lambda{ Indy::LogDefinition.new(:entry_regexp => /foo/) }.should raise_error ArgumentError
28
+ expect{ Indy::LogDefinition.new(:entry_regexp => /foo/) }.to raise_error ArgumentError
29
29
  end
30
30
 
31
31
  it "should raise ArgumentError when missing entry_regexp" do
32
- lambda{ Indy::LogDefinition.new(:entry_fields => [:field_one]) }.should raise_error ArgumentError
32
+ expect{ Indy::LogDefinition.new(:entry_fields => [:field_one]) }.to raise_error ArgumentError
33
33
  end
34
34
 
35
35
  end
@@ -46,13 +46,13 @@ describe 'Indy::LogDefinition' do
46
46
  context "#parse_entry" do
47
47
 
48
48
  it "should return a hash" do
49
- @ld.send(:parse_entry, "2000-09-07 INFO The message!").class.should == Hash
49
+ expect(@ld.send(:parse_entry, "2000-09-07 INFO The message!").class).to eq(Hash)
50
50
  end
51
51
 
52
52
  it "should return correct key/value pairs" do
53
53
  hash = @ld.send(:parse_entry, "2000-09-07 INFO The message!")
54
- hash[:time].should == "2000-09-07"
55
- hash[:message].should == "The message!"
54
+ expect(hash[:time]).to eq("2000-09-07")
55
+ expect(hash[:message]).to eq("The message!")
56
56
  end
57
57
 
58
58
  end
@@ -60,13 +60,13 @@ describe 'Indy::LogDefinition' do
60
60
  context "#parse_entry_captures" do
61
61
 
62
62
  it "should return a hash" do
63
- @ld.send(:parse_entry_captures, @field_captures).class.should == Hash
63
+ expect(@ld.send(:parse_entry_captures, @field_captures).class).to eq(Hash)
64
64
  end
65
65
 
66
66
  it "should contain key/value pairs" do
67
67
  hash = @ld.send(:parse_entry_captures, @field_captures)
68
- hash[:time].should == "2000-09-07"
69
- hash[:message].should == "The message!"
68
+ expect(hash[:time]).to eq("2000-09-07")
69
+ expect(hash[:message]).to eq("The message!")
70
70
  end
71
71
 
72
72
  end
@@ -2,26 +2,36 @@ require "#{File.dirname(__FILE__)}/helper"
2
2
 
3
3
  describe Indy do
4
4
 
5
- context "log format can be set to" do
5
+ context "log format" do
6
6
 
7
- it 'Indy::COMMON_LOG_FORMAT' do
7
+ it 'can be set to Indy::COMMON_LOG_FORMAT' do
8
8
  source = ["127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb1.gif HTTP/1.0\" 200 2326",
9
- "127.0.0.1 - frank [10/Oct/2000:13:55:37 -0700] \"GET /apache_pb1.gif HTTP/1.0\" 200 2326",
10
- "127.0.0.1 - louie [10/Oct/2000:13:55:37 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2327",
11
- "127.0.0.1 - frank [10/Oct/2000:13:55:38 -0700] \"GET /apache_pb3.gif HTTP/1.0\" 404 300"].join("\n")
9
+ "127.0.0.1 - frank [10/Oct/2000:13:55:37 -0700] \"GET /apache_pb1.gif HTTP/1.0\" 200 2326",
10
+ "127.0.0.1 - louie [10/Oct/2000:13:55:37 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2327",
11
+ "127.0.0.1 - frank [10/Oct/2000:13:55:38 -0700] \"GET /apache_pb3.gif HTTP/1.0\" 404 300"].join("\n")
12
12
  indy = Indy.new(:source => source).with(Indy::COMMON_LOG_FORMAT)
13
13
  result = indy.for(:authuser => 'louie')
14
- result.length.should == 1
14
+ expect(result.length).to eq(1)
15
+ end
16
+
17
+ it 'configuration can be set using: Indy.search(string).with(FORMAT_CLASS)' do
18
+ source = ["127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb1.gif HTTP/1.0\" 200 2326",
19
+ "127.0.0.1 - frank [10/Oct/2000:13:55:37 -0700] \"GET /apache_pb1.gif HTTP/1.0\" 200 2326",
20
+ "127.0.0.1 - louie [10/Oct/2000:13:55:37 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2327",
21
+ "127.0.0.1 - frank [10/Oct/2000:13:55:38 -0700] \"GET /apache_pb3.gif HTTP/1.0\" 404 300"].join("\n")
22
+ indy = Indy.search(source).with(Indy::COMMON_LOG_FORMAT)
23
+ result = indy.for(:authuser => 'louie')
24
+ expect(result.length).to eq(1)
15
25
  end
16
26
 
17
27
  it 'Indy::COMBINED_LOG_FORMAT' do
18
28
  source = ["127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb1.gif HTTP/1.0\" 200 2326 \"http://www.example.com/start.html\" \"Mozilla/4.08 [en] (Win98; I ;Nav)\"",
19
29
  "127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb1.gif HTTP/1.0\" 200 2326 \"http://www.example.com/start.html\" \"Mozilla/4.08 [en] (Win98; I ;Nav)\"",
20
- "127.0.0.1 - louie [10/Oct/2000:13:55:37 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2327 \"http://www.example.com/start.html\" \"Mozilla/4.08 [en] (Win98; I ;Nav)\"",
21
- "127.0.0.1 - frank [10/Oct/2000:13:55:38 -0700] \"GET /apache_pb3.gif HTTP/1.0\" 404 300 \"http://www.example.com/start.html\" \"Mozilla/4.08 [en] (Win98; I ;Nav)\""].join("\n")
30
+ "127.0.0.2 - louie [10/Oct/2000:13:55:37 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2327 \"http://www.example.com/start.html\" \"Mozilla/4.08 [en] (Win98; I ;Nav)\"",
31
+ "127.0.0.3 - frank [10/Oct/2000:13:55:38 -0700] \"GET /apache_pb3.gif HTTP/1.0\" 404 300 \"http://www.example.com/start.html\" \"Mozilla/4.08 [en] (Win98; I ;Nav)\""].join("\n")
22
32
  indy = Indy.new(:source => source).with(Indy::COMBINED_LOG_FORMAT)
23
33
  result = indy.for(:authuser => 'louie')
24
- result.length.should == 1
34
+ expect(result.length).to eq(1)
25
35
  end
26
36
 
27
37
  it 'Indy::LOG4R_DEFAULT_FORMAT' do
@@ -34,7 +44,7 @@ describe Indy do
34
44
  indy = Indy.new(:source => source)
35
45
  indy.with(Indy::LOG4R_DEFAULT_FORMAT)
36
46
  result = indy.for(:application => 'louie')
37
- result.length.should == 1
47
+ expect(result.length).to eq(1)
38
48
  end
39
49
 
40
50
  it 'Indy::LOG4J_DEFAULT_FORMAT' do
@@ -45,7 +55,7 @@ describe Indy do
45
55
  "This is a message with level ERROR",
46
56
  "This is a message with level FATAL"].join("\n")
47
57
  indy = Indy.new(:source => source).with(Indy::LOG4J_DEFAULT_FORMAT)
48
- indy.all.length.should == 5
58
+ expect(indy.all.length).to eq(5)
49
59
  end
50
60
 
51
61
  end
@@ -61,10 +71,12 @@ describe Indy do
61
71
  at org.apache.log4j.examples.Sort.main(Sort.java:64)
62
72
  467 [main] INFO org.apache.log4j.examples.Sort - Exiting main method."
63
73
 
64
- Indy.new( :source => log_data,
74
+ result = Indy.new( :source => log_data,
65
75
  :entry_regexp => /^(\d{3})\s+\[(\S+)\]\s+(\S+)\s+(\S+)\s*([^-]*)\s*-\s+(.+?)(?=\n\d{3}|\Z)/m,
66
76
  :entry_fields => [:time, :thread, :level, :category, :diagnostic, :message]
67
- ).class.should == Indy
77
+ )
78
+ expect(result.class).to eq(Indy)
79
+ expect(result.all.first.level).to eq('INFO')
68
80
  end
69
81
 
70
82
  end
@@ -13,13 +13,13 @@ describe Indy do
13
13
  end
14
14
 
15
15
  it "should return all entries" do
16
- @indy.all.length.should == 3
16
+ expect(@indy.all.length).to eq(3)
17
17
  end
18
18
 
19
19
  it "should search entire string on each successive search" do
20
- @indy.for(:application => 'MyApp').length.should == 2
21
- @indy.for(:severity => 'INFO').length.should == 3
22
- @indy.for(:application => 'MyApp').length.should == 2
20
+ expect(@indy.for(:application => 'MyApp').length).to eq(2)
21
+ expect(@indy.for(:severity => 'INFO').length).to eq(3)
22
+ expect(@indy.for(:application => 'MyApp').length).to eq(2)
23
23
  end
24
24
 
25
25
  end
@@ -38,20 +38,20 @@ describe Indy do
38
38
  end
39
39
 
40
40
  it "should return 2 records" do
41
- @indy.for(:application => 'MyApp').length.should == 2
41
+ expect(@indy.for(:application => 'MyApp').length).to eq(2)
42
42
  end
43
43
 
44
44
  it "should search entire file on each successive search" do
45
- @indy.for(:application => 'MyApp').length.should == 2
46
- @indy.for(:severity => 'INFO').length.should == 3
47
- @indy.for(:application => 'MyApp').length.should == 2
45
+ expect(@indy.for(:application => 'MyApp').length).to eq(2)
46
+ expect(@indy.for(:severity => 'INFO').length).to eq(3)
47
+ expect(@indy.for(:application => 'MyApp').length).to eq(2)
48
48
  end
49
49
 
50
50
  it "should search reopened file on each successive search" do
51
- @indy.for(:application => 'MyApp').length.should == 2
51
+ expect(@indy.for(:application => 'MyApp').length).to eq(2)
52
52
  @file.write("\n2000-09-07 14:10:55 INFO MyApp - really really Exiting APPLICATION.\n")
53
53
  @file.flush
54
- @indy.for(:application => 'MyApp').length.should == 3
54
+ expect(@indy.for(:application => 'MyApp').length).to eq(3)
55
55
  end
56
56
 
57
57
  end
@@ -75,16 +75,16 @@ describe Indy do
75
75
 
76
76
  it "should return 2 records" do
77
77
  results = @indy.for(:application => 'MyApp')
78
- results.length.should == 2
78
+ expect(results.length).to eq(2)
79
79
  end
80
80
 
81
81
  it "should execute cmd on each successive search" do
82
- @indy.for(:application => 'MyApp').length.should == 2
83
- @indy.for(:severity => 'INFO').length.should == 3
82
+ expect(@indy.for(:application => 'MyApp').length).to eq(2)
83
+ expect(@indy.for(:severity => 'INFO').length).to eq(3)
84
84
  @file.write("\n2000-09-07 14:10:55 DEBUG MyApp - really really Exiting APPLICATION.\n")
85
85
  @file.flush
86
- @indy.for(:application => 'MyApp').length.should == 3
87
- @indy.for(:severity => 'INFO').length.should == 3
86
+ expect(@indy.for(:application => 'MyApp').length).to eq(3)
87
+ expect(@indy.for(:severity => 'INFO').length).to eq(3)
88
88
  end
89
89
 
90
90
  end
@@ -7,42 +7,42 @@ class Indy
7
7
  context "#new" do
8
8
 
9
9
  it "should raise without parameter" do
10
- lambda{ Source.new }.should raise_error( ArgumentError )
10
+ expect{ Source.new }.to raise_error( ArgumentError )
11
11
  end
12
12
 
13
13
  it "should raise with nil parameter" do
14
- lambda{ Source.new(nil) }.should raise_error( Indy::Source::Invalid )
14
+ expect{ Source.new(nil) }.to raise_error( Indy::Source::Invalid )
15
15
  end
16
16
 
17
17
  it "should raise with bad parameter" do
18
18
  class NotString;end
19
- lambda{ Source.new(NotString.new) }.should raise_error( Indy::Source::Invalid )
19
+ expect{ Source.new(NotString.new) }.to raise_error( Indy::Source::Invalid )
20
20
  end
21
21
 
22
22
  it "should raise if #execute_command returns empty string" do
23
- IO.stub!(:popen).and_return('')
24
- lambda{ Source.new(:cmd => 'a faux command').open }.should raise_error(Indy::Source::Invalid)
23
+ allow(IO).to receive(:popen).and_return('')
24
+ expect{ Source.new(:cmd => 'a faux command').open }.to raise_error(Indy::Source::Invalid)
25
25
  end
26
26
 
27
27
  it "should return Indy::Source object" do
28
- Source.new('logdata').class.should == Indy::Source
28
+ expect(Source.new('logdata').class).to eq(Indy::Source)
29
29
  end
30
30
 
31
31
  it "should respond to :open" do
32
- Source.new('logdata').should respond_to(:open)
32
+ expect(Source.new('logdata')).to respond_to(:open)
33
33
  end
34
34
 
35
35
  it "should respond to :num_entries" do
36
- Source.new('logdata').should respond_to(:num_entries)
36
+ expect(Source.new('logdata')).to respond_to(:num_entries)
37
37
  end
38
38
 
39
39
  it "should respond to :entries" do
40
- Source.new('logdata').should respond_to(:entries)
40
+ expect(Source.new('logdata')).to respond_to(:entries)
41
41
  end
42
42
 
43
43
  it "should handle Files" do
44
44
  require 'tempfile'
45
- Source.new(Tempfile.new('x')).class.should == Indy::Source
45
+ expect(Source.new(Tempfile.new('x')).class).to eq(Indy::Source)
46
46
  end
47
47
 
48
48
  end
@@ -58,16 +58,16 @@ class Indy
58
58
  end
59
59
 
60
60
  it "should return StringIO from :open" do
61
- @source.open.class.should == Array
61
+ expect(@source.open.class).to eq(Array)
62
62
  end
63
63
 
64
64
  it "should return entries array from :entries" do
65
- @source.entries.class.should == Array
66
- @source.entries.length.should == 3
65
+ expect(@source.entries.class).to eq(Array)
66
+ expect(@source.entries.length).to eq(3)
67
67
  end
68
68
 
69
69
  it "should return 3 from :num_entries" do
70
- @source.num_entries.should == 3
70
+ expect(@source.num_entries).to eq(3)
71
71
  end
72
72
 
73
73
  end
@@ -75,18 +75,18 @@ class Indy
75
75
  it "should handle a :file hash key with File object value" do
76
76
  require 'tempfile'
77
77
  file = Tempfile.new('x')
78
- Source.new(:file => file).class.should == Indy::Source
78
+ expect(Source.new(:file => file).class).to eq(Indy::Source)
79
79
  end
80
80
 
81
81
  it "should handle a bare File object" do
82
82
  require 'tempfile'
83
83
  file = Tempfile.new('y')
84
- Source.new(file).class.should == Indy::Source
84
+ expect(Source.new(file).class).to eq(Indy::Source)
85
85
  end
86
86
 
87
87
  it "should handle a real file" do
88
88
  log_file = "#{File.dirname(__FILE__)}/data.log"
89
- Indy.search(:file => File.open(log_file, 'r')).for(:application => 'MyApp').length.should == 2
89
+ expect(Indy.search(:file => File.open(log_file, 'r')).for(:application => 'MyApp').length).to eq(2)
90
90
  end
91
91
 
92
92
  end
@@ -17,19 +17,19 @@ describe Indy do
17
17
  context "after method" do
18
18
 
19
19
  it "should find the correct entries" do
20
- @indy.after(:time => '2000-09-07 14:07:42').all.length.should == 3
20
+ expect(@indy.after(:time => '2000-09-07 14:07:42').all.length).to eq(3)
21
21
  end
22
22
 
23
23
  it "should find 0 entries with a time that is past the log" do
24
- @indy.after(:time => '2000-09-07 14:07:46').all.length.should == 0
24
+ expect(@indy.after(:time => '2000-09-07 14:07:46').all.length).to eq(0)
25
25
  end
26
26
 
27
27
  it "should find all entries with a time that is before the log" do
28
- @indy.after(:time => '2000-09-07 14:07:40').all.length.should == 5
28
+ expect(@indy.after(:time => '2000-09-07 14:07:40').all.length).to eq(5)
29
29
  end
30
30
 
31
31
  it "should find entries using inclusive" do
32
- @indy.after(:time => '2000-09-07 14:07:42', :inclusive => true).all.length.should == 4
32
+ expect(@indy.after(:time => '2000-09-07 14:07:42', :inclusive => true).all.length).to eq(4)
33
33
  end
34
34
 
35
35
  end
@@ -37,19 +37,19 @@ describe Indy do
37
37
  context "before method" do
38
38
 
39
39
  it "should find the correct entries" do
40
- @indy.before(:time => '2000-09-07 14:07:44').all.length.should == 3
40
+ expect(@indy.before(:time => '2000-09-07 14:07:44').all.length).to eq(3)
41
41
  end
42
42
 
43
43
  it "should find 0 entries with a time that is before the log" do
44
- @indy.before(:time => '2000-09-07 14:07:40').all.length.should == 0
44
+ expect(@indy.before(:time => '2000-09-07 14:07:40').all.length).to eq(0)
45
45
  end
46
46
 
47
47
  it "should find all entries with a time that is after the log" do
48
- @indy.before(:time => '2000-09-07 14:07:47').all.length.should == 5
48
+ expect(@indy.before(:time => '2000-09-07 14:07:47').all.length).to eq(5)
49
49
  end
50
50
 
51
51
  it "should find entries using inclusive" do
52
- @indy.before(:time => '2000-09-07 14:07:44', :inclusive => true).all.length.should == 4
52
+ expect(@indy.before(:time => '2000-09-07 14:07:44', :inclusive => true).all.length).to eq(4)
53
53
  end
54
54
 
55
55
  end
@@ -57,11 +57,11 @@ describe Indy do
57
57
  context "within method" do
58
58
 
59
59
  it "should find the correct entries" do
60
- @indy.within(:start_time => '2000-09-07 14:07:41', :end_time => '2000-09-07 14:07:43').all.length.should == 1
60
+ expect(@indy.within(:start_time => '2000-09-07 14:07:41', :end_time => '2000-09-07 14:07:43').all.length).to eq(1)
61
61
  end
62
62
 
63
63
  it "should find the correct entries using inclusive" do
64
- @indy.within(:start_time => '2000-09-07 14:07:41', :end_time => '2000-09-07 14:07:43', :inclusive => true).all.length.should == 3
64
+ expect(@indy.within(:start_time => '2000-09-07 14:07:41', :end_time => '2000-09-07 14:07:43', :inclusive => true).all.length).to eq(3)
65
65
  end
66
66
 
67
67
  end
@@ -82,19 +82,19 @@ describe Indy do
82
82
  end
83
83
 
84
84
  it "using after should find the correct entries" do
85
- @indy.after(:time => '2000-09-07 14:07:42', :span => 1).all.length.should == 1
85
+ expect(@indy.after(:time => '2000-09-07 14:07:42', :span => 1).all.length).to eq(1)
86
86
  end
87
87
 
88
88
  it "using before should find the correct entries" do
89
- @indy.before(:time => '2000-09-07 14:12:00', :span => 4).all.length.should == 4
89
+ expect(@indy.before(:time => '2000-09-07 14:12:00', :span => 4).all.length).to eq(4)
90
90
  end
91
91
 
92
92
  it "using around should find the correct entries" do
93
- @indy.around(:time => '2000-09-07 14:11:00', :span => 2).all.length.should == 2
93
+ expect(@indy.around(:time => '2000-09-07 14:11:00', :span => 2).all.length).to eq(2)
94
94
  end
95
95
 
96
96
  it "using after and inclusive should find the correct entries" do
97
- @indy.after(:time => '2000-09-07 14:07:41', :span => 2, :inclusive => true).all.length.should == 3
97
+ expect(@indy.after(:time => '2000-09-07 14:07:41', :span => 2, :inclusive => true).all.length).to eq(3)
98
98
  end
99
99
 
100
100
  end
@@ -113,14 +113,14 @@ describe Indy do
113
113
 
114
114
  # Issue #3 (by design) assumed that the time scope.
115
115
  it "should each add scope criteria to the instance" do
116
- @indy.after(:time => '2000-09-07 14:07:42').all.length.should == 3
117
- @indy.before(:time => '2000-09-07 14:07:45').all.length.should == 2
116
+ expect(@indy.after(:time => '2000-09-07 14:07:42').all.length).to eq(3)
117
+ expect(@indy.before(:time => '2000-09-07 14:07:45').all.length).to eq(2)
118
118
  end
119
119
 
120
120
  it "should specify the entire scope if #reset_scope was called" do
121
- @indy.after(:time => '2000-09-07 14:07:42').all.length.should == 3
121
+ expect(@indy.after(:time => '2000-09-07 14:07:42').all.length).to eq(3)
122
122
  @indy.reset_scope
123
- @indy.before(:time => '2000-09-07 14:07:45').all.length.should == 4
123
+ expect(@indy.before(:time => '2000-09-07 14:07:45').all.length).to eq(4)
124
124
  end
125
125
 
126
126
  end
@@ -128,35 +128,40 @@ describe Indy do
128
128
  context "explicit time format" do
129
129
 
130
130
  before(:each) do
131
- pattern = "^([^\s]+) (.*)$"
132
- @indy = Indy.new(:time_format => '%m-%d-%Y',
133
- :source => "1-13-2002 message\n1-14-2002 another message\n1-15-2002 another message",
134
- :log_format => [pattern, :time, :message])
131
+ @indy = Indy.new(
132
+ :time_format => '[%m %d %Y]',
133
+ :source => "[1 13 2002] message\n[1 14 2002] another message\n[1 15 2002] another message",
134
+ :entry_regexp => "^(\\[.+\\]) (.*)$",
135
+ :entry_fields => [:time, :message])
135
136
  end
136
137
 
137
- it "should search within time scope using a different format than explicitly set" do
138
- pending 'Flexible time date time formatting is not implemented'
139
- @indy.after(:time => 'Jan 13 2002').all.length.should == 2
140
- @indy.after(:time => 'Jan 14 2002').all.last._time.mday.should == 15
138
+ it "using before finds correct number of entries" do
139
+ expect(@indy.before(:time => '[1 14 2002]').all.length).to eq(1)
140
+ end
141
+
142
+ it "using default (not explicit) time format finds correct number of entries" do
143
+ expect(@indy.after(:time => '2002-01-13').all.length).to eq(2)
141
144
  end
142
145
 
143
146
  end
144
147
 
145
- it "should parse dates when log includes non-conforming data" do
148
+ it "should raise ParseException when log includes non-conforming data" do
146
149
  logdata = [ "12-03-2000 message1",
147
150
  "13-03-2000 message2",
148
151
  "14-03-2000 ",
149
152
  " message4",
150
- "a14-03-2000 message5",
151
- "14-03-2000 message6\n\n\n\n",
152
- "15-03-2000 message7",
153
- "16-03-2000 message8\r\n",
154
- "17-03-2000 message9"].join("\n")
153
+ "16-03-2000 message6\n\n\n\n",
154
+ "a17-03-2000 message5",
155
+ "18-03-2000 message7",
156
+ "19-03-2000 message8\r\n",
157
+ "20-03-2000 message9"].join("\n")
155
158
  @indy = Indy.new(
156
159
  :source => logdata,
157
160
  :log_format => [/^(\d[^\s]+\d) (.+)$/, :time, :message])
158
- @indy.after(:time => '13-03-2000')
159
- @indy.all.length.should == 4
161
+ @indy.after(:time => '16-03-2000')
162
+ expect{
163
+ @indy.all
164
+ }.to raise_exception( Indy::Time::ParseException )
160
165
  end
161
166
 
162
167
  end