123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401 |
- require 'integration_test_helper'
- class ReportTest < ActiveSupport::TestCase
- include SearchindexHelper
- setup do
- # create attribute
- ObjectManager::Attribute.add(
- object: 'Ticket',
- name: 'test_category',
- display: 'Test 1',
- data_type: 'tree_select',
- data_option: {
- maxlength: 200,
- null: false,
- default: '',
- options: [
- { 'name' => 'aa', 'value' => 'aa', 'children' => [{ 'name' => 'aa', 'value' => 'aa::aa' }, { 'name' => 'bb', 'value' => 'aa::bb' }, { 'name' => 'cc', 'value' => 'aa::cc' }] },
- { 'name' => 'bb', 'value' => 'bb', 'children' => [{ 'name' => 'aa', 'value' => 'bb::aa' }, { 'name' => 'bb', 'value' => 'bb::bb' }, { 'name' => 'cc', 'value' => 'bb::cc' }] },
- { 'name' => 'cc', 'value' => 'cc', 'children' => [{ 'name' => 'aa', 'value' => 'cc::aa' }, { 'name' => 'bb', 'value' => 'cc::bb' }, { 'name' => 'cc', 'value' => 'cc::cc' }] },
- ]
- },
- active: true,
- screens: {},
- position: 20,
- created_by_id: 1,
- updated_by_id: 1,
- editable: false,
- to_migrate: false,
- )
- ObjectManager::Attribute.migration_execute
- configure_elasticsearch(required: true)
- Ticket.destroy_all
- rebuild_searchindex
- group1 = Group.lookup(name: 'Users')
- group2 = Group.create!(
- name: 'Report Test',
- updated_by_id: 1,
- created_by_id: 1
- )
- @ticket1 = Ticket.create!(
- title: 'test 1',
- group: group2,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'new'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- created_at: '2015-10-28 09:30:00 UTC',
- updated_at: '2015-10-28 09:30:00 UTC',
- test_category: 'cc::bb',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket1.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_inbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Customer').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2015-10-28 09:30:00 UTC',
- updated_at: '2015-10-28 09:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- @ticket1.tag_add('aaa', 1)
- @ticket1.tag_add('bbb', 1)
- @ticket1.update!(
- group: Group.lookup(name: 'Users'),
- updated_at: '2015-10-28 14:30:00 UTC',
- )
- @ticket2 = Ticket.create!(
- title: 'test 2',
- group: group1,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'new'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- created_at: '2015-10-28 09:30:01 UTC',
- updated_at: '2015-10-28 09:30:01 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket2.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_inbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Customer').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2015-10-28 09:30:01 UTC',
- updated_at: '2015-10-28 09:30:01 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- @ticket2.tag_add('aaa', 1)
- @ticket2.update!(
- group_id: group2.id,
- updated_at: '2015-10-28 14:30:00 UTC',
- )
- @ticket3 = Ticket.create!(
- title: 'test 3',
- group: group1,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'open'),
- priority: Ticket::Priority.lookup(name: '3 high'),
- created_at: '2015-10-28 10:30:00 UTC',
- updated_at: '2015-10-28 10:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket3.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_inbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Customer').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2015-10-28 10:30:00 UTC',
- updated_at: '2015-10-28 10:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- @ticket4 = Ticket.create!(
- title: 'test 4',
- group: group1,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'closed'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- close_at: '2015-10-28 11:30:00 UTC',
- created_at: '2015-10-28 10:30:01 UTC',
- updated_at: '2015-10-28 10:30:01 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket4.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_inbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Customer').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2015-10-28 10:30:01 UTC',
- updated_at: '2015-10-28 10:30:01 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- @ticket5 = Ticket.create!(
- title: 'test 5',
- group: group1,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'closed'),
- priority: Ticket::Priority.lookup(name: '3 high'),
- close_at: '2015-10-28 11:40:00 UTC',
- created_at: '2015-10-28 11:30:00 UTC',
- updated_at: '2015-10-28 11:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket5.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_outbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Agent').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2015-10-28 11:30:00 UTC',
- updated_at: '2015-10-28 11:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- @ticket5.tag_add('bbb', 1)
- @ticket5.update!(
- state: Ticket::State.lookup(name: 'open'),
- updated_at: '2015-10-28 14:30:00 UTC',
- )
- @ticket6 = Ticket.create!(
- title: 'test 6',
- group: group1,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'closed'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- close_at: '2015-10-31 12:35:00 UTC',
- created_at: '2015-10-31 12:30:00 UTC',
- updated_at: '2015-10-31 12:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket6.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_outbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Agent').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2015-10-31 12:30:00 UTC',
- updated_at: '2015-10-31 12:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- @ticket7 = Ticket.create!(
- title: 'test 7',
- group: group1,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'closed'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- close_at: '2015-11-01 12:30:00 UTC',
- created_at: '2015-11-01 12:30:00 UTC',
- updated_at: '2015-11-01 12:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket7.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_outbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Agent').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2015-11-01 12:30:00 UTC',
- updated_at: '2015-11-01 12:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- @ticket8 = Ticket.create!(
- title: 'test 8',
- group: group1,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'merged'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- close_at: '2015-11-02 12:30:00 UTC',
- created_at: '2015-11-02 12:30:00 UTC',
- updated_at: '2015-11-02 12:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket8.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_outbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Agent').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2015-11-02 12:30:00 UTC',
- updated_at: '2015-11-02 12:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- @ticket9 = Ticket.create!(
- title: 'test 9',
- group: group1,
- customer_id: 2,
- state: Ticket::State.lookup(name: 'open'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- close_at: '2037-11-02 12:30:00 UTC',
- created_at: '2037-11-02 12:30:00 UTC',
- updated_at: '2037-11-02 12:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- Ticket::Article.create!(
- ticket_id: @ticket9.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: 'some message article_outbound',
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Agent').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- created_at: '2037-11-02 12:30:00 UTC',
- updated_at: '2037-11-02 12:30:00 UTC',
- updated_by_id: 1,
- created_by_id: 1,
- )
- # execute background jobs
- Scheduler.worker(true)
- end
- test 'compare' do
- # first solution
- result = Report::TicketFirstSolution.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(2, result[9])
- assert_equal(1, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketFirstSolution.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_equal(@ticket6.id, result[:ticket_ids][1])
- assert_equal(@ticket7.id, result[:ticket_ids][2])
- assert_nil(result[:ticket_ids][3])
- # month - with selector #1
- result = Report::TicketFirstSolution.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket.priority_id' => {
- 'operator' => 'is',
- 'value' => [Ticket::Priority.lookup(name: '3 high').id],
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(1, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketFirstSolution.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket.priority_id' => {
- 'operator' => 'is',
- 'value' => [Ticket::Priority.lookup(name: '3 high').id],
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][1])
- # month - with merged tickets selector
- result = Report::TicketFirstSolution.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket_state.name' => {
- 'operator' => 'is not',
- 'value' => 'merged',
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(2, result[9])
- assert_equal(1, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketFirstSolution.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket_state.name' => {
- 'operator' => 'is not',
- 'value' => 'merged',
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][3])
- # month - with selector #2
- result = Report::TicketFirstSolution.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket.priority_id' => {
- 'operator' => 'is not',
- 'value' => [Ticket::Priority.lookup(name: '3 high').id],
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(1, result[9])
- assert_equal(1, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketFirstSolution.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket.priority_id' => {
- 'operator' => 'is not',
- 'value' => [Ticket::Priority.lookup(name: '3 high').id],
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket6.id, result[:ticket_ids][0])
- assert_equal(@ticket7.id, result[:ticket_ids][1])
- assert_nil(result[:ticket_ids][2])
- # week
- result = Report::TicketFirstSolution.aggs(
- range_start: Time.zone.parse('2015-10-26T00:00:00Z'),
- range_end: Time.zone.parse('2015-10-31T23:59:59Z'),
- interval: 'week', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(1, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(1, result[5])
- assert_equal(1, result[6])
- assert_nil(result[7])
- result = Report::TicketFirstSolution.items(
- range_start: Time.zone.parse('2015-10-26T00:00:00Z'),
- range_end: Time.zone.parse('2015-11-01T23:59:59Z'),
- interval: 'week', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_equal(@ticket6.id, result[:ticket_ids][1])
- assert_equal(@ticket7.id, result[:ticket_ids][2])
- assert_nil(result[:ticket_ids][3])
- # day
- result = Report::TicketFirstSolution.aggs(
- range_start: Time.zone.parse('2015-10-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-11-01T23:59:59Z'),
- interval: 'day', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(0, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_equal(0, result[12])
- assert_equal(0, result[13])
- assert_equal(0, result[14])
- assert_equal(0, result[15])
- assert_equal(0, result[16])
- assert_equal(0, result[17])
- assert_equal(0, result[18])
- assert_equal(0, result[19])
- assert_equal(0, result[20])
- assert_equal(0, result[21])
- assert_equal(0, result[22])
- assert_equal(0, result[23])
- assert_equal(0, result[24])
- assert_equal(0, result[25])
- assert_equal(0, result[26])
- assert_equal(1, result[27])
- assert_equal(0, result[28])
- assert_equal(0, result[29])
- assert_equal(1, result[30])
- assert_nil(result[31])
- result = Report::TicketFirstSolution.items(
- range_start: Time.zone.parse('2015-10-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-10-31T23:59:59Z'),
- interval: 'day', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_equal(@ticket6.id, result[:ticket_ids][1])
- assert_nil(result[:ticket_ids][2])
- # hour
- result = Report::TicketFirstSolution.aggs(
- range_start: Time.zone.parse('2015-10-28T00:00:00Z'),
- range_end: Time.zone.parse('2015-10-28T23:59:59Z'),
- interval: 'hour', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(0, result[9])
- assert_equal(0, result[10])
- assert_equal(1, result[11])
- assert_equal(0, result[12])
- assert_equal(0, result[13])
- assert_equal(0, result[14])
- assert_equal(0, result[15])
- assert_equal(0, result[16])
- assert_equal(0, result[17])
- assert_equal(0, result[18])
- assert_equal(0, result[19])
- assert_equal(0, result[20])
- assert_equal(0, result[21])
- assert_equal(0, result[22])
- assert_equal(0, result[23])
- assert_nil(result[24])
- result = Report::TicketFirstSolution.items(
- range_start: Time.zone.parse('2015-10-28T00:00:00Z'),
- range_end: Time.zone.parse('2015-10-28T23:59:59Z'),
- interval: 'hour', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][1])
- # reopen
- result = Report::TicketReopened.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(1, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketReopened.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {}, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][1])
- # month - with selector #1
- result = Report::TicketReopened.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket.priority_id' => {
- 'operator' => 'is',
- 'value' => [Ticket::Priority.lookup(name: '3 high').id],
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(1, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketReopened.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket.priority_id' => {
- 'operator' => 'is',
- 'value' => [Ticket::Priority.lookup(name: '3 high').id],
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][1])
- # month - with selector #2
- result = Report::TicketReopened.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket.priority_id' => {
- 'operator' => 'is not',
- 'value' => [Ticket::Priority.lookup(name: '3 high').id],
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(0, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketReopened.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket.priority_id' => {
- 'operator' => 'is not',
- 'value' => [Ticket::Priority.lookup(name: '3 high').id],
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_nil(result[:ticket_ids][0])
- # month - reopened with merge selector
- result = Report::TicketReopened.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket_state.name' => {
- 'operator' => 'is not',
- 'value' => 'merged',
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(1, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketReopened.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket_state.name' => {
- 'operator' => 'is not',
- 'value' => 'merged',
- }
- }, # ticket selector to get only a collection of tickets
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][1])
- # move in/out without merged status
- result = Report::TicketMoved.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket_state.name' => {
- 'operator' => 'is not',
- 'value' => 'merged',
- }
- }, # ticket selector to get only a collection of tickets
- params: {
- type: 'in',
- },
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(0, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketMoved.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket.group_id' => {
- 'operator' => 'is',
- 'value' => [Group.lookup(name: 'Users').id],
- }
- }, # ticket selector to get only a collection of tickets
- params: {
- type: 'in',
- },
- )
- assert(result)
- assert_equal(@ticket1.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][1])
- # move in/out
- result = Report::TicketMoved.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket.group_id' => {
- 'operator' => 'is',
- 'value' => [Group.lookup(name: 'Users').id],
- }
- }, # ticket selector to get only a collection of tickets
- params: {
- type: 'in',
- },
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(1, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketMoved.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket.group_id' => {
- 'operator' => 'is',
- 'value' => [Group.lookup(name: 'Users').id],
- }
- }, # ticket selector to get only a collection of tickets
- params: {
- type: 'in',
- },
- )
- assert(result)
- assert_equal(@ticket1.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][1])
- # out without merged tickets
- result = Report::TicketMoved.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket_state.name' => {
- 'operator' => 'is not',
- 'value' => 'merged',
- }
- }, # ticket selector to get only a collection of tickets
- params: {
- type: 'out',
- },
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(0, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketMoved.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket_state.name' => {
- 'operator' => 'is not',
- 'value' => 'merged',
- }
- }, # ticket selector to get only a collection of tickets
- params: {
- type: 'out',
- },
- )
- assert(result)
- assert_nil(result[:ticket_ids][0])
- # out
- result = Report::TicketMoved.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'ticket.group_id' => {
- 'operator' => 'is',
- 'value' => [Group.lookup(name: 'Users').id],
- }
- }, # ticket selector to get only a collection of tickets
- params: {
- type: 'out',
- },
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(1, result[9])
- assert_equal(0, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketMoved.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'ticket.group_id' => {
- 'operator' => 'is',
- 'value' => [Group.lookup(name: 'Users').id],
- }
- }, # ticket selector to get only a collection of tickets
- params: {
- type: 'out',
- },
- )
- assert(result)
- assert_equal(@ticket2.id, result[:ticket_ids][0])
- assert_nil(result[:ticket_ids][1])
- # create at
- result = Report::TicketGenericTime.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {}, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(6, result[9])
- assert_equal(1, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {}, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket7.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket6.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket5.id, result[:ticket_ids][2].to_i)
- assert_equal(@ticket4.id, result[:ticket_ids][3].to_i)
- assert_equal(@ticket3.id, result[:ticket_ids][4].to_i)
- assert_equal(@ticket2.id, result[:ticket_ids][5].to_i)
- assert_equal(@ticket1.id, result[:ticket_ids][6].to_i)
- assert_nil(result[:ticket_ids][7])
- # create at - selector with merge
- result = Report::TicketGenericTime.aggs(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- interval: 'month', # year, quarter, month, week, day, hour, minute, second
- selector: {
- 'state' => {
- 'operator' => 'is not',
- 'value' => 'merged'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(0, result[0])
- assert_equal(0, result[1])
- assert_equal(0, result[2])
- assert_equal(0, result[3])
- assert_equal(0, result[4])
- assert_equal(0, result[5])
- assert_equal(0, result[6])
- assert_equal(0, result[7])
- assert_equal(0, result[8])
- assert_equal(6, result[9])
- assert_equal(1, result[10])
- assert_equal(0, result[11])
- assert_nil(result[12])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'state' => {
- 'operator' => 'is not',
- 'value' => 'merged'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket7.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket6.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket5.id, result[:ticket_ids][2].to_i)
- assert_equal(@ticket4.id, result[:ticket_ids][3].to_i)
- assert_equal(@ticket3.id, result[:ticket_ids][4].to_i)
- assert_equal(@ticket2.id, result[:ticket_ids][5].to_i)
- assert_equal(@ticket1.id, result[:ticket_ids][6].to_i)
- assert_nil(result[:ticket_ids][7])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'before (absolute)',
- 'value' => '2015-10-31T00:00:00Z'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket4.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket3.id, result[:ticket_ids][2].to_i)
- assert_equal(@ticket2.id, result[:ticket_ids][3].to_i)
- assert_equal(@ticket1.id, result[:ticket_ids][4].to_i)
- assert_nil(result[:ticket_ids][5])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'after (absolute)',
- 'value' => '2015-10-31T00:00:00Z'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket7.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket6.id, result[:ticket_ids][1].to_i)
- assert_nil(result[:ticket_ids][2])
- Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'before (relative)',
- 'range' => 'day',
- 'value' => '1'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'after (relative)',
- 'range' => 'day',
- 'value' => '1'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_nil(result[:ticket_ids][0])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2037-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2037-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'before (relative)',
- 'range' => 'day',
- 'value' => '1'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_nil(result[:ticket_ids][0])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2037-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2037-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'after (relative)',
- 'range' => 'day',
- 'value' => '5'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket9.id, result[:ticket_ids][0].to_i)
- assert_nil(result[:ticket_ids][1])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2037-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2037-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'before (relative)',
- 'range' => 'month',
- 'value' => '1'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_nil(result[:ticket_ids][0])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2037-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2037-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'after (relative)',
- 'range' => 'month',
- 'value' => '5'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket9.id, result[:ticket_ids][0].to_i)
- assert_nil(result[:ticket_ids][1])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2037-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2037-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'before (relative)',
- 'range' => 'year',
- 'value' => '1'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_nil(result[:ticket_ids][0])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2037-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2037-12-31T23:59:59Z'),
- selector: {
- 'created_at' => {
- 'operator' => 'after (relative)',
- 'range' => 'year',
- 'value' => '5'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket9.id, result[:ticket_ids][0].to_i)
- assert_nil(result[:ticket_ids][1])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'tags' => {
- 'operator' => 'contains all',
- 'value' => 'aaa, bbb'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket1.id, result[:ticket_ids][0].to_i)
- assert_nil(result[:ticket_ids][1])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'tags' => {
- 'operator' => 'contains all not',
- 'value' => 'aaa, bbb'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket7.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket6.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket5.id, result[:ticket_ids][2].to_i)
- assert_equal(@ticket4.id, result[:ticket_ids][3].to_i)
- assert_equal(@ticket3.id, result[:ticket_ids][4].to_i)
- assert_equal(@ticket2.id, result[:ticket_ids][5].to_i)
- assert_nil(result[:ticket_ids][6])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'tags' => {
- 'operator' => 'contains all',
- 'value' => 'aaa'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket2.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket1.id, result[:ticket_ids][1].to_i)
- assert_nil(result[:ticket_ids][2])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'tags' => {
- 'operator' => 'contains all not',
- 'value' => 'aaa'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket7.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket6.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket5.id, result[:ticket_ids][2].to_i)
- assert_equal(@ticket4.id, result[:ticket_ids][3].to_i)
- assert_equal(@ticket3.id, result[:ticket_ids][4].to_i)
- assert_nil(result[:ticket_ids][5])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'tags' => {
- 'operator' => 'contains one not',
- 'value' => 'aaa'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket7.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket6.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket5.id, result[:ticket_ids][2].to_i)
- assert_equal(@ticket4.id, result[:ticket_ids][3].to_i)
- assert_equal(@ticket3.id, result[:ticket_ids][4].to_i)
- assert_nil(result[:ticket_ids][5])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'tags' => {
- 'operator' => 'contains one not',
- 'value' => 'aaa, bbb'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket7.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket6.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket4.id, result[:ticket_ids][2].to_i)
- assert_equal(@ticket3.id, result[:ticket_ids][3].to_i)
- assert_nil(result[:ticket_ids][4])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'tags' => {
- 'operator' => 'contains one',
- 'value' => 'aaa'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket2.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket1.id, result[:ticket_ids][1].to_i)
- assert_nil(result[:ticket_ids][2])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'tags' => {
- 'operator' => 'contains one',
- 'value' => 'aaa, bbb'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket5.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket2.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket1.id, result[:ticket_ids][2].to_i)
- assert_nil(result[:ticket_ids][3])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'title' => {
- 'operator' => 'contains',
- 'value' => 'test'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket7.id, result[:ticket_ids][0].to_i)
- assert_equal(@ticket6.id, result[:ticket_ids][1].to_i)
- assert_equal(@ticket5.id, result[:ticket_ids][2].to_i)
- assert_equal(@ticket4.id, result[:ticket_ids][3].to_i)
- assert_equal(@ticket3.id, result[:ticket_ids][4].to_i)
- assert_equal(@ticket2.id, result[:ticket_ids][5].to_i)
- assert_equal(@ticket1.id, result[:ticket_ids][6].to_i)
- assert_nil(result[:ticket_ids][7])
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'title' => {
- 'operator' => 'contains not',
- 'value' => 'test'
- }
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_nil(result[:ticket_ids][0])
- # search for test_category.keyword to find values with :: in query
- result = Report::TicketGenericTime.items(
- range_start: Time.zone.parse('2015-01-01T00:00:00Z'),
- range_end: Time.zone.parse('2015-12-31T23:59:59Z'),
- selector: {
- 'test_category' => {
- 'operator' => 'is',
- 'value' => 'cc::bb'
- },
- }, # ticket selector to get only a collection of tickets
- params: { field: 'created_at' },
- )
- assert(result)
- assert_equal(@ticket1.id, result[:ticket_ids][0].to_i)
- assert_nil(result[:ticket_ids][1])
- end
- end
|