/*************************************************************************** * Copyright (c) 2014-2015 VMware, Inc. All Rights Reserved. * Licensed 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 com.vmware.bdd.plugin.ambari.service; import java.net.URL; import org.mockito.Mockito; import org.testng.Assert; import org.testng.annotations.Test; import com.vmware.bdd.plugin.ambari.api.AmbariManagerClientbuilder; import com.vmware.bdd.plugin.ambari.api.ApiRootResource; import com.vmware.bdd.plugin.ambari.api.manager.ApiManager; import com.vmware.bdd.plugin.ambari.utils.Constants; import com.vmware.bdd.software.mgmt.plugin.intf.SoftwareManagerFactory; import mockit.Mock; import mockit.MockClass; import mockit.Mockit; public class TestAmbariFactory { private static ApiRootResource apiRootResource; @MockClass(realClass = ApiManager.class) public static class MockApiManager { @Mock public String healthCheck(){ return "succeed"; } } @MockClass(realClass = AmbariManagerClientbuilder.class) public static class MockAmbariManagerClientbuilder { private AmbariManagerClientbuilder builder = new AmbariManagerClientbuilder(); @Mock public AmbariManagerClientbuilder withHost(String host) { return builder; } @Mock public AmbariManagerClientbuilder withPort(int port) { return builder; } @Mock public AmbariManagerClientbuilder withBaseURL(URL url) { return builder; } @Mock public AmbariManagerClientbuilder withUsernamePassword(String user, String password) { return builder; } @Mock public ApiRootResource build() { return apiRootResource; } } @Test public void testGetSoftwareManager() { Mockit.setUpMock(MockAmbariManagerClientbuilder.class); Mockit.setUpMock(MockApiManager.class); apiRootResource = Mockito.mock(ApiRootResource.class); SoftwareManagerFactory softwareManagerFactory = new AmbariFactory(); AmbariImpl softwareManager = (AmbariImpl) softwareManagerFactory.getSoftwareManager( "http://127.0.0.1:8080", "admin", "admin".toCharArray(), "RSA_CERT"); Assert.assertEquals(Constants.AMBARI_PLUGIN_NAME, softwareManager.getName()); } }