Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Apache RocketMQ
Rocketmq
提交
ba79706f
R
Rocketmq
项目概览
Apache RocketMQ
/
Rocketmq
上一次同步 大约 3 年
通知
267
Star
16139
Fork
68
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rocketmq
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ba79706f
编写于
1月 17, 2017
作者:
Y
yukon
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[ROCKETMQ-52] Add unit tests for MQClientInstance
上级
98e4631a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
123 addition
and
0 deletion
+123
-0
client/src/test/java/org/apache/rocketmq/client/impl/factory/MQClientInstanceTest.java
...he/rocketmq/client/impl/factory/MQClientInstanceTest.java
+123
-0
未找到文件。
client/src/test/java/org/apache/rocketmq/client/impl/factory/MQClientInstanceTest.java
0 → 100644
浏览文件 @
ba79706f
/*
* 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.rocketmq.client.impl.factory
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
org.apache.rocketmq.client.ClientConfig
;
import
org.apache.rocketmq.client.admin.MQAdminExtInner
;
import
org.apache.rocketmq.client.exception.MQBrokerException
;
import
org.apache.rocketmq.client.impl.MQClientAPIImpl
;
import
org.apache.rocketmq.client.impl.MQClientManager
;
import
org.apache.rocketmq.client.impl.consumer.MQConsumerInner
;
import
org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl
;
import
org.apache.rocketmq.client.impl.producer.TopicPublishInfo
;
import
org.apache.rocketmq.common.protocol.route.BrokerData
;
import
org.apache.rocketmq.common.protocol.route.QueueData
;
import
org.apache.rocketmq.common.protocol.route.TopicRouteData
;
import
org.apache.rocketmq.remoting.exception.RemotingException
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.junit.MockitoJUnitRunner
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
mockito
.
Mockito
.
mock
;
@RunWith
(
MockitoJUnitRunner
.
class
)
public
class
MQClientInstanceTest
{
@Mock
private
static
MQClientAPIImpl
mqClientAPI
;
@InjectMocks
private
static
MQClientInstance
mqClientInstance
=
MQClientManager
.
getInstance
().
getAndCreateMQClientInstance
(
new
ClientConfig
());;
private
String
topic
=
"FooBar"
;
private
String
group
=
"FooBarGroup"
;
@Test
public
void
testTopicRouteData2TopicPublishInfo
()
{
TopicRouteData
topicRouteData
=
new
TopicRouteData
();
topicRouteData
.
setFilterServerTable
(
new
HashMap
<
String
,
List
<
String
>>());
List
<
BrokerData
>
brokerDataList
=
new
ArrayList
<>();
BrokerData
brokerData
=
new
BrokerData
();
brokerData
.
setBrokerName
(
"BrokerA"
);
brokerData
.
setCluster
(
"DefaultCluster"
);
HashMap
<
Long
,
String
>
brokerAddrs
=
new
HashMap
<>();
brokerAddrs
.
put
(
0L
,
"127.0.0.1"
);
brokerData
.
setBrokerAddrs
(
brokerAddrs
);
brokerDataList
.
add
(
brokerData
);
topicRouteData
.
setBrokerDatas
(
brokerDataList
);
List
<
QueueData
>
queueDataList
=
new
ArrayList
<>();
QueueData
queueData
=
new
QueueData
();
queueData
.
setBrokerName
(
"BrokerA"
);
queueData
.
setPerm
(
2
);
queueData
.
setReadQueueNums
(
3
);
queueData
.
setWriteQueueNums
(
4
);
queueData
.
setTopicSynFlag
(
0
);
queueDataList
.
add
(
queueData
);
topicRouteData
.
setQueueDatas
(
queueDataList
);
TopicPublishInfo
topicPublishInfo
=
MQClientInstance
.
topicRouteData2TopicPublishInfo
(
topic
,
topicRouteData
);
assertThat
(
topicPublishInfo
.
isHaveTopicRouterInfo
()).
isFalse
();
assertThat
(
topicPublishInfo
.
getMessageQueueList
().
size
()).
isEqualTo
(
4
);
}
@Test
public
void
testRegisterProducer
()
{
boolean
flag
=
mqClientInstance
.
registerProducer
(
group
,
mock
(
DefaultMQProducerImpl
.
class
));
assertThat
(
flag
).
isTrue
();
flag
=
mqClientInstance
.
registerProducer
(
group
,
mock
(
DefaultMQProducerImpl
.
class
));
assertThat
(
flag
).
isFalse
();
mqClientInstance
.
unregisterProducer
(
group
);
flag
=
mqClientInstance
.
registerProducer
(
group
,
mock
(
DefaultMQProducerImpl
.
class
));
assertThat
(
flag
).
isTrue
();
}
@Test
public
void
testRegisterConsumer
()
throws
RemotingException
,
InterruptedException
,
MQBrokerException
{
boolean
flag
=
mqClientInstance
.
registerConsumer
(
group
,
mock
(
MQConsumerInner
.
class
));
assertThat
(
flag
).
isTrue
();
flag
=
mqClientInstance
.
registerConsumer
(
group
,
mock
(
MQConsumerInner
.
class
));
assertThat
(
flag
).
isFalse
();
mqClientInstance
.
unregisterConsumer
(
group
);
flag
=
mqClientInstance
.
registerConsumer
(
group
,
mock
(
MQConsumerInner
.
class
));
assertThat
(
flag
).
isTrue
();
}
@Test
public
void
testRegisterAdminExt
()
{
boolean
flag
=
mqClientInstance
.
registerAdminExt
(
group
,
mock
(
MQAdminExtInner
.
class
));
assertThat
(
flag
).
isTrue
();
flag
=
mqClientInstance
.
registerAdminExt
(
group
,
mock
(
MQAdminExtInner
.
class
));
assertThat
(
flag
).
isFalse
();
mqClientInstance
.
unregisterAdminExt
(
group
);
flag
=
mqClientInstance
.
registerAdminExt
(
group
,
mock
(
MQAdminExtInner
.
class
));
assertThat
(
flag
).
isTrue
();
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录