/*
* 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.qpid.jms.provider.failover;
import java.io.IOException;
import java.net.URI;
import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
import org.apache.qpid.jms.message.JmsOutboundMessageDispatch;
import org.apache.qpid.jms.meta.JmsConnectionInfo;
import org.apache.qpid.jms.meta.JmsConsumerInfo;
import org.apache.qpid.jms.meta.JmsSessionInfo;
import org.apache.qpid.jms.meta.JmsTransactionId;
import org.apache.qpid.jms.meta.JmsTransactionInfo;
import org.apache.qpid.jms.provider.ProviderConstants.ACK_TYPE;
import org.apache.qpid.jms.provider.ProviderFuture;
import org.junit.Before;
import org.junit.Test;
/**
* Test that methods of FailoverProvider all fail immediately when it is closed.
*/
public class FailoverProviderClosedTest extends FailoverProviderTestSupport {
private FailoverProvider provider;
private JmsConnectionInfo connection;
private JmsSessionInfo session;
private JmsConsumerInfo consumer;
@Override
@Before
public void setUp() throws Exception {
super.setUp();
provider = (FailoverProvider) FailoverProviderFactory.create(new URI("failover:(mock://localhost)"));
provider.close();
connection = createConnectionInfo();
session = createSessionInfo(connection);
consumer = createConsumerInfo(session);
}
@Test(timeout=30000)
public void testMultipleCloseCalls() {
provider.close();
}
@Test(timeout=30000, expected=IOException.class)
public void testConnect() throws Exception {
provider.connect(connection);
}
@Test(timeout=30000, expected=IOException.class)
public void testStart() throws Exception {
provider.start();
}
@Test(timeout=30000, expected=IOException.class)
public void testCreateResource() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.create(connection, request);
}
@Test(timeout=30000, expected=IOException.class)
public void testStartResource() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.start(session, request);
}
@Test(timeout=30000, expected=IOException.class)
public void testStopResource() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.stop(session, request);
}
@Test(timeout=30000, expected=IOException.class)
public void testDestroyResource() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.destroy(session, request);
}
@Test(timeout=30000, expected=IOException.class)
public void testSend() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.send(new JmsOutboundMessageDispatch(), request);
}
@Test(timeout=30000, expected=IOException.class)
public void testSessionAcknowledge() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.acknowledge(session.getId(), ACK_TYPE.ACCEPTED, request);
}
@Test(timeout=30000, expected=IOException.class)
public void testAcknowledgeMessage() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.acknowledge(new JmsInboundMessageDispatch(1), ACK_TYPE.ACCEPTED, request);
}
@Test(timeout=30000, expected=IOException.class)
public void testCommit() throws Exception {
ProviderFuture request = new ProviderFuture();
JmsTransactionId txId = new JmsTransactionId(connection.getId(), 1);
JmsTransactionInfo txInfo = new JmsTransactionInfo(session.getId(), txId);
provider.commit(txInfo, null, request);
}
@Test(timeout=30000, expected=IOException.class)
public void testRollback() throws Exception {
ProviderFuture request = new ProviderFuture();
JmsTransactionId txId = new JmsTransactionId(connection.getId(), 1);
JmsTransactionInfo txInfo = new JmsTransactionInfo(session.getId(), txId);
provider.rollback(txInfo, null, request);
}
@Test(timeout=30000, expected=IOException.class)
public void testRecover() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.recover(session.getId(), request);
}
@Test(timeout=30000, expected=IOException.class)
public void testUnsubscribe() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.unsubscribe("subscription-name", request);
}
@Test(timeout=30000, expected=IOException.class)
public void testMessagePull() throws Exception {
ProviderFuture request = new ProviderFuture();
provider.pull(consumer.getId(), 1, request);
}
}