|  | /* | 
|  | * 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.cli; | 
|  |  | 
|  | import static org.junit.Assert.assertEquals; | 
|  |  | 
|  | import com.google.common.base.Joiner; | 
|  | import com.google.common.collect.ImmutableMap; | 
|  |  | 
|  | import org.ini4j.Ini; | 
|  | import org.ini4j.InvalidFileFormatException; | 
|  | import org.ini4j.Profile.Section; | 
|  | import org.junit.Test; | 
|  |  | 
|  | import java.io.IOException; | 
|  | import java.io.Reader; | 
|  | import java.io.StringReader; | 
|  |  | 
|  | /** | 
|  | * Unit test to verify expectations about how the API for {@link Ini} works, as many of its methods | 
|  | * lack proper Javadoc. | 
|  | */ | 
|  | public class IniTest { | 
|  |  | 
|  | @Test | 
|  | public void testSecondaryLoadOverridesOriginalDefs() | 
|  | throws InvalidFileFormatException, IOException { | 
|  | Ini ini = new Ini(); | 
|  | Reader originalInput = new StringReader(Joiner.on("\n").join( | 
|  | "[alias]", | 
|  | "  buck = //src/com/facebook/buck/cli:cli", | 
|  | "[cache]", | 
|  | "  mode = dir")); | 
|  | Reader overrideInput = new StringReader(Joiner.on("\n").join( | 
|  | "[alias]", | 
|  | "  test_util = //test/com/facebook/buck/util:util", | 
|  | "[cache]", | 
|  | "  mode =")); | 
|  | ini.load(originalInput); | 
|  | ini.load(overrideInput); | 
|  |  | 
|  | Section aliasSection = ini.get("alias"); | 
|  | assertEquals( | 
|  | "Should be the union of the two [alias] sections.", | 
|  | ImmutableMap.of( | 
|  | "buck", "//src/com/facebook/buck/cli:cli", | 
|  | "test_util", "//test/com/facebook/buck/util:util"), | 
|  | aliasSection); | 
|  |  | 
|  | Section cacheSection = ini.get("cache"); | 
|  | assertEquals( | 
|  | "Values from overrideInput should supercede those from originalInput, as appropriate.", | 
|  | ImmutableMap.of("mode", ""), | 
|  | cacheSection); | 
|  | } | 
|  | } |