/* * 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.nifi.nar; import org.apache.nifi.bundle.BundleCoordinate; import org.apache.nifi.bundle.BundleDetails; import org.junit.Test; import java.io.File; import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; public class NarBundleUtilTest { @Test public void testManifestWithVersioningAndBuildInfo() throws IOException { final File narDir = new File("src/test/resources/nars/nar-with-versioning"); final BundleDetails narDetails = NarBundleUtil.fromNarDirectory(narDir); assertEquals(narDir.getPath(), narDetails.getWorkingDirectory().getPath()); assertEquals("org.apache.nifi", narDetails.getCoordinate().getGroup()); assertEquals("nifi-hadoop-nar", narDetails.getCoordinate().getId()); assertEquals("1.2.0", narDetails.getCoordinate().getVersion()); assertEquals("org.apache.nifi.hadoop", narDetails.getDependencyCoordinate().getGroup()); assertEquals("nifi-hadoop-libraries-nar", narDetails.getDependencyCoordinate().getId()); assertEquals("1.2.1", narDetails.getDependencyCoordinate().getVersion()); assertEquals("NIFI-3380", narDetails.getBuildBranch()); assertEquals("1.8.0_74", narDetails.getBuildJdk()); assertEquals("a032175", narDetails.getBuildRevision()); assertEquals("HEAD", narDetails.getBuildTag()); assertEquals("2017-01-23T10:36:27Z", narDetails.getBuildTimestamp()); assertEquals("bbende", narDetails.getBuiltBy()); } @Test public void testManifestWithoutVersioningAndBuildInfo() throws IOException { final File narDir = new File("src/test/resources/nars/nar-without-versioning"); final BundleDetails narDetails = NarBundleUtil.fromNarDirectory(narDir); assertEquals(narDir.getPath(), narDetails.getWorkingDirectory().getPath()); assertEquals(BundleCoordinate.DEFAULT_GROUP, narDetails.getCoordinate().getGroup()); assertEquals("nifi-hadoop-nar", narDetails.getCoordinate().getId()); assertEquals(BundleCoordinate.DEFAULT_VERSION, narDetails.getCoordinate().getVersion()); assertEquals(BundleCoordinate.DEFAULT_GROUP, narDetails.getDependencyCoordinate().getGroup()); assertEquals("nifi-hadoop-libraries-nar", narDetails.getDependencyCoordinate().getId()); assertEquals(BundleCoordinate.DEFAULT_VERSION, narDetails.getDependencyCoordinate().getVersion()); assertNull(narDetails.getBuildBranch()); assertEquals("1.8.0_74", narDetails.getBuildJdk()); assertNull(narDetails.getBuildRevision()); assertNull(narDetails.getBuildTag()); assertNull(narDetails.getBuildTimestamp()); assertEquals("bbende", narDetails.getBuiltBy()); } @Test public void testManifestWithoutNarDependency() throws IOException { final File narDir = new File("src/test/resources/nars/nar-without-dependency"); final BundleDetails narDetails = NarBundleUtil.fromNarDirectory(narDir); assertEquals(narDir.getPath(), narDetails.getWorkingDirectory().getPath()); assertEquals("org.apache.nifi", narDetails.getCoordinate().getGroup()); assertEquals("nifi-hadoop-nar", narDetails.getCoordinate().getId()); assertEquals("1.2.0", narDetails.getCoordinate().getVersion()); assertNull(narDetails.getDependencyCoordinate()); assertEquals("NIFI-3380", narDetails.getBuildBranch()); assertEquals("1.8.0_74", narDetails.getBuildJdk()); assertEquals("a032175", narDetails.getBuildRevision()); assertEquals("HEAD", narDetails.getBuildTag()); assertEquals("2017-01-23T10:36:27Z", narDetails.getBuildTimestamp()); assertEquals("bbende", narDetails.getBuiltBy()); } @Test(expected = IOException.class) public void testFromManifestWhenNarDirectoryDoesNotExist() throws IOException { final File manifest = new File("src/test/resources/nars/nar-does-not-exist"); NarBundleUtil.fromNarDirectory(manifest); } }