| /* |
| * 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'); |
| }); |
| |
| }); |