queri 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +43 -4
  3. data/lib/queri/aggregate_report_helpers.rb +15 -0
  4. data/lib/queri/arg_helpers.rb +24 -0
  5. data/lib/queri/composite_agent_level_report_helpers.rb +19 -0
  6. data/lib/queri/composite_report_helpers.rb +14 -0
  7. data/lib/queri/stats/agents_and_sessions/agent_availability.rb +2 -49
  8. data/lib/queri/stats/answered_calls/agents_on_queue.rb +2 -49
  9. data/lib/queri/stats/answered_calls/all_calls.rb +2 -50
  10. data/lib/queri/stats/answered_calls/answered_calls_by_direction.rb +2 -51
  11. data/lib/queri/stats/answered_calls/answered_calls_by_queue.rb +2 -51
  12. data/lib/queri/stats/answered_calls/answered_calls_by_stints.rb +2 -51
  13. data/lib/queri/stats/answered_calls/calls_fully_within_the_given_time_interval.rb +2 -50
  14. data/lib/queri/stats/answered_calls/disconnection_causes.rb +2 -51
  15. data/lib/queri/stats/answered_calls/dnis_used.rb +2 -51
  16. data/lib/queri/stats/answered_calls/ivr_selection.rb +2 -51
  17. data/lib/queri/stats/answered_calls/music_on_hold_by_agent.rb +2 -49
  18. data/lib/queri/stats/answered_calls/queue_position.rb +2 -51
  19. data/lib/queri/stats/answered_calls/service_level_agreement.rb +2 -49
  20. data/lib/queri/stats/answered_calls/transfers.rb +2 -51
  21. data/lib/queri/stats/details_of_agent_sessions_and_pauses/detail_of_agent_pauses.rb +2 -54
  22. data/lib/queri/stats/details_of_agent_sessions_and_pauses/detail_of_agent_sessions.rb +2 -54
  23. data/lib/queri/stats/details_of_answered_calls/queue_details.rb +35 -0
  24. data/lib/queri/stats/details_of_answered_calls.rb +11 -0
  25. data/lib/queri/stats/unanswered_calls/all_calls_by_stints.rb +24 -0
  26. data/lib/queri/stats/unanswered_calls/call_overview.rb +29 -0
  27. data/lib/queri/stats/unanswered_calls/calls_fully_within_the_given_time_interval.rb +82 -0
  28. data/lib/queri/stats/unanswered_calls/disconnection_causes.rb +24 -0
  29. data/lib/queri/stats/unanswered_calls/dnis_used.rb +24 -0
  30. data/lib/queri/stats/unanswered_calls/dnis_used_for_all_calls.rb +24 -0
  31. data/lib/queri/stats/unanswered_calls/enter_queue_position.rb +24 -0
  32. data/lib/queri/stats/unanswered_calls/enter_queue_position_for_all_calls.rb +24 -0
  33. data/lib/queri/stats/unanswered_calls/inclusive_answered_service_level_agreement.rb +25 -0
  34. data/lib/queri/stats/unanswered_calls/inclusive_service_level_agreement.rb +25 -0
  35. data/lib/queri/stats/unanswered_calls/ivr_selection.rb +28 -0
  36. data/lib/queri/stats/unanswered_calls/ivr_selection_for_all_calls.rb +24 -0
  37. data/lib/queri/stats/unanswered_calls/unanswered_calls_by_key_press.rb +24 -0
  38. data/lib/queri/stats/unanswered_calls/unanswered_calls_by_queue.rb +25 -0
  39. data/lib/queri/stats/unanswered_calls/unanswered_calls_by_stints.rb +24 -0
  40. data/lib/queri/stats/unanswered_calls/unanswered_calls_distribution_by_length.rb +26 -0
  41. data/lib/queri/stats/unanswered_calls/unanswered_outbound_calls_by_agent.rb +24 -0
  42. data/lib/queri/stats.rb +19 -2
  43. data/lib/queri/version.rb +1 -1
  44. data/spec/stats/agents_and_sessions/agent_availability_spec.rb +1 -1
  45. data/spec/stats/agents_and_sessions/agents_and_sessions_spec.rb +1 -1
  46. data/spec/stats/answered_calls/agents_on_queue_spec.rb +1 -1
  47. data/spec/stats/answered_calls/all_calls_spec.rb +1 -1
  48. data/spec/stats/answered_calls/answered_calls_spec.rb +1 -1
  49. data/spec/stats/details_of_answered_calls/details_of_answered_calls_spec.rb +7 -0
  50. data/spec/stats/details_of_answered_calls/queue_details_spec.rb +20 -0
  51. data/spec/stats/unanswered_calls/all_calls_by_stints_spec.rb +22 -0
  52. data/spec/stats/unanswered_calls/call_overview_spec.rb +22 -0
  53. data/spec/stats/unanswered_calls/calls_fully_within_the_given_time_interval_spec.rb +20 -0
  54. data/spec/stats/unanswered_calls/disconnection_causes_spec.rb +20 -0
  55. data/spec/stats/unanswered_calls/dnis_used_for_all_calls_spec.rb +22 -0
  56. data/spec/stats/unanswered_calls/dnis_used_spec.rb +22 -0
  57. data/spec/stats/unanswered_calls/enter_queue_position_for_all_calls_spec.rb +22 -0
  58. data/spec/stats/unanswered_calls/enter_queue_position_spec.rb +22 -0
  59. data/spec/stats/unanswered_calls/inclusive_answered_service_level_agreement_spec.rb +20 -0
  60. data/spec/stats/unanswered_calls/inclusive_service_level_agreement_spec.rb +20 -0
  61. data/spec/stats/unanswered_calls/ivr_selection_for_all_calls_spec.rb +22 -0
  62. data/spec/stats/unanswered_calls/ivr_selection_spec.rb +22 -0
  63. data/spec/stats/unanswered_calls/unanswered_calls_by_key_press_spec.rb +22 -0
  64. data/spec/stats/unanswered_calls/unanswered_calls_by_queue_spec.rb +22 -0
  65. data/spec/stats/unanswered_calls/unanswered_calls_by_stints_spec.rb +22 -0
  66. data/spec/stats/unanswered_calls/unanswered_calls_distribution_by_length_spec.rb +20 -0
  67. data/spec/stats/unanswered_calls/unanswered_outbound_calls_by_agent_spec.rb +22 -0
  68. metadata +64 -3
  69. /data/lib/queri/stats/{details_of_agents_sessions_and_pauses.rb → details_of_agent_sessions_and_pauses.rb} +0 -0
