Author: ningjiang
Date: Fri Dec 10 01:55:20 2010
New Revision: 1044194

URL: http://svn.apache.org/viewvc?rev=1044194&view=rev
Log:
CAMEL-3421 Added more test into camel-irc

Added:
    
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcConsumerTest.java
   (with props)
    
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcEndpointTest.java
   (with props)
    
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcProducerTest.java
   (with props)

Added: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcConsumerTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcConsumerTest.java?rev=1044194&view=auto
==============================================================================
--- 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcConsumerTest.java
 (added)
+++ 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcConsumerTest.java
 Fri Dec 10 01:55:20 2010
@@ -0,0 +1,81 @@
+/**
+ * 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.component.irc;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.camel.Processor;
+import org.junit.Before;
+import org.junit.Test;
+import org.schwering.irc.lib.IRCConnection;
+import org.schwering.irc.lib.IRCEventAdapter;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+public class IrcConsumerTest {
+
+    private IRCConnection connection;
+    private Processor processor;
+    private IrcEndpoint endpoint;
+    private IrcConfiguration configuration;
+    private IrcConsumer consumer;
+    private IRCEventAdapter listener;
+
+    @Before
+    public void doSetup() {
+        connection = mock(IRCConnection.class);
+        endpoint = mock(IrcEndpoint.class);
+        processor = mock(Processor.class);
+        configuration = mock(IrcConfiguration.class);
+        listener = mock(IRCEventAdapter.class);
+
+        List<String> channels = new ArrayList<String>();
+        List<String> keys = new ArrayList<String>();
+
+        channels.add("chan1");
+        channels.add("chan2");
+
+        keys.add("");
+        keys.add("chan2key");
+
+        when(configuration.getChannels()).thenReturn(channels);
+
+        when(endpoint.getConfiguration()).thenReturn(configuration);
+
+        consumer = new IrcConsumer(endpoint, processor, connection);
+        consumer.setListener(listener);
+    }
+
+    @Test
+    public void doStopTest() throws Exception {
+        consumer.doStop();
+        verify(connection).doPart("chan1");
+        verify(connection).doPart("chan2");
+        verify(connection).removeIRCEventListener(listener);
+    }
+
+    @Test
+    public void doStartTest() throws Exception {
+        consumer.doStart();
+
+        verify(connection).addIRCEventListener(listener);
+        verify(endpoint).joinChannels();
+    }
+}

Propchange: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcConsumerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcConsumerTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcEndpointTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcEndpointTest.java?rev=1044194&view=auto
==============================================================================
--- 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcEndpointTest.java
 (added)
+++ 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcEndpointTest.java
 Fri Dec 10 01:55:20 2010
@@ -0,0 +1,100 @@
+/**
+ * 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.component.irc;
+
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.schwering.irc.lib.IRCConnection;
+import org.schwering.irc.lib.IRCEventAdapter;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+public class IrcEndpointTest {
+
+    private IrcComponent component;
+    private IrcConfiguration configuration;
+    private IRCConnection connection;
+    private IrcEndpoint endpoint;
+
+    @Before
+    public void doSetup() {
+        component = mock(IrcComponent.class);
+        configuration = mock(IrcConfiguration.class);
+        connection = mock(IRCConnection.class);
+
+        List<String> channels = new ArrayList<String>();
+        Dictionary<String, String> keys = new Hashtable<String, String>();
+
+        channels.add("chan1");
+        channels.add("chan2");
+
+        keys.put("chan1", "");
+        keys.put("chan2", "chan2key");
+
+        when(configuration.getChannels()).thenReturn(channels);
+        when(configuration.getKey("chan1")).thenReturn("");
+        when(configuration.getKey("chan2")).thenReturn("chan2key");
+
+
+        when(component.getIRCConnection(configuration)).thenReturn(connection);
+
+
+        endpoint = new IrcEndpoint("foo", component, configuration);
+    }
+
+    @Test
+    public void doJoinChannelTestNoKey() throws Exception {
+        endpoint.joinChannel("chan1");
+        verify(connection).doJoin("chan1");
+    }
+
+    @Test
+    public void doJoinChannelTestKey() throws Exception {
+        endpoint.joinChannel("chan2");
+        verify(connection).doJoin("chan2", "chan2key");
+    }
+
+    @Test
+    public void doJoinChannels() throws Exception {
+        endpoint.joinChannels();
+        verify(connection).doJoin("chan1");
+        verify(connection).doJoin("chan2", "chan2key");
+    }
+
+
+    @Test
+    public void doHandleIrcErrorNickInUse() throws Exception {
+        when(connection.getNick()).thenReturn("nick");
+
+        endpoint.handleIrcError(IRCEventAdapter.ERR_NICKNAMEINUSE, "foo");
+
+        verify(connection).doNick("nick-");
+
+        when(connection.getNick()).thenReturn("nick---");
+
+        // confirm doNick was not called
+        verify(connection, never()).doNick("foo");
+    }
+}

Propchange: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcEndpointTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcEndpointTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcProducerTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcProducerTest.java?rev=1044194&view=auto
==============================================================================
--- 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcProducerTest.java
 (added)
+++ 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcProducerTest.java
 Fri Dec 10 01:55:20 2010
@@ -0,0 +1,123 @@
+/**
+ * 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.component.irc;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.RuntimeCamelException;
+import org.junit.Before;
+import org.junit.Test;
+import org.schwering.irc.lib.IRCConnection;
+import org.schwering.irc.lib.IRCEventAdapter;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+public class IrcProducerTest {
+
+    private IRCConnection connection;
+    private Processor processor;
+    private IrcEndpoint endpoint;
+    private IrcConfiguration configuration;
+    private IrcProducer producer;
+    private IRCEventAdapter listener;
+    private Exchange exchange;
+    private Message message;
+
+    @Before
+    public void doSetup() {
+        connection = mock(IRCConnection.class);
+        endpoint = mock(IrcEndpoint.class);
+        processor = mock(Processor.class);
+        configuration = mock(IrcConfiguration.class);
+        listener = mock(IRCEventAdapter.class);
+        exchange = mock(Exchange.class);
+        message = mock(Message.class);
+
+        List<String> channels = new ArrayList<String>();
+        List<String> keys = new ArrayList<String>();
+
+        channels.add("chan1");
+        channels.add("chan2");
+
+        keys.add("");
+        keys.add("chan2key");
+
+        when(configuration.getChannels()).thenReturn(channels);
+
+        when(endpoint.getConfiguration()).thenReturn(configuration);
+
+        producer = new IrcProducer(endpoint, connection);
+        producer.setListener(listener);
+    }
+
+    @Test
+    public void doStopTest() throws Exception {
+        producer.doStop();
+        verify(connection).doPart("chan1");
+        verify(connection).doPart("chan2");
+        verify(connection).removeIRCEventListener(listener);
+    }
+
+    @Test
+    public void doStartTest() throws Exception {
+        producer.doStart();
+
+        verify(connection).addIRCEventListener(listener);
+        verify(endpoint).joinChannels();
+    }
+
+    @Test
+    public void processTest() throws Exception {
+
+        when(connection.isConnected()).thenReturn(true);
+        when(exchange.getIn()).thenReturn(message);
+        when(message.getBody(String.class)).thenReturn("PART foo");
+        when(message.getHeader(IrcConstants.IRC_TARGET, 
String.class)).thenReturn("bottest");
+
+        producer.process(exchange);
+        verify(connection).send("PART foo");
+
+        when(message.getBody(String.class)).thenReturn("foo");
+
+        producer.process(exchange);
+        verify(connection).doPrivmsg("bottest", "foo");
+
+        when(message.getHeader(IrcConstants.IRC_TARGET, 
String.class)).thenReturn(null);
+
+        producer.process(exchange);
+        verify(connection).doPrivmsg("chan1", "foo");
+        verify(connection).doPrivmsg("chan2", "foo");
+    }
+
+    @Test (expected = RuntimeCamelException.class)
+    public void processTestException() throws Exception {
+
+        when(exchange.getIn()).thenReturn(message);
+        when(message.getBody(String.class)).thenReturn("PART foo");
+        when(message.getHeader(IrcConstants.IRC_TARGET, 
String.class)).thenReturn("bottest");
+
+        when(connection.isConnected()).thenReturn(false);
+
+        producer.process(exchange);
+    }
+}

Propchange: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcProducerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcProducerTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date


Reply via email to