labfy-investigation/tests/test_evidence_category_item.c
2026-07-20 11:57:56 +02:00

332 lines
6.3 KiB
C

/******************************************************************************
* @file test_evidence_category_item.c
* @brief Tests unitaires de EvidenceCategoryItem.
******************************************************************************/
#include "widgets/evidence_category_item.h"
#include <glib.h>
/**
* @brief Crée une preuve métier valide.
*/
static EvidenceRecord *test_evidence_category_item_create_record(void)
{
EvidenceRecord *evidence_record = NULL;
GError *error = NULL;
evidence_record =
evidence_record_new(
"550e8400-e29b-41d4-a716-446655440000",
"capture-instagram.png",
"550e8400-e29b-41d4-a716-446655440000.png",
"01_Preuves_Originales/Documents/"
"550e8400-e29b-41d4-a716-446655440000.png",
"image",
4096,
"00000000000000000000000000000000"
"00000000000000000000000000000000",
"2026-07-20T07:16:01Z",
"2026-07-19T18:30:00Z",
"Conversation Instagram",
"Capture d'écran reçue.",
EVIDENCE_INTEGRITY_STATUS_UNKNOWN,
&error
);
g_assert_no_error(
error
);
g_assert_nonnull(
evidence_record
);
return evidence_record;
}
/**
* @brief Vérifie la création d'une catégorie vide.
*/
static void test_evidence_category_item_new_valid(void)
{
EvidenceCategoryItem *evidence_category_item =
NULL;
evidence_category_item =
evidence_category_item_new(
" image ",
" Images "
);
g_assert_nonnull(
evidence_category_item
);
g_assert_cmpstr(
evidence_category_item_get_type_identifier(
evidence_category_item
),
==,
"image"
);
g_assert_cmpstr(
evidence_category_item_get_label(
evidence_category_item
),
==,
"Images"
);
g_assert_cmpuint(
evidence_category_item_get_count(
evidence_category_item
),
==,
0
);
g_assert_nonnull(
evidence_category_item_get_children(
evidence_category_item
)
);
g_assert_cmpuint(
g_list_model_get_item_type(
evidence_category_item_get_children(
evidence_category_item
)
),
==,
EVIDENCE_TYPE_LIST_ITEM
);
g_object_unref(
evidence_category_item
);
}
/**
* @brief Vérifie l'ajout et la propriété des preuves.
*/
static void test_evidence_category_item_append(void)
{
EvidenceCategoryItem *evidence_category_item =
NULL;
EvidenceRecord *evidence_record =
NULL;
EvidenceListItem *evidence_list_item =
NULL;
EvidenceListItem *stored_item =
NULL;
evidence_category_item =
evidence_category_item_new(
"image",
"Images"
);
evidence_record =
test_evidence_category_item_create_record();
evidence_list_item =
evidence_list_item_new(
evidence_record
);
g_assert_nonnull(
evidence_category_item
);
g_assert_nonnull(
evidence_list_item
);
g_assert_true(
evidence_category_item_append(
evidence_category_item,
evidence_list_item
)
);
/*
* La catégorie possède maintenant sa propre référence.
*/
g_object_unref(
evidence_list_item
);
evidence_record_free(
evidence_record
);
g_assert_cmpuint(
evidence_category_item_get_count(
evidence_category_item
),
==,
1
);
stored_item =
g_list_model_get_item(
evidence_category_item_get_children(
evidence_category_item
),
0
);
g_assert_nonnull(
stored_item
);
g_assert_cmpstr(
evidence_list_item_get_identifier(
stored_item
),
==,
"550e8400-e29b-41d4-a716-446655440000"
);
g_assert_cmpstr(
evidence_list_item_get_original_name(
stored_item
),
==,
"capture-instagram.png"
);
g_object_unref(
stored_item
);
g_object_unref(
evidence_category_item
);
}
/**
* @brief Vérifie les arguments invalides.
*/
static void test_evidence_category_item_invalid_arguments(void)
{
EvidenceCategoryItem *evidence_category_item =
NULL;
g_assert_null(
evidence_category_item_new(
NULL,
"Images"
)
);
g_assert_null(
evidence_category_item_new(
"image",
NULL
)
);
g_assert_null(
evidence_category_item_new(
" ",
"Images"
)
);
g_assert_null(
evidence_category_item_new(
"image",
" "
)
);
evidence_category_item =
evidence_category_item_new(
"image",
"Images"
);
g_assert_nonnull(
evidence_category_item
);
g_assert_false(
evidence_category_item_append(
evidence_category_item,
NULL
)
);
g_assert_false(
evidence_category_item_append(
NULL,
NULL
)
);
g_assert_null(
evidence_category_item_get_type_identifier(
NULL
)
);
g_assert_null(
evidence_category_item_get_label(
NULL
)
);
g_assert_cmpuint(
evidence_category_item_get_count(
NULL
),
==,
0
);
g_assert_null(
evidence_category_item_get_children(
NULL
)
);
g_clear_object(
&evidence_category_item
);
}
int main(
int argc,
char **argv
)
{
g_test_init(
&argc,
&argv,
NULL
);
g_test_add_func(
"/evidence-category-item/new-valid",
test_evidence_category_item_new_valid
);
g_test_add_func(
"/evidence-category-item/append",
test_evidence_category_item_append
);
g_test_add_func(
"/evidence-category-item/invalid-arguments",
test_evidence_category_item_invalid_arguments
);
return g_test_run();
}