-- ============================================================================
-- Fichier      : testTousLesRuchers.sql
-- Auteur       : PASQUIER Léo
-- Date         : 23/12/2020
-- Base         : Ruche
-- Rôle			: Jeu de test pour la requete "Quels sont les apiculteurs qui
--                produisent du miel dans tous les ruchers dont le type de miel
--                est sapin ?".
-- Résultat     : testTousLesRuchers.out
-- ============================================================================

-- ============================================================================
-- Modification du format de la date pour se conformer aux données du programme de test
-- ============================================================================

ALTER SESSION SET NLS_DATE_FORMAT = 'dd/mm/yyyy';

-- ============================================================================
-- Suppression des nuplets de la base de données.
-- ============================================================================

@../utilitaires/vider_base_ruche.sql

-- ============================================================================
-- Jeu de test pour le domaine valide :
-- ============================================================================

-- Cas 1 : Un apiculteur qui possède une ruche dans chaque rucher de type sapin.
-- L'apiculteur :
INSERT INTO APICULTEUR (IDAPI, NOMAPI, PRENOMAPI, TELAPI, MAILAPI, ADRAPI)
VALUES (1, 'Example1', 'EXAMPLE1', '0611223344', 'exemple1@mail.org', 'Exemple Ville');
-- Les ruchers :
INSERT INTO RUCHER (IDRUCHER, TYPEMIEL)
VALUES (1, 'sapin');
INSERT INTO RUCHER (IDRUCHER, TYPEMIEL)
VALUES (2, 'sapin');
INSERT INTO RUCHER (IDRUCHER, TYPEMIEL)
VALUES (3, 'sapin');
-- Les ruches :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (1, 10, 1, 1);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (2, 10, 1, 1);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (3, 10, 1, 2);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (4, 10, 1, 3);


-- Cas 2 : Un apiculteur qui possède une ruche dans chaque rucher de type sapin
--         et d’autres ruches.
-- L'apiculteur :
INSERT INTO APICULTEUR (IDAPI, NOMAPI, PRENOMAPI, TELAPI, MAILAPI, ADRAPI)
VALUES (2, 'Example2', 'EXAMPLE2', '0611223344', 'exemple2@mail.org', 'Exemple Ville');
-- Le rucher :
INSERT INTO RUCHER (IDRUCHER, TYPEMIEL)
VALUES (4, 'acacia');
-- Les ruches :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (5, 10, 2, 1);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (6, 10, 2, 2);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (7, 10, 2, 3);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (8, 10, 2, 4);

-- ============================================================================
-- Jeu de test pour le domaine invalide :
-- ============================================================================

-- Cas 3 : Un apiculteur qui possède une ruche dans plusieurs ruchers de type
--         sapin mais pas tous.
-- L'apiculteur
INSERT INTO APICULTEUR (IDAPI, NOMAPI, PRENOMAPI, TELAPI, MAILAPI, ADRAPI)
VALUES (3, 'Example3', 'EXAMPLE3', '0611223344', 'exemple3@mail.org', 'Exemple Ville');
-- Le rucher :
INSERT INTO RUCHER (IDRUCHER, TYPEMIEL)
VALUES (5, 'colza');
-- Les ruches :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (9, 10, 3, 1);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (10, 10, 3, 3);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (11, 10, 3, 4);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (12, 10, 3, 5);

-- Cas 4 : Un apiculteur qui ne possède aucune ruche dans un rucher de type sapin.
-- L'apiculteur
INSERT INTO APICULTEUR (IDAPI, NOMAPI, PRENOMAPI, TELAPI, MAILAPI, ADRAPI)
VALUES (4, 'Example4', 'EXAMPLE4', '0611223344', 'exemple4@mail.org', 'Exemple Ville');
-- Le rucher :
INSERT INTO RUCHER (IDRUCHER, TYPEMIEL)
VALUES (6, 'thym');
-- Les ruches :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (13, 10, 4, 4);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (14, 10, 4, 5);
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (15, 10, 4, 6);

-- ============================================================================
-- Gestion de l'affichage du fichier résultat :
-- ============================================================================

SPOOL tousLesRuchers/testTousLesRuchers.out

PROMPT Fichier resultat du test : testTousLesRuchers.out
@../utilitaires/presentation_ruche.sql
@../utilitaires/afficher_base_ruche.sql

-- ============================================================================
-- Requête à tester :
-- ============================================================================

PROMPT Resultat de la requete :
SET echo ON
@tousLesRuchers/tousLesRuchers.sql
SET echo OFF

-- ============================================================================
-- Fin du programme de test
-- ============================================================================

SPOOL OFF