Bugzilla – Attachment 20027 Details for
Bug 10644
C4::ClassSource.pm needs unit tests
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[PASSED QA] Bug 10644: ClassSource.pm needs unit tests
PASSED-QA-Bug-10644-ClassSourcepm-needs-unit-tests.patch (text/plain), 7.47 KB, created by
Katrin Fischer
on 2013-07-31 21:27:06 UTC
(
hide
)
Description:
[PASSED QA] Bug 10644: ClassSource.pm needs unit tests
Filename:
MIME Type:
Creator:
Katrin Fischer
Created:
2013-07-31 21:27:06 UTC
Size:
7.47 KB
patch
obsolete
>From ccf9d41f75db775d880535d2ecc7a2baaa711588 Mon Sep 17 00:00:00 2001 >From: root <root@kenza-VirtualBox> >Date: Fri, 26 Jul 2013 09:55:43 +0200 >Subject: [PATCH] [PASSED QA] Bug 10644: ClassSource.pm needs unit tests > >The tests are wrap in a database transaction. > >To test: >prove t/db_dependent/ClassSource.t >t/db_dependent/ClassSource.t .. 1/24 prepare_cached(SELECT * FROM `class_sort_rules` WHERE `class_sort_rule` = ?) statement handle DBI::st=HASH(0x92dbedc) still Active at C4/ClassSource.pm line 249 >prepare_cached(SELECT * FROM `class_sources` WHERE cn_source = ?) statement handle DBI::st=HASH(0x926876c) still Active at C4/ClassSource.pm line 137 >attempting to use non-existent class sorting routine routine1 >prepare_cached(SELECT * FROM `class_sort_rules` WHERE `class_sort_rule` = ?) statement handle DBI::st=HASH(0x92dbedc) still Active at C4/ClassSource.pm line 249 >prepare_cached(SELECT * FROM `class_sources` WHERE cn_source = ?) statement handle DBI::st=HASH(0x926876c) still Active at C4/ClassSource.pm line 137 >t/db_dependent/ClassSource.t .. ok >All tests successful. >Files=1, Tests=24, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.12 cusr 0.01 csys = 0.15 CPU) >Result: PASS > >Signed-off-by: Srdjan <srdjan@catalyst.net.nz> >Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> >--- > t/db_dependent/ClassSource.t | 197 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 197 insertions(+) > create mode 100644 t/db_dependent/ClassSource.t > >diff --git a/t/db_dependent/ClassSource.t b/t/db_dependent/ClassSource.t >new file mode 100644 >index 0000000..13090e4 >--- /dev/null >+++ b/t/db_dependent/ClassSource.t >@@ -0,0 +1,197 @@ >+#!/usr/bin/perl >+ >+use Modern::Perl; >+ >+use Test::More tests => 24; >+ >+use C4::Context; >+ >+BEGIN { >+ use_ok('C4::ClassSource'); >+} >+can_ok( 'C4::ClassSource', >+ qw( AddClassSortRule >+ AddClassSource >+ GetClassSort >+ GetClassSortRule >+ GetClassSortRules >+ GetClassSource >+ GetClassSources >+ DelClassSortRule >+ DelClassSource >+ GetSourcesForSortRule >+ ModClassSortRule >+ ModClassSource) >+); >+ >+#Start transaction >+my $dbh = C4::Context->dbh; >+$dbh->{RaiseError} = 1; >+$dbh->{AutoCommit} = 0; >+ >+#Start tests >+$dbh->do(q|DELETE FROM class_sources|); >+$dbh->do(q|DELETE FROM class_sort_rules|); >+ >+#Test AddClassSortRule >+my $countSources = scalar( keys(GetClassSources) ); >+my $countSources2 = scalar( keys(GetClassSortRules) ); >+AddClassSortRule( 'sortrule1', 'description1', 'routine1' ); >+AddClassSortRule( 'sortrule2', 'description2', 'routine2' ); >+is( >+ scalar( keys(GetClassSortRules) ), >+ $countSources + 2, >+ "SortRule1 and SortRules2 have been added" >+); >+ >+#Test AddClassSource >+AddClassSource( 'source1', 'Description_source1', 1, 'sortrule1' ); >+AddClassSource( 'source2', 'Description_source2', 0, 'sortrule1' ); >+is( >+ scalar( keys(GetClassSources) ), >+ $countSources2 + 2, >+ "Source1 and source2 have been added" >+); >+ >+#Test GetClassSortRule >+is_deeply( >+ GetClassSortRule('sortrule1'), >+ { >+ class_sort_rule => 'sortrule1', >+ description => 'description1', >+ sort_routine => 'routine1' >+ }, >+ "GetClassSort gives sortrule1's informations" >+); >+is_deeply( GetClassSortRule(), undef, >+ "GetClassSort without params returns undef" ); >+is_deeply( GetClassSortRule('doesnt_exist'), >+ undef, "GetClassSort with an id which doesn't exist returns undef" ); >+ >+#Test GetClassSortRules >+my $getsortrules = GetClassSortRules(); >+is_deeply( >+ $getsortrules, >+ { >+ sortrule1 => { >+ class_sort_rule => 'sortrule1', >+ description => 'description1', >+ sort_routine => 'routine1' >+ }, >+ sortrule2 => { >+ class_sort_rule => 'sortrule2', >+ description => 'description2', >+ sort_routine => 'routine2' >+ } >+ }, >+ "GetClassSortRules returns the id off all SortRule and there informations" >+); >+ >+#Test GetClassSource >+my $getsource1 = GetClassSource('source1'); >+is_deeply( >+ $getsource1, >+ { >+ cn_source => 'source1', >+ description => 'Description_source1', >+ used => 1, >+ class_sort_rule => 'sortrule1' >+ }, >+ "GetClassSource gives source1's informations" >+); >+is_deeply( GetClassSource(), undef, >+ "GetClassSource without params returns undef" ); >+is_deeply( GetClassSource('doesnt_exist'), >+ undef, "GetClassSource with an id which doesn't exist returns undef" ); >+ >+#Test GetClassSources >+my $getsources = GetClassSources(); >+is_deeply( >+ $getsources, >+ { >+ source1 => { >+ cn_source => 'source1', >+ description => 'Description_source1', >+ used => 1, >+ class_sort_rule => 'sortrule1' >+ }, >+ source2 => { >+ cn_source => 'source2', >+ description => 'Description_source2', >+ used => 0, >+ class_sort_rule => 'sortrule1' >+ } >+ }, >+ "GetClassSources returns the id off all sources and there informations" >+); >+ >+#Test GetClassSort >+my $getclassSort = GetClassSort( 'source1', 'sortrule1', 'item1' ) >+ ; #Note: Create a warning:" attempting to use non-existent class sorting routine $sort_routine" >+is( $getclassSort, "SORTRULE1_ITEM1", >+" the sort key corresponding to Source1 and sortrule1 and item1 is SORTRULE1_ITEM1" >+); >+ >+#Test GetSourcesForSorSortRule >+my @sources = GetSourcesForSortRule('sortrule1'); >+is_deeply( >+ \@sources, >+ [ 'source1', 'source2' ], >+ "Sortrule1 has source1 and source2" >+); >+@sources = GetSourcesForSortRule(); >+is_deeply( \@sources, [], >+ "Without params GetSourcesForSortRule returns an empty array" ); >+@sources = GetSourcesForSortRule('doesnt_exist'); >+is_deeply( \@sources, [], >+ "With a wrong params GetSourcesForSortRule returns an empty array" ); >+ >+#Test DelClassSortRule >+#DelClassSortRule ('sortrule1'); >+#is(scalar (keys (GetClassSortRules)),1,"SortRule1 has been deleted");#FIXME : impossible if some sources exist >+DelClassSortRule('sortrule2'); >+is( scalar( keys(GetClassSortRules) ), 1, "SortRule2 has been deleted" ); >+DelClassSortRule(); >+is( scalar( keys(GetClassSortRules) ), >+ 1, "Without params DelClassSortRule doesn't do anything" ); >+DelClassSortRule('doesnt_exist'); >+is( scalar( keys(GetClassSortRules) ), >+ 1, "Without wrong id, DelClassSortRule doesn't do anything" ); >+ >+#Test DelClassSource >+DelClassSource('source2'); >+is( scalar( keys(GetClassSources) ), 1, "Source2 has been deleted" ); >+DelClassSource(); >+is( scalar( keys(GetClassSources) ), >+ 1, "Without params DelClassSource doesn't do anything" ); >+DelClassSource('doesnt_exist'); >+is( scalar( keys(GetClassSources) ), >+ 1, "Without wrong id, DelClassSource doesn't do anything" ); >+ >+#Test ModClassSortRule >+ModClassSortRule( 'sortrule1', 'description1_modified', 'routine1_modified' ); >+is_deeply( >+ GetClassSortRule('sortrule1'), >+ { >+ class_sort_rule => 'sortrule1', >+ description => 'description1_modified', >+ sort_routine => 'routine1_modified' >+ }, >+ "Sortrule1 has been modified" >+); >+ >+#Test ModClassSource >+ModClassSource( 'source1', 'Description_source1_modified', 0, 'sortrule1' ); >+is_deeply( >+ GetClassSource('source1'), >+ { >+ cn_source => 'source1', >+ description => 'Description_source1_modified', >+ used => 0, >+ class_sort_rule => 'sortrule1' >+ }, >+ "Source1 has been modified" >+); >+ >+#End transaction >+$dbh->rollback; >-- >1.7.9.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 10644
:
19961
|
19973
|
20026
|
20027
|
20028