/** * 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; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; import org.apache.ambari.view.ViewContext; import org.apache.ambari.view.ViewResourceHandler; import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.security.UserGroupInformation; import org.junit.*; import java.io.File; import java.util.HashMap; import java.util.Map; import static org.easymock.EasyMock.*; public abstract class BasePigTest { protected ViewResourceHandler handler; protected ViewContext context; protected static File pigStorageFile; protected static File baseDir; protected Map<String, String> properties; protected static String DATA_DIRECTORY = "./target/PigTest"; @BeforeClass public static void startUp() throws Exception { File baseDir = new File(DATA_DIRECTORY) .getAbsoluteFile(); FileUtil.fullyDelete(baseDir); } @AfterClass public static void shutDown() throws Exception { } @Before public void setUp() throws Exception { handler = createNiceMock(ViewResourceHandler.class); context = createNiceMock(ViewContext.class); properties = new HashMap<String, String>(); baseDir = new File(DATA_DIRECTORY) .getAbsoluteFile(); pigStorageFile = new File("./target/PigTest/storage.dat") .getAbsoluteFile(); properties.put("dataworker.storagePath", pigStorageFile.toString()); properties.put("webhdfs.url", "webhdfs://host:1234"); properties.put("webhcat.hostname", "localhost/templeton/v1"); properties.put("webhcat.port", "50111"); properties.put("webhcat.username", "admin"); properties.put("scripts.dir", "/tmp/.pigscripts"); properties.put("jobs.dir", "/tmp/.pigjobs"); setupProperties(properties, baseDir); expect(context.getProperties()).andReturn(properties).anyTimes(); expect(context.getUsername()).andReturn("ambari-qa").anyTimes(); expect(context.getInstanceName()).andReturn("MyPig").anyTimes(); replay(handler, context); } protected void setupProperties(Map<String, String> properties, File baseDir) throws Exception { } @After public void tearDown() throws Exception { } protected static <T> T getService(Class<T> clazz, final ViewResourceHandler viewResourceHandler, final ViewContext viewInstanceContext) { Injector viewInstanceInjector = Guice.createInjector(new AbstractModule() { @Override protected void configure() { bind(ViewResourceHandler.class).toInstance(viewResourceHandler); bind(ViewContext.class).toInstance(viewInstanceContext); } }); return viewInstanceInjector.getInstance(clazz); } }