aboutsummaryrefslogtreecommitdiffstats
path: root/vespalog/src/test/java/com/yahoo/log/LogLevelTestCase.java
blob: 88d8ede9d25fc0dc600d2da3efbe4d95d0728319 (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.log;

import java.util.Set;
import java.util.HashSet;
import java.util.logging.Level;

import org.junit.Test;

import static org.junit.Assert.*;

/**
 * Testcases for LogLevel
 *
 * @author  Bjorn Borud
 */
@SuppressWarnings("deprecation")
public class LogLevelTestCase {

    /**
     * Ensure that all the log levels we need are present
     * and that they are distinct.
     */
    @Test
    public void testLogLevels () {
        assertNotNull(LogLevel.UNKNOWN);
        assertNotNull(LogLevel.FATAL);
        assertNotNull(LogLevel.ERROR);
        assertNotNull(LogLevel.WARNING);
        assertNotNull(LogLevel.INFO);
        assertNotNull(LogLevel.CONFIG);
        assertNotNull(LogLevel.EVENT);
        assertNotNull(LogLevel.DEBUG);
        assertNotNull(LogLevel.SPAM);

        // use a set to verify that all are distinct
        Set<Level> seen = new HashSet<Level>();
        assertTrue(seen.add(LogLevel.UNKNOWN));
        assertTrue(seen.add(LogLevel.FATAL));
        assertTrue(seen.add(LogLevel.ERROR));
        assertTrue(seen.add(LogLevel.WARNING));
        assertTrue(seen.add(LogLevel.INFO));
        assertTrue(seen.add(LogLevel.CONFIG));
        assertTrue(seen.add(LogLevel.EVENT));
        assertTrue(seen.add(LogLevel.DEBUG));
        assertTrue(seen.add(LogLevel.SPAM));

        // verify that set would trigger error (not necessary)
        assertTrue(! seen.add(LogLevel.SPAM));
    }

    /**
     * Test that given the log level name we are able to
     * map it to the correct static instance.
     */
    @Test
    public void testNameToLevelMapping () {
        assertEquals(LogLevel.UNKNOWN, LogLevel.parse("unknown"));
        assertEquals(LogLevel.UNKNOWN, LogLevel.parse("UNKNOWN"));
        assertEquals(LogLevel.FATAL, LogLevel.parse("fatal"));
        assertEquals(LogLevel.FATAL, LogLevel.parse("FATAL"));
        assertEquals(LogLevel.ERROR, LogLevel.parse("error"));
        assertEquals(LogLevel.ERROR, LogLevel.parse("ERROR"));
        assertEquals(LogLevel.WARNING, LogLevel.parse("warning"));
        assertEquals(LogLevel.WARNING, LogLevel.parse("WARNING"));
        assertEquals(LogLevel.INFO, LogLevel.parse("info"));
        assertEquals(LogLevel.INFO, LogLevel.parse("INFO"));
        assertEquals(LogLevel.CONFIG, LogLevel.parse("config"));
        assertEquals(LogLevel.CONFIG, LogLevel.parse("CONFIG"));
        assertEquals(LogLevel.EVENT, LogLevel.parse("event"));
        assertEquals(LogLevel.EVENT, LogLevel.parse("EVENT"));
        assertEquals(LogLevel.DEBUG, LogLevel.parse("debug"));
        assertEquals(LogLevel.DEBUG, LogLevel.parse("DEBUG"));
        assertEquals(LogLevel.SPAM, LogLevel.parse("spam"));
        assertEquals(LogLevel.SPAM, LogLevel.parse("SPAM"));

        LogLevel.getLevels().values().forEach(level -> assertEquals(level, LogLevel.parse(level.getName())));
    }

    @Test
    public void testJavaToLevelMapping () {
        assertTrue(LogLevel.ERROR   == LogLevel.getVespaLogLevel(Level.SEVERE));
        assertTrue(LogLevel.WARNING == LogLevel.getVespaLogLevel(Level.WARNING));
        assertTrue(LogLevel.INFO    == LogLevel.getVespaLogLevel(Level.INFO));
        assertTrue(LogLevel.CONFIG  == LogLevel.getVespaLogLevel(Level.CONFIG));
        assertTrue(LogLevel.DEBUG   == LogLevel.getVespaLogLevel(Level.FINE));
        assertTrue(LogLevel.DEBUG   == LogLevel.getVespaLogLevel(Level.FINER));
        assertTrue(LogLevel.SPAM    == LogLevel.getVespaLogLevel(Level.FINEST));
    }
}