odatafy-parser
Version:
generate odatafy ast from odata query parameters
49 lines (48 loc) • 1.95 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const searchExpressionPreProc_1 = require("../../src/processing/searchExpressionPreProc");
describe('expressionPreProcessingSearch tests', () => {
describe('reverseExprLogic()', () => {
[{
input: "blau AND rot AND gruen",
expected: "gruen AND rot AND blau"
},
{
input: "blau OR rot OR gruen",
expected: "gruen OR rot OR blau"
},
{
input: "blau AND rot OR gruen",
expected: "gruen OR rot AND blau"
},
{
input: "'Fynn' AND 'Steffen' OR 'Robin'",
expected: "'Robin' OR 'Steffen' AND 'Fynn'"
},
{
input: "('Fynn' AND 'Steffen') OR 'Robin'",
expected: "'Robin' OR ('Steffen' AND 'Fynn')"
},
{
input: "'Fynn' AND ('Steffen' OR 'Robin')",
expected: "('Robin' OR 'Steffen') AND 'Fynn'"
},
{
input: "'Fynn' AND ('Steffen' OR 'Robin' AND D eq 'Maik')",
expected: "(D eq 'Maik' AND 'Robin' OR 'Steffen') AND 'Fynn'"
},
{
input: "'Fynn' AND NOT ('Steffen' OR 'Robin' AND D eq 'Maik')",
expected: "NOT (D eq 'Maik' AND 'Robin' OR 'Steffen') AND 'Fynn'"
}
].forEach(testcase => {
it(`should return ${testcase.expected} for expression ${testcase.input}`, () => {
assert_1.default.equal((0, searchExpressionPreProc_1.reverseExprLogic)(testcase.input), testcase.expected);
});
});
});
});