@@ -0,0 +1,11 @@
1
+ module Queri
2
+ class Stats
3
+ class DetailsOfAnsweredCalls
4
+ @@xml_code = "DetailsDO"
5
+
6
+ def self.xml_code
7
+ @@xml_code
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class AllCallsByStints < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".StintsOkKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :number_of_stints, "Number of stints",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,29 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class CallOverview < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".OverviewOkKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :empty, "&nbsp;",
15
+ :queue, "Queue",
16
+ :number_of_calls_to_hit_queue, "Calls offered",
17
+ :calls_answered, "Calls answered",
18
+ :calls_unanswered, "Calls lost",
19
+ :average_call_duration, "Average call length:",
20
+ :total_call_duration, "Total call length:",
21
+ :average_call_waiting_time, "Average call waiting time:",
22
+ :total_call_waiting_time, "Total waiting time:"
23
+ ]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,82 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class CallsFullyWithinTheGivenTimeInterval
5
+ attr_reader :response
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".ReportKoFully"
10
+ end
11
+
12
+ def query_method
13
+ Stats.query_method
14
+ end
15
+
16
+ def key_translations
17
+ Hash[
18
+ :calls_fully_within_the_given_time_interval, "Calls fully within the given time interval:",
19
+ :calls_unanswered, "N.of unanswered calls:",
20
+ :average_call_waiting_time, "Average wait time before disconnection:",
21
+ :minimum_call_waiting_time, "Min wait time before disconnection:",
22
+ :maximum_call_waiting_time, "Max wait time before disconnection:",
23
+ :total_call_waiting_time, "Total wait time before disconnection:",
24
+ :average_initial_queue_position, "Average initial position",
25
+ :minimum_initial_queue_position, "Min initial position",
26
+ :maximum_initial_queue_position, "Max initial position",
27
+ :queue_position_coverage, "Coverage",
28
+ :average_final_queue_position, "Average queue position at disconnection:",
29
+ :minimum_final_queue_position, "Min queue position at disconnection:",
30
+ :maximum_final_queue_position, "Max queue position at disconnection:"
31
+ ]
32
+ end
33
+
34
+ def keys
35
+ key_translations.keys
36
+ end
37
+ end
38
+
39
+ def initialize *args
40
+ raise ArgumentError, "expected arguments: queues(Array), period_start(Time), period_end(Time)" unless valid_args?(args)
41
+ @queues, @period_start, @period_end = normalize_times(*args)
42
+ @response = parse_response
43
+ end
44
+
45
+ private
46
+
47
+ def valid_args? args
48
+ valid = true
49
+ valid = false if args[0].class != Array
50
+ valid = false if args[1].class != Time
51
+ valid = false if args[2].class != Time
52
+ if valid and args[0].empty?
53
+ raise ArgumentError, "queues array cannot be empty"
54
+ end
55
+ return valid
56
+ end
57
+
58
+ def normalize_times queues, period_start, period_end
59
+ if period_start > period_end
60
+ tmp = period_start
61
+ period_start = period_end
62
+ period_end = tmp
63
+ end
64
+ return [queues, period_start, period_end]
65
+ end
66
+
67
+ def parse_response
68
+ r = Queri.send_request(@queues, self, @period_start, @period_end)
69
+ xml_keys_to_human_readable_keys = self.class.key_translations.invert
70
+ r.each_with_index do |metric,i|
71
+ if i > 0
72
+ metric[0] = xml_keys_to_human_readable_keys[ metric[0] ]
73
+ end
74
+ end
75
+ r.shift
76
+ Hash[*r.flatten]
77
+ end
78
+
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class DisconnectionCauses < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".DiscCauses"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :disconnection_cause, "Cause",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class DnisUsed < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".DnisKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :dnis, "DNIS",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class DnisUsedForAllCalls < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".DnisOkKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :dnis, "DNIS",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class EnterQueuePosition < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".QPosKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :initial_queue_position, "Position at enter",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class EnterQueuePositionForAllCalls < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".QPosOkKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :initial_queue_position, "Position at enter",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,25 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class InclusiveAnsweredServiceLevelAgreement < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".InclusiveAnswSLA"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :time_interval, "Hangup",
15
+ :calls_taken_in_time_interval, "N. Calls",
16
+ :calls_between_lower_interval, "Delta",
17
+ :percentage_of_calls_within_interval, "&nbsp;",
18
+ :placeholder_for_bar_graph, "..."
19
+ ]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class InclusiveServiceLevelAgreement < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".InclusiveSLA"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :time_interval, "Hangup",
15
+ :calls_taken_in_time_interval, "N. Calls",
16
+ :calls_between_lower_interval, "Delta",
17
+ :percentage_of_calls_within_interval, "Percent",
18
+ :placeholder_for_bar_graph, "..."
19
+ ]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,28 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class IvrSelection < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".IvrKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :ivr_selection, "IVR",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "...",
18
+ :total_duration_of_call_in_ivr, "Total Duration",
19
+ :average_duration_of_call_in_ivr, "Average Duration",
20
+ :minimum_duration_of_call_in_ivr, "Min Duration",
21
+ :maximum_duration_of_call_in_ivr, "Max Duration"
22
+ ]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class IvrSelectionForAllCalls < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".IvrOkKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :ivr_selection, "IVR",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class UnansweredCallsByKeyPress < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".ReportKoKeyPress"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :key_pressed, "Key",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,25 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class UnansweredCallsByQueue < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".UnansByQueue"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :empty_column, "&nbsp;",
15
+ :queue, "Queue",
16
+ :number_of_calls, "N. Calls",
17
+ :percentage_of_calls, "&nbsp;",
18
+ :placeholder_for_bar_graph, "..."
19
+ ]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class UnansweredCallsByStints < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".StintsKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :number_of_stints, "Number of stints",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,26 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class UnansweredCallsDistributionByLength < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".UnansByLen"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :time_interval, "Hangup",
15
+ :calls_taken_in_time_interval, "N. Calls",
16
+ :calls_between_lower_interval, "Delta",
17
+ :percentage_of_calls_within_interval, "Percent",
18
+ :percentage_of_all_calls, "Of Offered",
19
+ :placeholder_for_bar_graph, "..."
20
+ ]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class UnansweredCalls
4
+ class UnansweredOutboundCallsByAgent < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ UnansweredCalls.xml_code + ".OutboundKo"
10
+ end
11
+
12
+ def key_translations
13
+ Hash[
14
+ :agent, "Agent",
15
+ :number_of_calls, "N. Calls",
16
+ :percentage_of_calls, "&nbsp;",
17
+ :placeholder_for_bar_graph, "..."
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
data/lib/queri/stats.rb CHANGED
@@ -1,9 +1,26 @@
1
1
  module Queri
2
2
  class Stats
3
+ include ArgHelpers
4
+
5
+ attr_reader :response
6
+
3
7
  @@query_method = "QM.stats"
4
8
 
5
- def self.query_method
6
- @@query_method
9
+ class << self
10
+ def query_method
11
+ @@query_method
12
+ end
13
+
14
+ def keys
15
+ key_translations.keys
16
+ end
7
17
  end
18
+
19
+ def initialize *args
20
+ raise ArgumentError, "expected arguments: queues(Array), period_start(Time), period_end(Time)" unless valid_args?(args)
21
+ @queues, @period_start, @period_end = normalize_times(*args)
22
+ @response = parse_response
23
+ end
24
+
8
25
  end
9
26
  end
data/lib/queri/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Queri
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), '..', '..', 'spec_helper' )
1
+ require 'spec_helper'
2
2
 
