Commit 1be701c1 authored by Mathias Chouet's avatar Mathias Chouet :spaghetti:
Browse files

Fix bug in hasLog() methods

Showing with 33 additions and 8 deletions
+33 -8
...@@ -195,7 +195,7 @@ describe("Class Pab: ", () => { ...@@ -195,7 +195,7 @@ describe("Class Pab: ", () => {
) )
); );
pab.calculatedParam = pab.prms.Z1; pab.calculatedParam = pab.prms.Z1;
expect(pab.CalcSerie().resultElement.log.messages[0].code) expect(pab.CalcSerie().globalLog.messages[0].code)
.toBe(MessageCode.ERROR_CLOISON_AVAL_UN_OUVRAGE_REGULE); .toBe(MessageCode.ERROR_CLOISON_AVAL_UN_OUVRAGE_REGULE);
}); });
}); });
......
...@@ -6,11 +6,11 @@ import { Props } from "../props"; ...@@ -6,11 +6,11 @@ import { Props } from "../props";
import { Session } from "../session"; import { Session } from "../session";
import { ParallelStructure } from "../structure/parallel_structure"; import { ParallelStructure } from "../structure/parallel_structure";
import { StructureTriangularTruncWeirFree } from "../structure/structure_triangular_trunc_weir"; import { StructureTriangularTruncWeirFree } from "../structure/structure_triangular_trunc_weir";
import { Message, MessageCode } from "../util/message";
import { Result } from "../util/result"; import { Result } from "../util/result";
import { CloisonAval, ParallelStructureParams } from "./cloison_aval"; import { CloisonAval, ParallelStructureParams } from "./cloison_aval";
import { Cloisons } from "./cloisons"; import { Cloisons } from "./cloisons";
import { PabParams } from "./pab_params"; import { PabParams } from "./pab_params";
import { Message, MessageCode } from "../util/message";
export { PabParams }; export { PabParams };
...@@ -93,8 +93,16 @@ export class Pab extends Nub { ...@@ -93,8 +93,16 @@ export class Pab extends Nub {
} }
} }
public CalcSerie(rInit?: number, sDonnee?: any): Result {
if (!this.downWall.checkVanneLevante()) {
const emptyResult = new Result(undefined, this);
emptyResult.globalLog.insert(new Message(MessageCode.ERROR_CLOISON_AVAL_UN_OUVRAGE_REGULE));
return emptyResult;
}
return super.CalcSerie(rInit, sDonnee);
}
/** /**
*
* @param sVarCalc Calcul * @param sVarCalc Calcul
*/ */
public Calc(sVarCalc: string, rInit?: number): Result { public Calc(sVarCalc: string, rInit?: number): Result {
......
...@@ -72,7 +72,17 @@ export class Result extends JalhydObject implements INamedIterableValues { ...@@ -72,7 +72,17 @@ export class Result extends JalhydObject implements INamedIterableValues {
* @return true si il y a au moins un message dans le log global ou dans les ResultElement * @return true si il y a au moins un message dans le log global ou dans les ResultElement
*/ */
public get hasLog(): boolean { public get hasLog(): boolean {
return (this.nbResultElements > 0 && this.log.messages.length > 0) || this.hasGlobalLog; if (this.hasGlobalLog) {
return true;
} else {
// Test des journaux des résultats
for (const r of this._resultElements) {
if (r.hasLog) {
return true;
}
}
}
return false;
} }
/** /**
...@@ -111,7 +121,7 @@ export class Result extends JalhydObject implements INamedIterableValues { ...@@ -111,7 +121,7 @@ export class Result extends JalhydObject implements INamedIterableValues {
} }
/** /**
* @return le résultat de calcul du 1er ResultElement * @return le résultat de calcul du ResultElement le plus récent
*/ */
get vCalc(): number { get vCalc(): number {
return this.resultElement.vCalc; return this.resultElement.vCalc;
...@@ -122,7 +132,7 @@ export class Result extends JalhydObject implements INamedIterableValues { ...@@ -122,7 +132,7 @@ export class Result extends JalhydObject implements INamedIterableValues {
} }
/** /**
* retourne le journal du 1er ResultElement * retourne le journal du ResultElement le plus récent
*/ */
public get log() { public get log() {
// return this._globalLog; // return this._globalLog;
...@@ -130,14 +140,14 @@ export class Result extends JalhydObject implements INamedIterableValues { ...@@ -130,14 +140,14 @@ export class Result extends JalhydObject implements INamedIterableValues {
} }
/** /**
* retourne le code du 1er ResultElement * retourne le code du ResultElement le plus récent
*/ */
public get code(): MessageCode { public get code(): MessageCode {
return this.resultElement.code; return this.resultElement.code;
} }
/** /**
* retourne les résultats complémentaires du 1er ResultElement * retourne les résultats complémentaires du ResultElement le plus récent
*/ */
get extraResults() { get extraResults() {
return this.resultElement.extraResults; return this.resultElement.extraResults;
......
...@@ -65,6 +65,13 @@ export class ResultElement { ...@@ -65,6 +65,13 @@ export class ResultElement {
return this.log.messages.length; return this.log.messages.length;
} }
/**
* Returns true if current log has at least one message
*/
public get hasLog() {
return this.messageCount > 0;
}
public get hasErrorMessages(): boolean { public get hasErrorMessages(): boolean {
for (const m of this.log.messages) { for (const m of this.log.messages) {
if (m.code !== MessageCode.ERROR_OK && m.getSeverity() === MessageSeverity.ERROR) { if (m.code !== MessageCode.ERROR_OK && m.getSeverity() === MessageSeverity.ERROR) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment