/* * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0 * (the "License"). You may not use this work except in compliance with the License, which is * available at www.apache.org/licenses/LICENSE-2.0 * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied, as more fully set forth in the License. * * See the NOTICE file distributed with this work for information regarding copyright ownership. */ package alluxio.client.lineage; import alluxio.AlluxioURI; import alluxio.Configuration; import alluxio.ConfigurationTestUtils; import alluxio.PropertyKey; import alluxio.client.lineage.options.DeleteLineageOptions; import alluxio.client.util.ClientTestUtils; import alluxio.job.CommandLineJob; import alluxio.job.JobConf; import com.google.common.collect.Lists; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import java.util.List; /** * Tests {@link AlluxioLineage}. */ @RunWith(PowerMockRunner.class) @PrepareForTest({LineageContext.class, LineageMasterClient.class}) public final class AlluxioLineageTest { private LineageContext mLineageContext; private LineageMasterClient mLineageMasterClient; private AlluxioLineage mAlluxioLineage; @Before public void before() throws Exception { Configuration.set(PropertyKey.USER_LINEAGE_ENABLED, "true"); mLineageMasterClient = PowerMockito.mock(LineageMasterClient.class); mLineageContext = PowerMockito.mock(LineageContext.class); Mockito.when(mLineageContext.acquireMasterClient()).thenReturn(mLineageMasterClient); mAlluxioLineage = AlluxioLineage.get(mLineageContext); } @After public void after() { ConfigurationTestUtils.resetConfiguration(); ClientTestUtils.resetClient(); } @Test public void createLineage() throws Exception { List<AlluxioURI> inputFiles = Lists.newArrayList(new AlluxioURI("input")); List<AlluxioURI> outputFiles = Lists.newArrayList(new AlluxioURI("output")); CommandLineJob job = new CommandLineJob("cmd", new JobConf("out")); mAlluxioLineage.createLineage(inputFiles, outputFiles, job); Mockito.verify(mLineageMasterClient).createLineage(Lists.newArrayList("input"), Lists.newArrayList("output"), job); // verify client is released Mockito.verify(mLineageContext).releaseMasterClient(mLineageMasterClient); } @Test public void deleteLineage() throws Exception { DeleteLineageOptions options = DeleteLineageOptions.defaults().setCascade(true); mAlluxioLineage.deleteLineage(0, options); Mockito.verify(mLineageMasterClient).deleteLineage(0, true); // verify client is released Mockito.verify(mLineageContext).releaseMasterClient(mLineageMasterClient); } @Test public void getLineageInfoList() throws Exception { mAlluxioLineage.getLineageInfoList(); Mockito.verify(mLineageMasterClient).getLineageInfoList(); // verify client is released Mockito.verify(mLineageContext).releaseMasterClient(mLineageMasterClient); } }