• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2012 Google Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.caliper.config;
18 
19 import static org.junit.Assert.assertEquals;
20 import static org.mockito.Mockito.when;
21 
22 import com.google.caliper.options.CaliperOptions;
23 import com.google.common.collect.ImmutableMap;
24 
25 import org.junit.After;
26 import org.junit.Before;
27 import org.junit.Test;
28 import org.junit.runner.RunWith;
29 import org.mockito.Mock;
30 import org.mockito.runners.MockitoJUnitRunner;
31 
32 import java.io.File;
33 import java.io.FileOutputStream;
34 import java.io.IOException;
35 import java.util.Properties;
36 
37 /**
38  * Tests {@link CaliperConfigLoader}.
39  */
40 @RunWith(MockitoJUnitRunner.class)
41 
42 public class CaliperConfigLoaderTest {
43   @Mock CaliperOptions optionsMock;
44 
45   private File tempConfigFile;
46 
createTempUserProperties()47   @Before public void createTempUserProperties() throws IOException {
48     tempConfigFile = File.createTempFile("caliper-config-test", "properties");
49     tempConfigFile.deleteOnExit();
50     Properties userProperties = new Properties();
51     userProperties.put("some.property", "franklin");
52     FileOutputStream fs = new FileOutputStream(tempConfigFile);
53     userProperties.store(fs, null);
54     fs.close();
55   }
56 
deleteTempUserProperties()57   @After public void deleteTempUserProperties() {
58     tempConfigFile.delete();
59   }
60 
loadOrCreate_configFileExistsNoOverride()61   @Test public void loadOrCreate_configFileExistsNoOverride() throws Exception {
62     when(optionsMock.caliperConfigFile()).thenReturn(tempConfigFile);
63     when(optionsMock.configProperties()).thenReturn(ImmutableMap.<String, String>of());
64     CaliperConfigLoader loader = new CaliperConfigLoader(optionsMock);
65     CaliperConfig config = loader.loadOrCreate();
66     assertEquals("franklin", config.properties.get("some.property"));
67   }
68 
loadOrCreate_configFileExistsWithOverride()69   @Test public void loadOrCreate_configFileExistsWithOverride() throws Exception {
70     when(optionsMock.caliperConfigFile()).thenReturn(tempConfigFile);
71     when(optionsMock.configProperties()).thenReturn(ImmutableMap.of(
72         "some.property", "tacos"));
73     CaliperConfigLoader loader = new CaliperConfigLoader(optionsMock);
74     CaliperConfig config = loader.loadOrCreate();
75     assertEquals("tacos", config.properties.get("some.property"));
76   }
77 }
78