Package fr.ippon.tatami.bot.route

Source Code of fr.ippon.tatami.bot.route.RssRouteBuilderCamelTest

package fr.ippon.tatami.bot.route;

import com.google.common.collect.Lists;
import fr.ippon.tatami.bot.config.TatamibotConfiguration;
import org.apache.camel.builder.AdviceWithRouteBuilder;
import org.joda.time.DateTime;
import org.junit.Test;

import java.util.List;

import static com.jayway.awaitility.Awaitility.await;
import static com.jayway.awaitility.Awaitility.to;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;

public class RssRouteBuilderCamelTest extends SourceRouteBuilderBaseCamelTest<RssRouteBuilder> {

    public RssRouteBuilderCamelTest() {
        super(RssRouteBuilder.class);
    }

    @Test
    public void testRssRoute() throws Exception {
        launchContext();

        await().untilCall(to(messages).size(), is(greaterThanOrEqualTo(3)));

        assertThat(messages, hasSize(3));
        assertThat(messages, // in order ...
                is(equalTo((List<String>) Lists.newArrayList(
                        "[Ippevent Mobilité – Applications mobiles – ouverture des inscriptions](http://feedproxy.google.com/~r/LeBlogDesExpertsJ2ee/~3/GcJYERHTfoQ/)",
                        "[Business – Ippon Technologies acquiert Atomes et renforce son offre Cloud](http://feedproxy.google.com/~r/LeBlogDesExpertsJ2ee/~3/wK-Y47WGZBQ/)",
                        "[Les Méthodes Agiles – Définition de l’Agilité](http://feedproxy.google.com/~r/LeBlogDesExpertsJ2ee/~3/hSqyt1MCOoo/)"))));
    }

    // ---

    @Override
    protected void launchContext() throws Exception {
        String routeDefId = "rss-ippon.fr"; // spécifique rss
        context.getRouteDefinition(routeDefId).adviceWith(context, new AdviceWithRouteBuilder() {
            @Override
            public void configure() throws Exception {
                String originalUri = getOriginalRoute().getInputs().get(0).getUri();
                replaceFromWith(originalUri + "consumer.initialDelay=0");   // spécifique rss ???
            }
        });

        context.start(); // necessary because of isUseAdviceWith=true
    }

    @Override
    protected String getFirstMsgBody() {
        return "[Ippevent Mobilité – Applications mobiles – ouverture des inscriptions](http://feedproxy.google.com/~r/LeBlogDesExpertsJ2ee/~3/GcJYERHTfoQ/)";
    }

    @Override
    protected TatamibotConfiguration getBotConfiguration() {
        final String fileUrl = this.getClass().getResource("rss.xml").toExternalForm(); // spécifique ...

        TatamibotConfiguration configuration = new TatamibotConfiguration();
        configuration.setTatamibotConfigurationId("TEST_CONFIG_ID");
        configuration.setType(TatamibotConfiguration.TatamibotType.RSS);     // spécifique ... mais pas utilisé ici
        configuration.setDomain("ippon.fr");
//        configuration.setUrl("http://feeds.feedburner.com/LeBlogDesExpertsJ2ee?format=xml");
        configuration.setUrl(fileUrl);
        configuration.setPollingDelay(60); // not used here
        configuration.setLastUpdateDate(DateTime.parse("2010-01-01T00:00:00").toDate());
        return configuration;
    }

}
TOP

Related Classes of fr.ippon.tatami.bot.route.RssRouteBuilderCamelTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.