3
3
  describe Queri::Stats::AgentsAndSessions::AgentAvailability do
4
4
  let(:report_class) { Queri::Stats::AgentsAndSessions::AgentAvailability }
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), '..', '..', 'spec_helper' )
1
+ require 'spec_helper'
2
2
 
3
3
  describe Queri::Stats::AgentsAndSessions do
4
4
  let(:report_class) { Queri::Stats::AgentsAndSessions }
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), '..', '..', 'spec_helper' )
1
+ require 'spec_helper'
2
2
 
3
3
  describe Queri::Stats::AnsweredCalls::AgentsOnQueue do
4
4
  let(:report_class) { Queri::Stats::AnsweredCalls::AgentsOnQueue }
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), '..', '..', 'spec_helper' )
1
+ require 'spec_helper'
2
2
 
3
3
  describe Queri::Stats::AnsweredCalls::AllCalls do
4
4
  let(:report_class) { Queri::Stats::AnsweredCalls::AllCalls }
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), '..', '..', 'spec_helper' )
1
+ require 'spec_helper'
2
2
 
3
3
  describe Queri::Stats::AnsweredCalls do
4
4
  let(:report_class) { Queri::Stats::AnsweredCalls }
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::DetailsOfAnsweredCalls do
4
+ let(:report_class) { Queri::Stats::DetailsOfAnsweredCalls }
5
+
6
+ it_behaves_like "a report class"
7
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::DetailsOfAnsweredCalls::QueueDetails do
4
+ let(:report_class) { Queri::Stats::DetailsOfAnsweredCalls::QueueDetails }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::DetailsOfAnsweredCalls::QueueDetails do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::UnansweredCalls::AllCallsByStints do
4
+ let(:report_class) { Queri::Stats::UnansweredCalls::AllCallsByStints }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before do
8
+ Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml'))
9
+ end
10
+
11
+ it_behaves_like "a report class"
12
+
13
+ it_behaves_like "a report method"
14
+
15
+ it_behaves_like "a queuemetrics report"
16
+
17
+ it_behaves_like "a stats report"
18
+
19
+ describe "An instance of", Queri::Stats::UnansweredCalls::AllCallsByStints do
20
+ it_behaves_like "a composite aggregate report instance"
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::UnansweredCalls::CallOverview do
4
+ let(:report_class) { Queri::Stats::UnansweredCalls::CallOverview }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before do
8
+ Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml'))
9
+ end
10
+
11
+ it_behaves_like "a report class"
12
+
13
+ it_behaves_like "a report method"
14
+
15
+ it_behaves_like "a queuemetrics report"
16
+
17
+ it_behaves_like "a stats report"
18
+
19
+ describe "An instance of", Queri::Stats::UnansweredCalls::CallOverview do
20
+ it_behaves_like "a composite aggregate report instance"
21
+ end
22
+ end