/** * 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. */ package org.apache.camel.pgevent; import com.impossibl.postgres.jdbc.PGDataSource; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.main.Main; import org.junit.Before; import org.junit.Test; public class IntegrationTest { private String host; private String port; private String database; private String user; private String password; private Main main; private PGDataSource ds; @Before public void setUp() throws Exception { this.host = System.getProperty("pgjdbc.test.server", "localhost"); this.port = System.getProperty("pgjdbc.test.port", "5432"); this.database = System.getProperty("pgjdbc.test.db", "event_tests"); this.user = System.getProperty("pgjdbc.test.user", "dphillips"); this.password = System.getProperty("pgjdbc.test.password"); ds = new PGDataSource(); ds.setHost(this.host); ds.setPort(Integer.parseInt(this.port)); ds.setDatabase(this.database); ds.setUser(this.user); if (this.password != null) { ds.setPassword(this.password); } main = new Main(); main.bind("test", ds); main.addRouteBuilder(buildConsumer()); main.addRouteBuilder(buildProducer()); } RouteBuilder buildConsumer() { RouteBuilder builder = new RouteBuilder() { @Override public void configure() throws Exception { fromF("pgevent://%s:%s/%s/testchannel?user=%s&pass=%s", host, port, database, user, password) .to("log:org.apache.camel.pgevent.PgEventConsumer?level=DEBUG"); } }; return builder; } RouteBuilder buildProducer() { RouteBuilder builder = new RouteBuilder() { @Override public void configure() throws Exception { from("timer://test?fixedRate=true&period=5000") .setBody(header(Exchange.TIMER_FIRED_TIME)) .toF("pgevent://%s:%s/%s/testchannel?user=%s&pass=%s", host, port, database, user, password); } }; return builder; } @Test public void waitHere() throws Exception { main.run(); } }