You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ml...@apache.org on 2013/01/26 06:25:11 UTC
[12/50] git commit: ApiDiscovery: Add mockito,
unit test for ApiDiscovery service impl
ApiDiscovery: Add mockito, unit test for ApiDiscovery service impl
Signed-off-by: Rohit Yadav <bh...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/6482e270
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/6482e270
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/6482e270
Branch: refs/heads/add_remove_nics
Commit: 6482e270818b11cc0f2c8c1665c5e75d683b399a
Parents: 26d8113
Author: Rohit Yadav <bh...@apache.org>
Authored: Tue Jan 22 14:27:48 2013 -0800
Committer: Rohit Yadav <bh...@apache.org>
Committed: Tue Jan 22 14:28:31 2013 -0800
----------------------------------------------------------------------
.../cloudstack/discovery/ApiDiscoveryTest.java | 87 +++++++++++++++
1 files changed, 87 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/6482e270/plugins/api/discovery/test/org/apache/cloudstack/discovery/ApiDiscoveryTest.java
----------------------------------------------------------------------
diff --git a/plugins/api/discovery/test/org/apache/cloudstack/discovery/ApiDiscoveryTest.java b/plugins/api/discovery/test/org/apache/cloudstack/discovery/ApiDiscoveryTest.java
new file mode 100644
index 0000000..a0e2a13
--- /dev/null
+++ b/plugins/api/discovery/test/org/apache/cloudstack/discovery/ApiDiscoveryTest.java
@@ -0,0 +1,87 @@
+// 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.cloudstack.discovery;
+
+import com.cloud.user.User;
+import com.cloud.user.UserVO;
+import com.cloud.utils.component.Adapters;
+
+import java.util.*;
+import javax.naming.ConfigurationException;
+
+import org.apache.cloudstack.acl.APIChecker;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.command.user.discovery.ListApisCmd;
+import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
+import org.apache.cloudstack.api.response.ListResponse;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+
+public class ApiDiscoveryTest {
+
+ private static ApiDiscoveryServiceImpl _discoveryService = new ApiDiscoveryServiceImpl();
+ private static APIChecker _apiChecker = mock(APIChecker.class);
+
+ private static Class<?> testCmdClass = ListApisCmd.class;
+ private static User testUser;
+ private static String testApiName;
+ private static String testApiDescription;
+ private static String testApiSince;
+ private static boolean testApiAsync;
+
+ @BeforeClass
+ public static void setUp() throws ConfigurationException {
+ testApiName = testCmdClass.getAnnotation(APICommand.class).name();
+ testApiDescription = testCmdClass.getAnnotation(APICommand.class).description();
+ testApiSince = testCmdClass.getAnnotation(APICommand.class).since();
+ testApiAsync = false;
+ testUser = new UserVO();
+
+ Set<Class<?>> cmdClasses = new HashSet<Class<?>>();
+ cmdClasses.add(ListApisCmd.class);
+ _discoveryService.cacheResponseMap(cmdClasses);
+ _discoveryService.s_apiAccessCheckers = (Adapters<APIChecker>) mock(Adapters.class);
+
+ when(_apiChecker.checkAccess(any(User.class), anyString())).thenReturn(true);
+ when(_discoveryService.s_apiAccessCheckers.iterator()).thenReturn(Arrays.asList(_apiChecker).iterator());
+ }
+
+ @Test
+ public void verifyListSingleApi() throws Exception {
+ ListResponse<ApiDiscoveryResponse> responses = (ListResponse<ApiDiscoveryResponse>) _discoveryService.listApis(testUser, testApiName);
+ ApiDiscoveryResponse response = responses.getResponses().get(0);
+ assertTrue("No. of response items should be one", responses.getCount() == 1);
+ assertEquals("Error in api name", testApiName, response.getName());
+ assertEquals("Error in api description", testApiDescription, response.getDescription());
+ assertEquals("Error in api since", testApiSince, response.getSince());
+ assertEquals("Error in api isAsync", testApiAsync, response.getAsync());
+ }
+
+ @Test
+ public void verifyListApis() throws Exception {
+ ListResponse<ApiDiscoveryResponse> responses = (ListResponse<ApiDiscoveryResponse>) _discoveryService.listApis(testUser, null);
+ assertTrue("No. of response items > 1", responses.getCount() > 1);
+ for (ApiDiscoveryResponse response: responses.getResponses()) {
+ assertFalse("API name is empty", response.getName().isEmpty());
+ assertFalse("API description is empty", response.getDescription().isEmpty());
+ }
+ }
+}