blob: 3d4606d6d68ff0547fd49d29956f37f3272e2c3b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {expect} from 'chai';
import 'mocha';
import {FromDefinition, ExpressionDefinition, PropertyExpressionDefinition} from "../src/core/model/CamelDefinition";
import {Integration} from "../src/core/model/IntegrationDefinition";
import {CamelDefinitionYaml} from "../src/core/api/CamelDefinitionYaml";
import {RouteDefinition, SagaDefinition, ToDefinition} from "../lib/model/CamelDefinition";
import * as fs from 'fs';
describe('Multi object property', () => {
// TODO: Make new test for multiobject property bevause wireTab has no setHeader anymore
it('Saga options', () => {
const i = Integration.createNew("test")
const option1 = new PropertyExpressionDefinition({key:"key1", expression: new ExpressionDefinition({simple:"${body}"})})
const option2 = new PropertyExpressionDefinition({key:"key2", expression: new ExpressionDefinition({simple:"${headers}"})})
const saga = new SagaDefinition({steps: [new ToDefinition({uri: "direct:direct2"})], option: [option1, option2]})
const flow1 = new FromDefinition({uri: "direct1"});
flow1.steps?.push(saga);
i.spec.flows?.push(new RouteDefinition({from: flow1}));
const yaml = CamelDefinitionYaml.integrationToYaml(i);
const yaml2 = fs.readFileSync('test/multiObjectProperties1.yaml', {encoding: 'utf8', flag: 'r'});
expect(yaml).to.equal(yaml2);
const i2 = CamelDefinitionYaml.yamlToIntegration("test1.yaml", yaml);
const s: SagaDefinition = i2.spec.flows?.[0].from.steps[0] as SagaDefinition;
const t: ToDefinition | undefined = s.steps?.[0] as ToDefinition;
expect(t?.uri).to.equal('direct:direct2');
});
});