ludo-roart 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,152 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "validations" do
4
+
5
+ describe "field length" do
6
+
7
+ it "show validate too short" do
8
+ class ShortTicket < Roart::Ticket; validates_length_of(:subject, :min => 6); end
9
+ ticket = inst_ticket(ShortTicket)
10
+ ticket.subject = "short"
11
+ ticket.valid?.should be_false
12
+ ticket.subject = "longer subject"
13
+ ticket.valid?.should be_true
14
+ end
15
+
16
+ it "should validate too long" do
17
+ class LongTicket < Roart::Ticket; validates_length_of(:subject, :max => 6); end
18
+ ticket = inst_ticket(LongTicket)
19
+ ticket.subject = "too long"
20
+ ticket.valid?.should be_false
21
+ ticket.subject = "short"
22
+ ticket.valid?.should be_true
23
+ end
24
+
25
+ it "should validate exact" do
26
+ class ExactTicket < Roart::Ticket; validates_length_of(:subject, :is => 5); end
27
+ ticket = inst_ticket(ExactTicket)
28
+ ticket.subject = "Not Five"
29
+ ticket.valid?.should be_false
30
+ ticket.subject = "Yes 5"
31
+ ticket.valid?.should be_true
32
+ end
33
+
34
+ it "should validate range" do
35
+ class RangeTicket < Roart::Ticket; validates_length_of(:subject, :within => 7..12); end
36
+ ticket = inst_ticket(RangeTicket)
37
+ ticket.subject = 'short'
38
+ ticket.valid?.should be_false
39
+ ticket.subject = 'waaaaay toooooo long'
40
+ ticket.valid?.should be_false
41
+ ticket.subject = 'just right'
42
+ ticket.valid?.should be_true
43
+ end
44
+
45
+ end
46
+
47
+ describe "format" do
48
+
49
+ it "should validate format" do
50
+ class FormatTicket < Roart::Ticket; validates_format_of(:subject, :format => /^lol$/); end
51
+ ticket = inst_ticket(FormatTicket)
52
+ ticket.subject = 'poop'
53
+ ticket.valid?.should be_false
54
+ ticket.subject = 'lol'
55
+ ticket.valid?.should be_true
56
+ end
57
+
58
+ end
59
+
60
+ describe "presence" do
61
+
62
+ it "should validate presence of" do
63
+ class PresenceTicket < Roart::Ticket; validates_presence_of(:subject); end
64
+ ticket = inst_ticket(PresenceTicket)
65
+ ticket.subject = ""
66
+ ticket.valid?.should be_false
67
+ ticket.subject = "I'M HERE!"
68
+ ticket.valid?.should be_true
69
+ end
70
+
71
+ it "should validate presence of" do
72
+ class PresenceTicket < Roart::Ticket; validates_presence_of(:subject); end
73
+ ticket = inst_ticket(PresenceTicket)
74
+ ticket.subject = nil
75
+ ticket.valid?.should be_false
76
+ ticket.subject = "I'M HERE!"
77
+ ticket.valid?.should be_true
78
+ end
79
+
80
+ end
81
+
82
+ describe "numericality" do
83
+
84
+ it "should validate greater than" do
85
+ class GTTicket < Roart::Ticket; validates_numericality_of(:subject, :greater_than => 5); end
86
+ ticket = inst_ticket(GTTicket)
87
+ ticket.subject = 4
88
+ ticket.valid?.should be_false
89
+ ticket.subject = 6
90
+ ticket.valid?.should be_true
91
+ end
92
+
93
+ it "should validate less than" do
94
+ class LTTicket < Roart::Ticket; validates_numericality_of(:subject, :less_than => 5); end
95
+ ticket = inst_ticket(LTTicket)
96
+ ticket.subject = 6
97
+ ticket.valid?.should be_false
98
+ ticket.subject = 4
99
+ ticket.valid?.should be_true
100
+ end
101
+
102
+ it "should validate integer" do
103
+ class IntTicket < Roart::Ticket; validates_numericality_of(:subject, :only_integer => true); end
104
+ ticket = inst_ticket(IntTicket)
105
+ ticket.subject = 6.3
106
+ ticket.valid?.should be_false
107
+ ticket.subject = 4
108
+ ticket.valid?.should be_true
109
+ end
110
+
111
+ it "should validate integer" do
112
+ class EqualTicket < Roart::Ticket; validates_numericality_of(:subject, :equal_to => 4); end
113
+ ticket = inst_ticket(EqualTicket)
114
+ ticket.subject = 6.3
115
+ ticket.valid?.should be_false
116
+ ticket.subject = 4
117
+ ticket.valid?.should be_true
118
+ end
119
+
120
+ it "should validate even" do
121
+ class EvenTicket < Roart::Ticket; validates_numericality_of(:subject, :even => true); end
122
+ ticket = inst_ticket(EvenTicket)
123
+ ticket.subject = 6.3
124
+ ticket.valid?.should be_false
125
+ ticket.subject = 5
126
+ ticket.valid?.should be_false
127
+ ticket.subject = 4
128
+ ticket.valid?.should be_true
129
+ end
130
+
131
+ it "should validate two at once" do
132
+ class DoubleTeam < Roart::Ticket; validates_numericality_of(:subject, :even => true, :greater_than => 5); end
133
+ ticket = inst_ticket(DoubleTeam)
134
+ ticket.subject = 6.3
135
+ ticket.valid?.should be_false
136
+ ticket.subject = 9
137
+ ticket.valid?.should be_false
138
+ ticket.subject = 4
139
+ ticket.valid?.should be_false
140
+ ticket.subject = 8
141
+ ticket.valid?.should be_true
142
+ end
143
+
144
+ end
145
+
146
+ end
147
+
148
+ #helpers
149
+
150
+ def inst_ticket(klass)
151
+ klass.send(:instantiate,{:subject => 'A New Ticket', :queue => 'My Queue', :id => 1})
152
+ end
@@ -0,0 +1,8 @@
1
+
2
+ require File.join(File.dirname(__FILE__), %w[spec_helper])
3
+
4
+ describe Roart do
5
+
6
+ end
7
+
8
+ # EOF
@@ -0,0 +1,23 @@
1
+ require 'roart'
2
+
3
+ def dbtime(time)
4
+ time.strftime("%Y-%m-%d %H:%M:%S")
5
+ end
6
+
7
+ def to_content_format(data)
8
+ fields = data.map { |key,value| "#{key.to_s.camelize}: #{value}" unless value.nil? }
9
+ fields.compact.sort.join("\n")
10
+ end
11
+
12
+ RSpec.configure do |config|
13
+ # == Mock Framework
14
+ #
15
+ # RSpec uses it's own mocking framework by default. If you prefer to
16
+ # use mocha, flexmock or RR, uncomment the appropriate line:
17
+ #
18
+ # config.mock_with :mocha
19
+ # config.mock_with :flexmock
20
+ # config.mock_with :rr
21
+ end
22
+
23
+ # EOF
@@ -0,0 +1,126 @@
1
+ RT/3.6.6 200 Ok
2
+
3
+ # 5/5 (id/34725/total)
4
+
5
+ id: 34725
6
+ Ticket: 12345
7
+ TimeTaken: 0
8
+ Type: Create
9
+ Field:
10
+ OldValue:
11
+ NewValue:
12
+ Data:
13
+ Description: Ticket created by Dallas-stezuohc@LEESSUMMITHONDA.COM
14
+
15
+ Content: Now you can get big real fast at an affordable price
16
+ http://www.lameppe.com/
17
+
18
+
19
+ Creator: Dallas-stezuohc@LEESSUMMITHONDA.COM
20
+ Created: 2008-06-03 09:24:32
21
+
22
+ Attachments:
23
+ 16377: untitled (77b)
24
+ 16379: untitled (248b)
25
+
26
+
27
+ --
28
+
29
+ # 5/5 (id/34727/total)
30
+
31
+ id: 34727
32
+ Ticket: 12345
33
+ TimeTaken: 0
34
+ Type: EmailRecord
35
+ Field:
36
+ OldValue:
37
+ NewValue:
38
+ Data: <rt-3.6.6-50432-1212485073-937.12345-456-0@somewhere.com>
39
+ Description: Outgoing email recorded by RT_System
40
+
41
+ Content:
42
+ Greetings,
43
+
44
+ This message has been automatically generated in response to the creation of a trouble ticket at Somewhere Technical Support regarding:
45
+ "SUPPORT EMAIL: Somewhere- 2 pills a day and you will be good"
46
+
47
+ There is no need to reply to this message right now. Your ticket has been
48
+ assigned an ID of [RequestTracker #12345].
49
+
50
+ Please include the ID in the subject line, or "reply" to this message, for all future correspondence about this issue.
51
+
52
+ You can also call us 24 hours a day, 7 days a week.
53
+
54
+ We appreciate your business!
55
+
56
+ Sincerely,
57
+
58
+ Somewhere Technical Support Team
59
+
60
+ Thank you,
61
+ support@somewhere.com
62
+ 1-800-468-3474
63
+
64
+ -------------------------------------------------------------------------
65
+ Now you can get big real fast at an affordable price
66
+ http://www.lameppe.com/
67
+
68
+
69
+ Creator: RT_System
70
+ Created: 2008-06-03 09:24:33
71
+ Attachments:
72
+
73
+ --
74
+
75
+ # 5/5 (id/34871/total)
76
+
77
+ id: 34871
78
+ Ticket: 12345
79
+ TimeTaken: 0
80
+ Type: Take
81
+ Field: Owner
82
+ OldValue: 10
83
+ NewValue: 527
84
+ Data:
85
+ Description: Taken by someone
86
+ Content: This transaction appears to have no content
87
+ Creator: someone
88
+ Created: 2008-06-03 10:39:16
89
+ Attachments:
90
+
91
+ --
92
+
93
+ # 5/5 (id/34883/total)
94
+
95
+ id: 34883
96
+ Ticket: 12345
97
+ TimeTaken: 0
98
+ Type: Comment
99
+ Field:
100
+ OldValue:
101
+ NewValue:
102
+ Data: No Subject
103
+ Description: Comments added by someone
104
+ Content: SPAM
105
+ Creator: someone
106
+ Created: 2008-06-03 10:39:49
107
+ Attachments:
108
+
109
+ --
110
+
111
+ # 5/5 (id/34885/total)
112
+
113
+ id: 34885
114
+ Ticket: 12345
115
+ TimeTaken: 0
116
+ Type: Status
117
+ Field: Status
118
+ OldValue: new
119
+ NewValue: deleted
120
+ Data:
121
+ Description: Ticket deleted by someone
122
+ Content: This transaction appears to have no content
123
+ Creator: someone
124
+ Created: 2008-06-03 10:39:50
125
+ Attachments:
126
+
@@ -0,0 +1,13 @@
1
+ RT/3.6.6 200 Ok
2
+
3
+ id: ticket/3033
4
+ Queue: Canada Express
5
+ Subject: Canada Express
6
+ Status: new
7
+
8
+ --
9
+
10
+ id: ticket/2354
11
+ Queue: Canada Express
12
+ Subject: Canada Express
13
+ Status: open
@@ -0,0 +1,26 @@
1
+ RT/3.6.6 200 Ok
2
+
3
+ # 5/5 (id/34725/total)
4
+
5
+ id: 34725
6
+ Ticket: 12345
7
+ TimeTaken: 0
8
+ Type: Create
9
+ Field:
10
+ OldValue:
11
+ NewValue:
12
+ Data:
13
+ Description: Ticket created by Dallas-stezuohc@LEESSUMMITHONDA.COM
14
+
15
+ Content: Now you can get big real fast at an affordable price
16
+ http://www.lameppe.com/
17
+
18
+
19
+ Creator: Dallas-stezuohc@LEESSUMMITHONDA.COM
20
+ Created: 2008-06-03 09:24:32
21
+
22
+ Attachments:
23
+ 16377: untitled (77b)
24
+ 16379: untitled (248b)
25
+
26
+
@@ -0,0 +1,31 @@
1
+ RT/3.6.6 200 Ok
2
+
3
+ id: ticket/358171
4
+ Queue: MyQueue
5
+ Owner: some_guy
6
+ Creator: some_guy
7
+ Subject: MyQueue - some_guy - 1035328269 - DSL Modem Reset ESCALATED
8
+ Status: open
9
+ Priority: 1
10
+ InitialPriority: 1
11
+ FinalPriority: 10
12
+ Requestors: some_guy@MyQueue.net
13
+ Cc:
14
+ AdminCc:
15
+ Created: Sat Jan 16 14:40:38 2010
16
+ Starts: Not set
17
+ Started: Sat Jan 16 14:40:40 2010
18
+ Due: Mon Jan 18 20:40:38 2010
19
+ Resolved: Not set
20
+ Told: Not set
21
+ LastUpdated: Sat Jan 16 14:50:17 2010
22
+ TimeEstimated: 0
23
+ TimeWorked: 0
24
+ TimeLeft: 0
25
+ CF-BTN: 1035328269
26
+ CF-Call Back Status:
27
+ CF-Call Back Time:
28
+ CF-Contact Name: some_guy
29
+ CF-Contact Phone:
30
+ CF-CMSID:
31
+ CF-IssueCategory: DSL - Modem/Router Config
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ludo-roart
3
+ version: !ruby/object:Gem::Version
4
+ hash: 13
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 11
10
+ version: 0.1.11
11
+ platform: ruby
12
+ authors:
13
+ - PJ Davis
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-09-15 00:00:00 +03:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: mechanize
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 23
30
+ segments:
31
+ - 1
32
+ - 0
33
+ - 0
34
+ version: 1.0.0
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: activesupport
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 2
48
+ - 0
49
+ - 0
50
+ version: 2.0.0
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: bones
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 25
62
+ segments:
63
+ - 2
64
+ - 5
65
+ - 1
66
+ version: 2.5.1
67
+ type: :development
68
+ version_requirements: *id003
69
+ description: Interface for working with Request Tracker (RT) tickets inspired by ActiveRecord.
70
+ email: pj.davis@gmail.com
71
+ executables: []
72
+
73
+ extensions: []
74
+
75
+ extra_rdoc_files:
76
+ - History.txt
77
+ - README.rdoc
78
+ - spec/test_data/full_history.txt
79
+ - spec/test_data/search_ticket.txt
80
+ - spec/test_data/single_history.txt
81
+ - spec/test_data/ticket.txt
82
+ files:
83
+ - History.txt
84
+ - README.rdoc
85
+ - Rakefile
86
+ - lib/roart.rb
87
+ - lib/roart/callbacks.rb
88
+ - lib/roart/connection.rb
89
+ - lib/roart/connection_adapter.rb
90
+ - lib/roart/connection_adapters/mechanize_adapter.rb
91
+ - lib/roart/core/hash.rb
92
+ - lib/roart/core/content_formatter.rb
93
+ - lib/roart/errors.rb
94
+ - lib/roart/history.rb
95
+ - lib/roart/roart.rb
96
+ - lib/roart/ticket.rb
97
+ - lib/roart/ticket_page.rb
98
+ - lib/roart/validations.rb
99
+ - roart.gemspec
100
+ - spec/roart/callbacks_spec.rb
101
+ - spec/roart/connection_adapter_spec.rb
102
+ - spec/roart/connection_spec.rb
103
+ - spec/roart/core/hash_spec.rb
104
+ - spec/roart/history_spec.rb
105
+ - spec/roart/roart_spec.rb
106
+ - spec/roart/ticket_page_spec.rb
107
+ - spec/roart/ticket_spec.rb
108
+ - spec/roart/validation_spec.rb
109
+ - spec/roart_spec.rb
110
+ - spec/spec_helper.rb
111
+ - spec/test_data/full_history.txt
112
+ - spec/test_data/search_ticket.txt
113
+ - spec/test_data/single_history.txt
114
+ - spec/test_data/ticket.txt
115
+ has_rdoc: true
116
+ homepage: http://github.com/pjdavis/roart
117
+ licenses: []
118
+
119
+ post_install_message:
120
+ rdoc_options:
121
+ - --main
122
+ - README.rdoc
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ hash: 3
131
+ segments:
132
+ - 0
133
+ version: "0"
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ hash: 3
140
+ segments:
141
+ - 0
142
+ version: "0"
143
+ requirements: []
144
+
145
+ rubyforge_project: roart
146
+ rubygems_version: 1.5.2
147
+ signing_key:
148
+ specification_version: 3
149
+ summary: Interface for working with Request Tracker (RT) tickets inspired by ActiveRecord
150
+ test_files: []
151
+