package org.esa.snap.rcp.actions.file; import org.esa.snap.core.dataio.ProductSubsetDef; import org.esa.snap.core.datamodel.Product; import org.junit.Test; import java.io.IOException; import java.util.Collections; import java.util.HashSet; import static org.junit.Assert.*; /** * @author Marco Peters */ public class CloseProductActionTest { @Test public void testFindFirstSourceProduct() throws Exception { Product toBeClosedProduct = new Product("ToBeClosed", "Type", 100, 100); Product dependentProduct = createDependentProduct(toBeClosedProduct); HashSet<Product> stillOpen = new HashSet<>(Collections.singletonList(dependentProduct)); Product firstSourceProduct = CloseProductAction.findFirstSourceProduct(toBeClosedProduct, stillOpen); assertEquals(dependentProduct, firstSourceProduct); } @Test public void testFindFirstSourceProduct_IgnoreIndependent() throws Exception { Product toBeClosedProduct = new Product("ToBeClosed", "Type", 100, 100); Product dependingProduct = new Product("dependingProduct", "Type", 100, 100); Product dependentProduct = createDependentProduct(dependingProduct); HashSet<Product> stillOpen = new HashSet<>(Collections.singletonList(dependentProduct)); stillOpen.add(dependingProduct); Product firstSourceProduct = CloseProductAction.findFirstSourceProduct(toBeClosedProduct, stillOpen); assertNull(firstSourceProduct); } private Product createDependentProduct(Product toBeClosedProduct) throws IOException { ProductSubsetDef subset = new ProductSubsetDef("subset"); subset.setSubSampling(2,2); return toBeClosedProduct.createSubset(subset, "dependent", "none"); } }