value_ref_circularity.spec.ts 2.96 KiB
import { Session } from "../../src/index";
import { NubTest, NubTestParams } from "../nubtest";
/**
 * IMPORTANT !
 * Décommenter temporairement la ligne suivante (import { } from "./mock_jasmine")
 * Pour exécuter ce code dans le débugger.
 * Faire de même avec le fichier test_func.ts
 */
// import { describe, expect, it, xdescribe, xit, fail } from "../mock_jasmine";
let nub1: NubTest;
let nub2: NubTest;
let nub3: NubTest;
let prm1: NubTestParams;
let prm2: NubTestParams;
let prm3: NubTestParams;
/**
 * crée l'environnement de test.
 * répété à chaque test car il manque un mock de beforeEach
function createEnv() {
    nub1 = new NubTest(new NubTestParams());
    prm1 = nub1.prms as NubTestParams;
    nub2 = new NubTest(new NubTestParams());
    prm2 = nub2.prms as NubTestParams;
    nub3 = new NubTest(new NubTestParams());
    prm3 = nub3.prms as NubTestParams;
    Session.getInstance().clear();
    Session.getInstance().registerNub(nub1);
    Session.getInstance().registerNub(nub2);
    Session.getInstance().registerNub(nub3);
describe("référence d'un paramètre à un autre : ", () => {
    describe("vérification des références circulaires : ", () => {
        it("test 1", () => {
            // cas de figure (ne doit pas échouer) :
            // nub2.A référence nub1.A
            createEnv();
            try {
                prm2.A.defineReference(nub1, "A"); // ne doit pas échouer
            } catch (e) {
                fail();
        });
        it("test 2", () => {
            // cas de figure (ne doit pas échouer) :
            // nub1.A référence nub2.A qui référence nub3.A
            createEnv();
            try {
                prm1.A.defineReference(nub2, "A");
                prm2.A.defineReference(nub3, "A");
            } catch (e) {
                fail();
        });
        it("test 3", () => {
            // cas de figure (doit échouer) :
            // nub2.A référence nub1.A qui référence nub2.A
7172737475767778798081828384858687888990919293949596979899100101102103104105
createEnv(); try { prm2.A.defineReference(nub1, "A"); // ne doit pas échouer prm1.A.defineReference(nub2, "A"); // doit échouer fail(); // tslint:disable-next-line:no-empty } catch (e) {} }); it("test 4", () => { // cas de figure (doit échouer) : // param1 référence param2 (OK) // param3 référence param1 (OK) // param2 référence param3 (doit échouer) createEnv(); try { prm1.A.defineReference(nub2, "A"); // ne doit pas échouer prm3.A.defineReference(nub2, "A"); // ne doit pas échouer } catch (e) { fail(); } try { prm2.A.defineReference(nub3, "A"); // doit échouer fail(); // tslint:disable-next-line:no-empty } catch (e) { } }); }); });