/home/arranoyd/magicraft/wp-content/plugins/incsub-support/tests/test-faq-category.php
<?php
/**
* @group faq_category
*/
class Support_Faq_Category extends Incsub_Support_UnitTestCase {
function test_insert_faq_category() {
$cat_id = incsub_support_insert_faq_category( 'A category' );
$cat = incsub_support_get_faq_category( $cat_id );
$this->assertEquals( $cat->cat_name, 'A category' );
}
function test_update_faq_category() {
$cat_id = incsub_support_insert_faq_category( 'A category' );
$cat = incsub_support_get_faq_category( $cat_id );
incsub_support_update_faq_category( $cat_id, array( 'cat_name' => 'New category name' ) );
$cat = incsub_support_get_faq_category( $cat_id );
$this->assertEquals( $cat->cat_name, 'New category name' );
}
function test_delete_faq_category() {
$cat_id = incsub_support_insert_faq_category( 'A category' );
incsub_support_delete_faq_category( $cat_id );
$cat = incsub_support_get_faq_category( $cat_id );
$this->assertFalse( $cat );
}
function test_set_default_faq_category() {
$default = incsub_support_get_default_faq_category();
$cat_id = incsub_support_insert_faq_category( 'A category' );
incsub_support_set_default_faq_category( $cat_id );
$cat = incsub_support_get_default_faq_category( $cat_id );
$this->assertEquals( $cat->cat_name, 'A category' );
}
function test_delete_default_category() {
$first_default_category = incsub_support_get_default_faq_category();
$cat_id = incsub_support_insert_faq_category( 'A category' );
incsub_support_set_default_faq_category( $cat_id );
// We cannot delete the default category
$result = incsub_support_delete_faq_category( $cat_id );
$this->assertFalse( $result );
}
function test_get_faq_categories() {
$cat_id_1 = incsub_support_insert_faq_category( 'A category 1' );
$cat_id_2 = incsub_support_insert_faq_category( 'A category 2' );
$cat_id_3 = incsub_support_insert_faq_category( 'A category 3' );
$cats = incsub_support_get_faq_categories();
$this->assertCount( 4, $cats );
incsub_support_delete_faq_category( $cat_id_2 );
$cats = incsub_support_get_faq_categories();
$this->assertCount( 3, $cats );
}
function test_count_faqs_for_category() {
$cat_id = incsub_support_insert_faq_category( 'A category' );
$cat = incsub_support_get_faq_category( $cat_id );
$args = array(
'cat_id' => $cat_id,
'question' => 'A question',
'answer' => 'An answer'
);
$faq_1 = incsub_support_insert_faq( $args );
$faq_2 = incsub_support_insert_faq( $args );
$this->assertEquals( 2, $cat->get_faqs_count() );
$faq_3 = incsub_support_insert_faq( $args );
$this->assertEquals( 3, $cat->get_faqs_count() );
$new_cat_id = incsub_support_insert_faq_category( 'A category 2' );
$args = array( 'cat_id' => $new_cat_id );
incsub_support_update_faq( $faq_3, $args );
$this->assertEquals( 2, $cat->get_faqs_count() );
incsub_support_delete_faq( $faq_1 );
$this->assertEquals( 1, $cat->get_faqs_count() );
}
function test_reassign_faqs_to_default_category() {
$cat_id = incsub_support_insert_faq_category( 'A category' );
$cat = incsub_support_get_faq_category( $cat_id );
$default_category = incsub_support_get_default_faq_category();
$this->assertEquals( 0, $default_category->get_faqs_count() );
$args = array(
'cat_id' => $cat_id,
'question' => 'A question',
'answer' => 'An answer'
);
$faq_1 = incsub_support_insert_faq( $args );
$faq_2 = incsub_support_insert_faq( $args );
incsub_support_delete_faq_category( $cat_id );
$this->assertEquals( 2, $default_category->get_faqs_count() );
}
function test_insert_duplicated_faq_category() {
$cat_id = incsub_support_insert_faq_category( 'A category' );
$cat_id = incsub_support_insert_faq_category( 'A category' );
$this->assertFalse( $cat_id );
}
}