| /* |
| * Copyright 2012-present Facebook, Inc. |
| * |
| * Licensed 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 com.facebook.buck.android; |
| |
| import static org.junit.Assert.assertEquals; |
| |
| import com.facebook.buck.step.ExecutionContext; |
| import com.facebook.buck.step.TestExecutionContext; |
| import com.google.common.base.Charsets; |
| import com.google.common.collect.ImmutableSet; |
| import com.google.common.io.Files; |
| |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| import java.io.File; |
| import java.io.IOException; |
| |
| public class GenerateManifestStepTest { |
| |
| private String skeletonPath; |
| private String manifestPath; |
| |
| @Before |
| public void setUp() { |
| manifestPath = testDataPath("AndroidManifest.xml"); |
| skeletonPath = testDataPath("AndroidManifestSkeleton.xml"); |
| } |
| |
| @After |
| public void tearDown() { |
| new File(manifestPath).delete(); |
| } |
| |
| @Test |
| public void testManifestGeneration() throws IOException { |
| String expectedOutputPath = testDataPath("AndroidManifest.expected.xml"); |
| String libraryManifestA = testDataPath("AndroidManifestA.xml"); |
| String libraryManifestB = testDataPath("AndroidManifestB.xml"); |
| String libraryManifestC = testDataPath("AndroidManifestC.xml"); |
| ImmutableSet.Builder<String> libraryManifestFiles = ImmutableSet.builder(); |
| libraryManifestFiles.add(libraryManifestA); |
| libraryManifestFiles.add(libraryManifestB); |
| libraryManifestFiles.add(libraryManifestC); |
| |
| ExecutionContext context = TestExecutionContext.newInstance(); |
| |
| GenerateManifestStep manifestCommand = new GenerateManifestStep( |
| skeletonPath, |
| libraryManifestFiles.build(), |
| manifestPath); |
| manifestCommand.execute(context); |
| |
| String expected = Files.toString(new File(expectedOutputPath), Charsets.UTF_8); |
| String output = Files.toString(new File(manifestPath), Charsets.UTF_8); |
| |
| assertEquals(expected, output); |
| } |
| |
| private String testDataPath(String fileName) { |
| return "testdata/com/facebook/buck/shell/" + fileName; |
| } |
| } |