/** * 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.ambari.view.pig.test; import org.apache.ambari.view.ViewContext; import org.apache.ambari.view.pig.HDFSTest; import org.apache.ambari.view.pig.persistence.Storage; import org.apache.ambari.view.pig.persistence.utils.StorageUtil; import org.apache.ambari.view.pig.resources.jobs.JobService; import org.apache.ambari.view.pig.resources.scripts.ScriptService; import org.apache.ambari.view.pig.templeton.client.TempletonApi; import org.apache.ambari.view.pig.utils.UserLocalObjects; import org.apache.ambari.view.utils.UserLocal; import org.apache.ambari.view.utils.hdfs.HdfsApi; import org.junit.*; import static org.easymock.EasyMock.*; import static org.easymock.EasyMock.replay; /** * Test cases that verify all services altogether */ public class IntegrationalTest extends HDFSTest { private JobService jobService; private ScriptService scriptService; @BeforeClass public static void startUp() throws Exception { HDFSTest.startUp(); // super } @AfterClass public static void shutDown() throws Exception { HDFSTest.shutDown(); // super UserLocal.dropAllConnections(HdfsApi.class); //cleanup API connection } @Override @Before public void setUp() throws Exception { super.setUp(); jobService = getService(JobService.class, handler, context); scriptService = getService(ScriptService.class, handler, context); } @Override @After public void tearDown() throws Exception { super.tearDown(); UserLocal.dropAllConnections(TempletonApi.class); UserLocal.dropAllConnections(HdfsApi.class); } @Test public void testHdfsApiDependsOnInstance() throws Exception { UserLocal.dropAllConnections(HdfsApi.class); //cleanup API connection ViewContext context1 = createNiceMock(ViewContext.class); ViewContext context2 = createNiceMock(ViewContext.class); ViewContext context3 = createNiceMock(ViewContext.class); expect(context1.getProperties()).andReturn(properties).anyTimes(); expect(context1.getUsername()).andReturn("ambari-qa").anyTimes(); expect(context1.getInstanceName()).andReturn("Pig1").anyTimes(); expect(context2.getProperties()).andReturn(properties).anyTimes(); expect(context2.getUsername()).andReturn("ambari-qa").anyTimes(); expect(context2.getInstanceName()).andReturn("Pig2").anyTimes(); expect(context3.getProperties()).andReturn(properties).anyTimes(); expect(context3.getUsername()).andReturn("ambari-qa").anyTimes(); expect(context3.getInstanceName()).andReturn("Pig1").anyTimes(); replay(context1, context2, context3); HdfsApi hdfsApi1 = UserLocalObjects.getHdfsApi(context1); HdfsApi hdfsApi2 = UserLocalObjects.getHdfsApi(context2); Assert.assertNotSame(hdfsApi1, hdfsApi2); HdfsApi hdfsApi1_2 = UserLocalObjects.getHdfsApi(context1); HdfsApi hdfsApi2_2 = UserLocalObjects.getHdfsApi(context1); Assert.assertSame(hdfsApi1_2, hdfsApi2_2); HdfsApi hdfsApi1_3 = UserLocalObjects.getHdfsApi(context1); HdfsApi hdfsApi3_3 = UserLocalObjects.getHdfsApi(context3); Assert.assertSame(hdfsApi1_3, hdfsApi3_3); } @Test public void testStorageDependsOnInstance() throws Exception { StorageUtil.dropAllConnections(); ViewContext context1 = createNiceMock(ViewContext.class); ViewContext context2 = createNiceMock(ViewContext.class); ViewContext context3 = createNiceMock(ViewContext.class); expect(context1.getProperties()).andReturn(properties).anyTimes(); expect(context1.getUsername()).andReturn("ambari-qa").anyTimes(); expect(context1.getInstanceName()).andReturn("Pig1").anyTimes(); expect(context2.getProperties()).andReturn(properties).anyTimes(); expect(context2.getUsername()).andReturn("ambari-qa").anyTimes(); expect(context2.getInstanceName()).andReturn("Pig2").anyTimes(); expect(context3.getProperties()).andReturn(properties).anyTimes(); expect(context3.getUsername()).andReturn("ambari-qa").anyTimes(); expect(context3.getInstanceName()).andReturn("Pig1").anyTimes(); replay(context1, context2, context3); Storage storage1 = StorageUtil.getInstance(context1).getStorage(); Storage storage2 = StorageUtil.getInstance(context2).getStorage(); Assert.assertNotSame(storage1, storage2); Storage storage1_2 = StorageUtil.getInstance(context1).getStorage(); Storage storage2_2 = StorageUtil.getInstance(context1).getStorage(); Assert.assertSame(storage1_2, storage2_2); Storage storage1_3 = StorageUtil.getInstance(context1).getStorage(); Storage storage3_3 = StorageUtil.getInstance(context3).getStorage(); Assert.assertSame(storage1_3, storage3_3); } }