
################
TicketToUnitTest
################


****
NAME
****


Kernel::System::UnitTest::TicketToUnitTest - creates unittest


********
SYNOPSIS
********


All TicketToUnitTest functions


****************
PUBLIC INTERFACE
****************


new()
=====


creates an object


.. code-block:: perl

     use Kernel::System::ObjectManager;
     local $Kernel::OM = Kernel::System::ObjectManager->new();
     my $TicketToUnitTestObject = $Kernel::OM->Get('Kernel::System::UnitTest::TicketToUnitTest');



CreateUnitTest()
================


This function creates a unittest


.. code-block:: perl

     my $Output = $TicketToUnitTestObject->CreateUnitTest(
         TicketID => 123456,
     );


Returns:


.. code-block:: perl

     my $Output = 'UNITTEST-OUTPUT';



GetHeader()
===========


Creates the unittest header


.. code-block:: perl

     my $Output = $TicketToUnitTestObject->GetHeader();


Returns:


.. code-block:: perl

     my $Output = 'UNITTEST-HEADER';



GetNeededObjects()
==================


This function creates the needed OM objects


.. code-block:: perl

     my $Output = $TicketToUnitTestObject->GetNeededObjects();


Returns:


.. code-block:: perl

     my $Output = '
         my $HelperObject       = $Kernel::OM->Get('Kernel::System::UnitTest::Helper');
         my $TicketObject       = $Kernel::OM->Get('Kernel::System::Ticket');
         my $ZnunyHelperObject  = $Kernel::OM->Get('Kernel::System::ZnunyHelper');
         my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField');
         my $BackendObject      = $Kernel::OM->Get('Kernel::System::DynamicField::Backend');
         my $TimeObject         = $Kernel::OM->Get('Kernel::System::Time');
     ';



GetCreateObjects()
==================


This function creates the needed objects


.. code-block:: perl

     my $Output = $TicketToUnitTestObject->GetCreateObjects();


Returns:


.. code-block:: perl

     my $Output = '
         ## Service 'Test'
 
         $ZnunyHelperObject->_ServiceCreateIfNotExists(
             Name => 'Test',
         );
 
         [...]
     ';



GetTicketHistory()
==================


This function creates the all needed history 'actions'


GetTicketAttributes()
=====================


This function creates an hash of all ticket attributes of current history entry


.. code-block:: perl

     my %TicketAttributes = $TicketToUnitTestObject->GetTicketAttributes(
         TicketAttributes => \%TicketAttributes,
         HistoryTicket    => \%HistoryTicket,
     );


Returns:


.. code-block:: perl

     my %TicketAttributes = {
         'State' => [
            'pending reminder',
            'open',
            'closed successful'
         ],
         'Queue' => [
             'Junk',
             'Misc',
         ],
         'Priority' => [
             '3 normal'
         ],
         'DynamicField' => [
             'Field1',
         ],
         'User' => [
             'root@localhost'
         ],
         'SLA' => [
             'SLA 1',
             'SLA 2',
         ],
         'Service' => [
             'Service F',
             'Service B'
         ],
         'Type' => [
             'Unclassified'
         ],
         'CustomerUser' => [
             'Customer',
             'Customer2'
         ]
     };



GetFooter()
===========


Creates the unittest Footer.


.. code-block:: perl

     my $Output = $TicketToUnitTestObject->GetFooter();


Returns:


.. code-block:: perl

     my $Output = 'UNITTEST-Footer';



SystemTimeTicketGet()
=====================


Returns the HistoryTicketGet for a given SystemTime and TicketID.


.. code-block:: perl

     my %HistoryData = $BaseObject->SystemTimeTicketGet(
         SystemTime => 19435456436,
         TicketID   => 123,
         Force      => 0, # cache
     );
 
     %HistoryData = (
         TicketID                => 'TicketID',
         Type                    => 'Type',
         TypeID                  => 'TypeID',
         Queue                   => 'Queue',
         QueueID                 => 'QueueID',
         Priority                => 'Priority',
         PriorityID              => 'PriorityID',
         State                   => 'State',
         StateID                 => 'StateID',
         Owner                   => 'Owner',
         OwnerID                 => 'OwnerID',
         CreateUserID            => 'CreateUserID',
         CreateTime (timestamp)  => 'CreateTime (timestamp)',
         CreateOwnerID           => 'CreateOwnerID',
         CreatePriority          => 'CreatePriority',
         CreatePriorityID        => 'CreatePriorityID',
         CreateState             => 'CreateState',
         CreateStateID           => 'CreateStateID',
         CreateQueue             => 'CreateQueue',
         CreateQueueID           => 'CreateQueueID',
         LockFirst (timestamp)   => 'LockFirst (timestamp)',
         LockLast (timestamp)    => 'LockLast (timestamp)',
         UnlockFirst (timestamp) => 'UnlockFirst (timestamp)',
         UnlockLast (timestamp)  => 'UnlockLast (timestamp)'
     );



HistoryTicketGet()
==================


returns a hash of some of the ticket data
calculated based on ticket history info at the given date.


.. code-block:: perl

     my %HistoryData = $TicketObject->HistoryTicketGet(
         StopYear   => 2003,
         StopMonth  => 12,
         StopDay    => 24,
         StopHour   => 10, (optional, default 23)
         StopMinute => 0,  (optional, default 59)
         StopSecond => 0,  (optional, default 59)
         TicketID   => 123,
         Force      => 0,     # 1: don't use cache
     );


returns


.. code-block:: perl

     TicketNumber
     TicketID
     Type
     TypeID
     Queue
     QueueID
     Priority
     PriorityID
     State
     StateID
     Owner
     OwnerID
     CreateUserID
     CreateTime (timestamp)
     CreateOwnerID
     CreatePriority
     CreatePriorityID
     CreateState
     CreateStateID
     CreateQueue
     CreateQueueID
     LockFirst (timestamp)
     LockLast (timestamp)
     UnlockFirst (timestamp)
     UnlockLast (timestamp)
     CustomerID
     CustomerUser
     Service
     ServiceID
     SLA
     SLAID
     Type




