|
|
|
@ -0,0 +1,118 @@
|
|
|
|
|
// Recipe 1 = Matched
|
|
|
|
|
// recipes-and-patterns.js under IndexOf
|
|
|
|
|
// RecipesAndPatternsMatch
|
|
|
|
|
// ($('dcp.HGCV1/csv/Index', 0) + 1) == $('dcp.HGCV1/csv/Count', 0)
|
|
|
|
|
// getValue('HGCV', $('dcp.HGCV1/csv/Count', 0), $('dcp.HGCV1/csv/SetupFile', ''), $('dcp.HGCV1/csv/Pattern', ''), getContextData('2', 'cds.NULL_DATA', ''));
|
|
|
|
|
|
|
|
|
|
function getValue(tool, patternSize, recipe, pattern, json) {
|
|
|
|
|
let result;
|
|
|
|
|
if (tool == undefined || tool.length === 0 || patternSize == undefined || patternSize.length === 0 || recipe == undefined || recipe.length === 0 || pattern == undefined || pattern.length === 0 || json == undefined || json.length === 0)
|
|
|
|
|
result = 'A) Invalid input!';
|
|
|
|
|
else {
|
|
|
|
|
let parsed;
|
|
|
|
|
try {
|
|
|
|
|
parsed = JSON.parse(json);
|
|
|
|
|
} catch (error) {
|
|
|
|
|
parsed = null;
|
|
|
|
|
}
|
|
|
|
|
if (parsed == null)
|
|
|
|
|
result = 'B) Invalid input!';
|
|
|
|
|
else if (parsed.rds == undefined || parsed.rds.prodSpec == undefined || parsed.rds.prodSpec.recipesAndPatterns == undefined)
|
|
|
|
|
result = 'C) No Spec!';
|
|
|
|
|
else {
|
|
|
|
|
let toolMatches = [];
|
|
|
|
|
for (let index = 0; index < parsed.rds.prodSpec.recipesAndPatterns.length; index++) {
|
|
|
|
|
if (parsed.rds.prodSpec.recipesAndPatterns[index].tool === tool) {
|
|
|
|
|
toolMatches.push(parsed.rds.prodSpec.recipesAndPatterns[index]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (toolMatches == null || toolMatches.length === 0)
|
|
|
|
|
result = 'Tool [' + tool + '] not found in OI API results!';
|
|
|
|
|
else {
|
|
|
|
|
let debug = '';
|
|
|
|
|
let matches = 0;
|
|
|
|
|
for (let index = 0; index < toolMatches.length; index++) {
|
|
|
|
|
debug += 'patternSize: ' + toolMatches[index].patternSize +
|
|
|
|
|
'; recipe: ' + toolMatches[index].recipe +
|
|
|
|
|
'; pattern: ' + toolMatches[index].pattern + ';~';
|
|
|
|
|
if (toolMatches[index].patternSize == patternSize &&
|
|
|
|
|
toolMatches[index].recipe.localeCompare(recipe, ['en-US'], { sensitivity: 'base' }) === 0 &&
|
|
|
|
|
toolMatches[index].pattern.localeCompare(pattern, ['en-US'], { sensitivity: 'base' }) === 0) {
|
|
|
|
|
matches++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (matches > 0)
|
|
|
|
|
result = '1';
|
|
|
|
|
else {
|
|
|
|
|
result = 'Value not matched~Run~patternSize: ' + patternSize + '; recipe: ' + recipe + '; pattern: ' + pattern + ';~API~' + debug;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getValue('HGCV', 9, '6IN4_10.SET', '6_9PLUS.PAT', '{"rds":{"prodSpec":{"recipesAndPatterns":[{"recipe":"6IN4_10.SET","pattern":"6_9PLUS.PAT","patternSize":9,"tool":"HGCV"}]}}}');
|
|
|
|
|
|
|
|
|
|
let json;
|
|
|
|
|
let tool;
|
|
|
|
|
let recipe;
|
|
|
|
|
let pattern;
|
|
|
|
|
let patternSize;
|
|
|
|
|
|
|
|
|
|
tool = 'HGCV'
|
|
|
|
|
patternSize = 9;
|
|
|
|
|
recipe = '6IN4_10.SET';
|
|
|
|
|
pattern = '6_9PLUS.PAT';
|
|
|
|
|
json = '{"rds":{"prodSpec":{"recipesAndPatterns":[{"recipe":"6IN4_10.SET","pattern":"6_9PLUS.PAT","patternSize":9,"tool":"HGCV"}]}}}';
|
|
|
|
|
const testA = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testA !== '1')
|
|
|
|
|
throw 'Test A failed: ' + testA;
|
|
|
|
|
tool = null;
|
|
|
|
|
const testB = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testB !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test L failed: ' + testB;
|
|
|
|
|
tool = '';
|
|
|
|
|
const testC = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testC !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test M failed: ' + testC;
|
|
|
|
|
patternSize = null;
|
|
|
|
|
const testD = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testD !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test J failed: ' + testD;
|
|
|
|
|
patternSize = '';
|
|
|
|
|
const testE = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testE !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test K failed: ' + testE;
|
|
|
|
|
recipe = null;
|
|
|
|
|
const testF = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testF !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test F failed: ' + testF;
|
|
|
|
|
recipe = '';
|
|
|
|
|
const testG = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testG !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test G failed: ' + testG;
|
|
|
|
|
pattern = null;
|
|
|
|
|
const testH = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testH !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test H failed: ' + testH;
|
|
|
|
|
pattern = '';
|
|
|
|
|
const testI = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testI !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test I failed: ' + testI;
|
|
|
|
|
json = '';
|
|
|
|
|
const testK = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testK !== 'A) Invalid input!')
|
|
|
|
|
throw 'Test B failed: ' + testK;
|
|
|
|
|
json = 'invalid';
|
|
|
|
|
const testL = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testL !== 'B) Invalid input!')
|
|
|
|
|
throw 'Test C failed: ' + testL;
|
|
|
|
|
json = '{"rds":{}}';
|
|
|
|
|
const testM = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testM !== 'C) No Spec!')
|
|
|
|
|
throw 'Test D failed: ' + testM;
|
|
|
|
|
json = '{"rds":{"prodSpec":{"recipesAndPatterns":[]}}}';
|
|
|
|
|
const testN = getValue(tool, patternSize, recipe, pattern, json);
|
|
|
|
|
if (testN !== 'Tool [HGCV] not found in OI API results!')
|
|
|
|
|
throw 'Test E failed: ' + testN;
|