@@ -21,18 +21,18 @@ use warnings;
21
21
# core modules
22
22
23
23
# CPAN modules
24
+ use Test2::V0;
24
25
25
26
# OTOBO modules
26
- use Kernel::System::UnitTest::RegisterDriver; # Set up $Self and $Kernel::OM
27
-
28
- our $Self ;
27
+ use Kernel::System::UnitTest::RegisterDriver; # Set up $Kernel::OM
28
+ use Kernel::System::UnitTest::MockTime qw( :all) ;
29
29
30
30
# get helper object
31
- $Kernel::OM -> ObjectParamAdd(
32
- ' Kernel::System::UnitTest::Helper' => {
33
- RestoreDatabase => 1,
34
- },
35
- );
31
+ # $Kernel::OM->ObjectParamAdd(
32
+ # 'Kernel::System::UnitTest::Helper' => {
33
+ # RestoreDatabase => 1,
34
+ # },
35
+ # );
36
36
my $Helper = $Kernel::OM -> Get(' Kernel::System::UnitTest::Helper' );
37
37
38
38
# set config options
@@ -65,35 +65,33 @@ my %FAQAddTemplate = (
65
65
StateID => 1,
66
66
LanguageID => 1,
67
67
Keywords => $RandomID ,
68
- Field1 => ' Problem...' ,
69
68
Field2 => ' Solution...' ,
70
69
UserID => 1,
71
70
ContentType => ' text/html' ,
72
71
);
73
72
74
73
# freeze time
75
- $Helper -> FixedTimeSet();
74
+ FixedTimeSet(); # t=0m
76
75
77
76
# get FAQ object
78
77
my $FAQObject = $Kernel::OM -> Get(' Kernel::System::FAQ' );
79
78
79
+ # add two FAQs with creation time 60 s apart
80
+ my @Field1 ;
80
81
for my $Counter ( 1 .. 2 ) {
82
+ push @Field1 , sprintf ' Field1 Counter: %d, time: %d' , $Counter , time ;
81
83
my $ItemID = $FAQObject -> FAQAdd(
82
84
%FAQAddTemplate ,
83
85
UserID => $AddedUsers [ $Counter - 1 ],
86
+ Field1 => $Field1 [-1],
84
87
);
85
88
86
- $Self -> IsNot(
87
- undef ,
88
- $ItemID ,
89
- " FAQAdd() ItemID:'$ItemID ' for FAQSearch()" ,
90
- );
91
-
89
+ ok( defined $ItemID , " FAQAdd() $Counter ItemID:'$ItemID ' for FAQSearch()" , );
92
90
push @AddedFAQs , $ItemID ;
93
91
94
92
# add 1 minute to frozen time
95
- $Helper -> FixedTimeAddSeconds(60);
96
- }
93
+ FixedTimeAddSeconds(60);
94
+ } # t=2m
97
95
98
96
# add some votes
99
97
my @VotesToAdd = (
@@ -142,23 +140,20 @@ my @VotesToAdd = (
142
140
for my $Vote (@VotesToAdd ) {
143
141
my $Success = $FAQObject -> VoteAdd( %{$Vote } );
144
142
145
- $Self -> True(
146
- $Success ,
147
- " VoteAdd(): ItemID:'$Vote ->{ItemID}' IP:'$Vote ->{IP}' Rate:'$Vote ->{Rate}' with true" ,
148
- );
143
+ ok( $Success , " VoteAdd(): ItemID:'$Vote ->{ItemID}' IP:'$Vote ->{IP}' Rate:'$Vote ->{Rate}' with true" );
149
144
}
150
145
151
146
# do vote search tests
152
147
my %SearchConfigTemplate = (
153
- Keyword => " $RandomID " ,
148
+ Keyword => $RandomID ,
154
149
States => [ ' public' , ' internal' ],
155
150
OrderBy => [' FAQID' ],
156
151
OrderByDirection => [' Up' ],
157
152
Limit => 150,
158
153
UserID => 1,
159
154
160
155
);
161
- my @Tests = (
156
+ my @VotesTests = (
162
157
163
158
# votes tests
164
159
{
@@ -490,18 +485,14 @@ my @Tests = (
490
485
);
491
486
492
487
# execute the tests
493
- for my $Test (@Tests ) {
488
+ for my $Test (@VotesTests ) {
494
489
my @ItemIDs = $FAQObject -> FAQSearch( %{ $Test -> {Config } } );
495
490
496
- $Self -> IsDeeply(
497
- \@ItemIDs ,
498
- $Test -> {ExpectedResults },
499
- " $Test ->{Name} FAQSearch()" ,
500
- );
491
+ is( \@ItemIDs , $Test -> {ExpectedResults }, " $Test ->{Name} FAQSearch()" );
501
492
}
502
493
503
494
# other tests
504
- @Tests = (
495
+ my @OtherTests = (
505
496
{
506
497
Name => ' States Hash Correct IDs' ,
507
498
Config => {
@@ -542,14 +533,10 @@ for my $Test (@Tests) {
542
533
);
543
534
544
535
# execute the tests
545
- for my $Test (@Tests ) {
536
+ for my $Test (@OtherTests ) {
546
537
my @ItemIDs = $FAQObject -> FAQSearch( %{ $Test -> {Config } } );
547
538
548
- $Self -> IsDeeply(
549
- \@ItemIDs ,
550
- $Test -> {ExpectedResults },
551
- " $Test ->{Name} FAQSearch()" ,
552
- );
539
+ is( \@ItemIDs , $Test -> {ExpectedResults }, " $Test ->{Name} FAQSearch()" );
553
540
}
554
541
555
542
# time based tests
@@ -561,41 +548,36 @@ my %FAQUpdateTemplate = (
561
548
StateID => 1,
562
549
LanguageID => 1,
563
550
Keywords => $RandomID ,
564
- Field1 => ' Problem...' ,
565
551
Field2 => ' Solution...' ,
566
552
UserID => 1,
567
553
ContentType => ' text/html' ,
568
554
);
569
555
570
556
# add 1 minute to frozen time
571
- $Helper -> FixedTimeAddSeconds(60);
557
+ FixedTimeAddSeconds(60); # t=3m
572
558
573
559
my $Success = $FAQObject -> FAQUpdate(
574
560
%FAQUpdateTemplate ,
575
561
ItemID => $AddedFAQs [0],
562
+ Field1 => " Updated $Field1 [0]" ,
576
563
UserID => $AddedUsers [2],
577
564
);
578
565
579
- $Self -> True(
580
- $Success ,
581
- " FAQUpdate() ItemID:'$AddedFAQs [0]' for FAQSearch()" ,
582
- );
566
+ ok( $Success , " FAQUpdate() ItemID:'$AddedFAQs [0]' for FAQSearch()" );
583
567
584
- $Helper -> FixedTimeAddSeconds(60);
568
+ FixedTimeAddSeconds(60); # t=4m
585
569
586
570
$Success = $FAQObject -> FAQUpdate(
587
571
%FAQUpdateTemplate ,
588
572
ItemID => $AddedFAQs [1],
573
+ Field1 => " Updated $Field1 [1]" ,
589
574
UserID => $AddedUsers [3],
590
575
);
591
576
592
- $Self -> True(
593
- $Success ,
594
- " FAQUpdate() ItemID:'$AddedFAQs [1]' for FAQSearch()" ,
595
- );
577
+ ok( $Success , " FAQUpdate() ItemID:'$AddedFAQs [1]' for FAQSearch()" );
596
578
597
579
# add 2 minutes to frozen time
598
- $Helper -> FixedTimeAddSeconds(120);
580
+ FixedTimeAddSeconds(120); # t=6m
599
581
600
582
my $DateTime = $Kernel::OM -> Create(' Kernel::System::DateTime' );
601
583
@@ -611,7 +593,8 @@ my $DateMinus5Mins = $DateTime->ToString();
611
593
$DateTime -> Subtract( Seconds => 60 );
612
594
my $DateMinus6Mins = $DateTime -> ToString();
613
595
614
- @Tests = (
596
+ # Two FAQs were added. One 6 minutes ago, the other 5 minutes ago
597
+ my @TimeBasedTests = (
615
598
{
616
599
Name => ' CreateTimeOlderMinutes 3 min' ,
617
600
Config => {
@@ -728,19 +711,14 @@ my $DateMinus6Mins = $DateTime->ToString();
728
711
);
729
712
730
713
# execute the tests
731
- for my $Test (@Tests ) {
732
-
714
+ for my $Test (@TimeBasedTests ) {
733
715
my @ItemIDs = $FAQObject -> FAQSearch( %{ $Test -> {Config } } );
734
716
735
- $Self -> IsDeeply(
736
- \@ItemIDs ,
737
- $Test -> {ExpectedResults },
738
- " $Test ->{Name} FAQSearch()" ,
739
- );
717
+ is( \@ItemIDs , $Test -> {ExpectedResults }, " $Test ->{Name} FAQSearch()" );
740
718
}
741
719
742
720
# created user tests
743
- @Tests = (
721
+ my @CreatedUserTests = (
744
722
{
745
723
Name => ' CreatedUserIDs 1' ,
746
724
Config => {
@@ -785,8 +763,15 @@ for my $Test (@Tests) {
785
763
},
786
764
);
787
765
766
+ # execute the tests
767
+ for my $Test (@CreatedUserTests ) {
768
+ my @ItemIDs = $FAQObject -> FAQSearch( %{ $Test -> {Config } } );
769
+
770
+ is( \@ItemIDs , $Test -> {ExpectedResults }, " $Test ->{Name} FAQSearch()" );
771
+ }
772
+
788
773
# last changed user tests
789
- @Tests = (
774
+ my @LastChangedUserTests = (
790
775
{
791
776
Name => ' LastChangedUserIDs 3' ,
792
777
Config => {
@@ -829,15 +814,10 @@ for my $Test (@Tests) {
829
814
);
830
815
831
816
# execute the tests
832
- for my $Test (@Tests ) {
833
-
817
+ for my $Test (@LastChangedUserTests ) {
834
818
my @ItemIDs = $FAQObject -> FAQSearch( %{ $Test -> {Config } } );
835
819
836
- $Self -> IsDeeply(
837
- \@ItemIDs ,
838
- $Test -> {ExpectedResults },
839
- " $Test ->{Name} FAQSearch()" ,
840
- );
820
+ is( \@ItemIDs , $Test -> {ExpectedResults }, " $Test ->{Name} FAQSearch()" );
841
821
}
842
822
843
823
# approval tests
@@ -853,7 +833,7 @@ return if !$Kernel::OM->Get('Kernel::System::DB')->Do(
853
833
],
854
834
);
855
835
856
- @Tests = (
836
+ my @ApprovalTests = (
857
837
{
858
838
Name => ' Approved 1' ,
859
839
Config => {
@@ -877,22 +857,14 @@ return if !$Kernel::OM->Get('Kernel::System::DB')->Do(
877
857
);
878
858
879
859
# execute the tests
880
- for my $Test (@Tests ) {
881
-
860
+ for my $Test (@ApprovalTests ) {
882
861
my @ItemIDs = $FAQObject -> FAQSearch( %{ $Test -> {Config } } );
883
862
884
- $Self -> IsDeeply(
885
- \@ItemIDs ,
886
- $Test -> {ExpectedResults },
887
- " $Test ->{Name} FAQSearch()" ,
888
- );
863
+ is( \@ItemIDs , $Test -> {ExpectedResults }, " $Test ->{Name} FAQSearch()" );
889
864
}
890
865
891
866
# execute old tests
892
- $Self -> True(
893
- 1,
894
- " --Execute Former Tests--" ,
895
- );
867
+ diag(" Execute Former Tests" );
896
868
{
897
869
my $ItemID1 = $FAQObject -> FAQAdd(
898
870
CategoryID => 1,
@@ -906,13 +878,10 @@ $Self->True(
906
878
UserID => 1,
907
879
ContentType => ' text/html' ,
908
880
);
909
- $Self -> True(
910
- $ItemID1 ,
911
- " FAQAdd() - 1" ,
912
- );
881
+ ok( $ItemID1 , " FAQAdd() - 1" );
913
882
914
883
# add 1 minute to frozen time
915
- $Helper -> FixedTimeAddSeconds(60);
884
+ FixedTimeAddSeconds(60); # t=7m
916
885
917
886
my $ItemID2 = $FAQObject -> FAQAdd(
918
887
Title => ' Title' . $RandomID ,
@@ -925,13 +894,10 @@ $Self->True(
925
894
UserID => 1,
926
895
ContentType => ' text/html' ,
927
896
);
928
- $Self -> True(
929
- $ItemID2 ,
930
- " FAQAdd() - 2" ,
931
- );
897
+ ok( $ItemID2 , " FAQAdd() - 2" );
932
898
933
899
# add 1 minute to frozen time
934
- $Helper -> FixedTimeAddSeconds(60);
900
+ FixedTimeAddSeconds(60); # t=8m
935
901
936
902
my %Keywords = (
937
903
Keyword1 => " some1$RandomID " ,
@@ -950,13 +916,10 @@ $Self->True(
950
916
UserID => 1,
951
917
ContentType => ' text/html' ,
952
918
);
953
- $Self -> True(
954
- $ItemID3 ,
955
- " FAQAdd() - 3" ,
956
- );
919
+ ok( $ItemID3 , " FAQAdd() - 3" );
957
920
958
921
# add 1 minute to frozen time
959
- $Helper -> FixedTimeAddSeconds(60);
922
+ FixedTimeAddSeconds(60); # t=9m
960
923
961
924
my $ItemID4 = $FAQObject -> FAQAdd(
962
925
Title => ' Test FAQ-4' ,
@@ -969,13 +932,10 @@ $Self->True(
969
932
ContentType => ' text/html' ,
970
933
);
971
934
972
- $Self -> True(
973
- $ItemID4 ,
974
- " FAQAdd() - 4" ,
975
- );
935
+ ok( $ItemID4 , " FAQAdd() - 4" );
976
936
977
937
# add 1 minute to frozen time
978
- $Helper -> FixedTimeAddSeconds(60);
938
+ FixedTimeAddSeconds(60); # t=10m
979
939
980
940
my $ItemID5 = $FAQObject -> FAQAdd(
981
941
Title => ' Test FAQ-5' ,
@@ -988,15 +948,12 @@ $Self->True(
988
948
ContentType => ' text/html' ,
989
949
);
990
950
991
- $Self -> True(
992
- $ItemID5 ,
993
- " FAQAdd() - 4" ,
994
- );
951
+ ok( $ItemID5 , " FAQAdd() - 4" );
995
952
996
953
# restore time
997
- $Helper -> FixedTimeUnset();
954
+ FixedTimeUnset();
998
955
999
- @Tests = (
956
+ my @Tests = (
1000
957
{
1001
958
Name => ' Keywords' ,
1002
959
Config => {
@@ -1172,7 +1129,6 @@ $Self->True(
1172
1129
);
1173
1130
1174
1131
for my $Test (@Tests ) {
1175
-
1176
1132
my @ItemIDs = $FAQObject -> FAQSearch(
1177
1133
Number => ' *' ,
1178
1134
States => [ ' public' , ' internal' ],
@@ -1182,12 +1138,8 @@ $Self->True(
1182
1138
%{ $Test -> {Config } },
1183
1139
);
1184
1140
1185
- $Self -> IsDeeply(
1186
- \@ItemIDs ,
1187
- $Test -> {ExpectedResults },
1188
- " $Test ->{Name}, FAQSearch()" ,
1189
- );
1141
+ is( \@ItemIDs , $Test -> {ExpectedResults }, " $Test ->{Name}, FAQSearch()" );
1190
1142
}
1191
1143
}
1192
1144
1193
- $Self -> DoneTesting ();
1145
+ done_testing ();
0 commit comments