2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
20 package com.att.nsa.cambria.beans;
22 import static org.junit.Assert.assertTrue;
24 import org.I0Itec.zkclient.ZkClient;
25 import org.I0Itec.zkclient.exception.ZkNoNodeException;
26 import org.junit.Before;
27 import org.junit.Test;
28 import org.junit.runner.RunWith;
29 import org.mockito.InjectMocks;
30 import org.mockito.Mock;
31 import org.mockito.MockitoAnnotations;
32 import org.powermock.api.mockito.PowerMockito;
33 import org.powermock.core.classloader.annotations.PrepareForTest;
34 import org.powermock.modules.junit4.PowerMockRunner;
36 import com.att.nsa.cambria.CambriaApiException;
37 import com.att.nsa.cambria.metabroker.Broker.TopicExistsException;
38 import com.att.nsa.configs.ConfigDb;
39 import com.att.nsa.configs.ConfigDbException;
40 import com.att.nsa.configs.ConfigPath;
42 import kafka.admin.AdminUtils;
44 @RunWith(PowerMockRunner.class)
45 @PrepareForTest({ AdminUtils.class, ZkClientFactory.class })
46 public class DMaaPKafkaMetaBrokerTest {
49 private DMaaPKafkaMetaBroker dMaaPKafkaMetaBroker;
54 private ConfigDb configDb;
56 ConfigPath fBaseTopicData;
58 private ZkClient zkClient;
62 MockitoAnnotations.initMocks(this);
63 PowerMockito.mockStatic(AdminUtils.class);
64 PowerMockito.mockStatic(ZkClientFactory.class);
65 PowerMockito.when(configDb.parse("/topics")).thenReturn(fBaseTopicData);
70 public void testGetAlltopics() {
72 dMaaPKafkaMetaBroker.getAllTopics();
73 } catch (ConfigDbException e) {
74 // TODO Auto-generated catch block
81 public void testcreateTopic() {
83 PowerMockito.when(ZkClientFactory.createZkClient()).thenReturn(zkClient);
84 dMaaPKafkaMetaBroker.createTopic("testtopic", "testtopic", "admin", 1, 1, true);
85 } catch (CambriaApiException e) {
86 // TODO Auto-generated catch block
88 } catch (TopicExistsException e) {
89 // TODO Auto-generated catch block
91 } catch (Exception e) {
92 // TODO Auto-generatee.printStackTrace();
98 public void testcreateTopic_wrongPartition() {
101 PowerMockito.when(ZkClientFactory.createZkClient()).thenReturn(zkClient);
102 dMaaPKafkaMetaBroker.createTopic("testtopic", "testtopic", "admin", 0, 1, true);
103 } catch (CambriaApiException e) {
105 } catch (TopicExistsException e) {
106 // TODO Auto-generated catch block
108 } catch (Exception e) {
109 // TODO Auto-generatee.printStackTrace();
115 public void testcreateTopic_wrongReplica() {
118 PowerMockito.when(ZkClientFactory.createZkClient()).thenReturn(zkClient);
119 dMaaPKafkaMetaBroker.createTopic("testtopic", "testtopic", "admin", 1, 0, true);
120 } catch (CambriaApiException e) {
122 } catch (TopicExistsException e) {
123 // TODO Auto-generated catch block
125 } catch (Exception e) {
126 // TODO Auto-generatee.printStackTrace();
132 public void testcreateTopic_error1() {
134 PowerMockito.when(ZkClientFactory.createZkClient()).thenThrow(new ZkNoNodeException());
135 dMaaPKafkaMetaBroker.createTopic("testtopic", "testtopic", "admin", 1, 1, true);
136 } catch (CambriaApiException e) {
138 } catch (TopicExistsException e) {
139 // TODO Auto-generated catch block
141 } catch (Exception e) {
148 public void testcreateTopic_error2() {
150 PowerMockito.when(ZkClientFactory.createZkClient())
151 .thenThrow(new kafka.admin.AdminOperationException("error"));
152 dMaaPKafkaMetaBroker.createTopic("testtopic", "testtopic", "admin", 1, 1, true);
153 } catch (CambriaApiException e) {
155 } catch (TopicExistsException e) {
156 // TODO Auto-generated catch block
158 } catch (Exception e) {
164 public void testcreateTopic_error3() {
166 PowerMockito.when(ZkClientFactory.createZkClient()).thenThrow(new kafka.common.TopicExistsException());
167 dMaaPKafkaMetaBroker.createTopic("testtopic", "testtopic", "admin", 1, 1, true);
168 } catch (CambriaApiException e) {
169 // TODO Auto-generated catch block
171 } catch (TopicExistsException e) {
174 } catch (Exception e) {
181 public void testDeleteTopic() {
183 PowerMockito.when(ZkClientFactory.createZkClient()).thenReturn(zkClient);
184 dMaaPKafkaMetaBroker.deleteTopic("testtopic");
185 } catch (CambriaApiException e) {
186 // TODO Auto-generated catch block
188 } catch (TopicExistsException e) {
189 // TODO Auto-generated catch block
191 } catch (Exception e) {
199 public void testDeleteTopic_error1() {
201 PowerMockito.when(ZkClientFactory.createZkClient()).thenThrow(new ZkNoNodeException());
202 dMaaPKafkaMetaBroker.deleteTopic("testtopic");
203 } catch (CambriaApiException e) {
205 } catch (TopicExistsException e) {
206 // TODO Auto-generated catch block
208 } catch (Exception e) {
215 public void testDeleteTopic_error2() {
217 PowerMockito.when(ZkClientFactory.createZkClient())
218 .thenThrow(new kafka.admin.AdminOperationException("error"));
219 dMaaPKafkaMetaBroker.deleteTopic("testtopic");
220 } catch (CambriaApiException e) {
222 } catch (TopicExistsException e) {
223 // TODO Auto-generated catch block
225 } catch (Exception e) {
232 public void testDeleteTopic_error3() {
234 PowerMockito.when(ZkClientFactory.createZkClient()).thenThrow(new kafka.common.TopicExistsException());
235 dMaaPKafkaMetaBroker.deleteTopic("testtopic");
236 } catch (CambriaApiException e) {
237 // TODO Auto-generated catch block
239 } catch (TopicExistsException e) {
241 } catch (Exception e) {