aboutsummaryrefslogtreecommitdiffstats
path: root/config-application-package/src/test/java/com/yahoo/config/model/application/provider/StaticConfigDefinitionRepoTest.java
blob: b730701ee080411e8c72a4e022ad4ddd9916ca6d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model.application.provider;

import com.yahoo.config.model.api.ConfigDefinitionRepo;
import com.yahoo.io.IOUtils;
import com.yahoo.vespa.config.ConfigDefinitionKey;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import java.io.File;
import java.io.IOException;

import static org.junit.Assert.assertEquals;

/**
 * @author Ulf Lilleengen
 * @since 5.10
 */
public class StaticConfigDefinitionRepoTest {
    @Rule
    public TemporaryFolder folder = new TemporaryFolder();

    @Test
    public void testThatRepoIsCorrectlyInitialized() throws IOException {
        File topDir = folder.newFolder();
        File defDir = new File(topDir, "classes");
        defDir.mkdir();
        addFile(defDir, new ConfigDefinitionKey("foo", "foons"), "namespace=foons\nval int\n");
        addFile(defDir, new ConfigDefinitionKey("bar", "barns"), "namespace=barns\nval string\n");
        ConfigDefinitionRepo repo = new StaticConfigDefinitionRepo(defDir);
        assertEquals(2, repo.getConfigDefinitions().size());
    }

    private void addFile(File defDir, ConfigDefinitionKey key, String content) throws IOException {
        String fileName = key.getNamespace() + "." + key.getName() + ".def";
        File def = new File(defDir, fileName);
        IOUtils.writeFile(def, content, false);
    }
}