| /* |
| * 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.easymock.EasyMock.createMock; |
| import static org.easymock.EasyMock.replay; |
| |
| import com.facebook.buck.model.BuildTargetFactory; |
| import com.facebook.buck.rules.BuildContext; |
| import com.facebook.buck.rules.BuildRuleResolver; |
| import com.facebook.buck.rules.FakeAbstractBuildRuleBuilderParams; |
| import com.facebook.buck.testutil.MoreAsserts; |
| import com.google.common.base.Optional; |
| import com.google.common.collect.ImmutableList; |
| |
| import org.junit.Test; |
| |
| public class AndroidLibraryRuleTest { |
| |
| @Test |
| public void testGetInputsToCompareToOuts() { |
| BuildRuleResolver params = new BuildRuleResolver(); |
| AndroidLibraryRule androidLibraryRuleBuilderFoo = getAndroidLibraryRuleFoo(params); |
| AndroidLibraryRule androidLibraryRuleBuilderBar = getAndroidLibraryRuleBar(params); |
| BuildContext context = createMock(BuildContext.class); |
| replay(context); |
| |
| MoreAsserts.assertListEquals( |
| "getInputsToCompareToOutput() should include manifest and src.", |
| ImmutableList.of( |
| "java/src/com/foo/Foo.java", |
| "java/src/com/foo/AndroidManifest.xml"), |
| androidLibraryRuleBuilderFoo.getInputsToCompareToOutput()); |
| |
| MoreAsserts.assertListEquals( |
| "getInputsToCompareToOutput() should include only src.", |
| ImmutableList.of( |
| "java/src/com/bar/Bar.java"), |
| androidLibraryRuleBuilderBar.getInputsToCompareToOutput()); |
| } |
| |
| private AndroidLibraryRule getAndroidLibraryRuleFoo(BuildRuleResolver params) { |
| return (AndroidLibraryRule)params.buildAndAddToIndex( |
| AndroidLibraryRule.newAndroidLibraryRuleBuilder(new FakeAbstractBuildRuleBuilderParams()) |
| .setBuildTarget(BuildTargetFactory.newInstance("//java/src/com/foo:foo")) |
| .addSrc("java/src/com/foo/Foo.java") |
| .setManifestFile((Optional.of("java/src/com/foo/AndroidManifest.xml")))); |
| } |
| |
| private AndroidLibraryRule getAndroidLibraryRuleBar(BuildRuleResolver params) { |
| return (AndroidLibraryRule)params.buildAndAddToIndex( |
| AndroidLibraryRule.newAndroidLibraryRuleBuilder(new FakeAbstractBuildRuleBuilderParams()) |
| .setBuildTarget(BuildTargetFactory.newInstance("//java/src/com/bar:bar")) |
| .addSrc("java/src/com/bar/Bar.java") |
| .setManifestFile((Optional.<String>absent()))); |
| } |
| } |