• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018, OpenCensus Authors
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 io.opencensus.metrics;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 
21 import io.opencensus.metrics.export.ExportComponent;
22 import org.junit.Rule;
23 import org.junit.Test;
24 import org.junit.rules.ExpectedException;
25 import org.junit.runner.RunWith;
26 import org.junit.runners.JUnit4;
27 
28 /** Unit tests for {@link Metrics}. */
29 @RunWith(JUnit4.class)
30 public class MetricsTest {
31   @Rule public ExpectedException thrown = ExpectedException.none();
32 
33   @Test
loadMetricsComponent_UsesProvidedClassLoader()34   public void loadMetricsComponent_UsesProvidedClassLoader() {
35     final RuntimeException toThrow = new RuntimeException("UseClassLoader");
36     thrown.expect(RuntimeException.class);
37     thrown.expectMessage("UseClassLoader");
38     Metrics.loadMetricsComponent(
39         new ClassLoader() {
40           @Override
41           public Class<?> loadClass(String name) {
42             throw toThrow;
43           }
44         });
45   }
46 
47   @Test
loadMetricsComponent_IgnoresMissingClasses()48   public void loadMetricsComponent_IgnoresMissingClasses() {
49     ClassLoader classLoader =
50         new ClassLoader() {
51           @Override
52           public Class<?> loadClass(String name) throws ClassNotFoundException {
53             throw new ClassNotFoundException();
54           }
55         };
56     assertThat(Metrics.loadMetricsComponent(classLoader).getClass().getName())
57         .isEqualTo("io.opencensus.metrics.MetricsComponent$NoopMetricsComponent");
58   }
59 
60   @Test
defaultExportComponent()61   public void defaultExportComponent() {
62     assertThat(Metrics.getExportComponent())
63         .isInstanceOf(ExportComponent.newNoopExportComponent().getClass());
64   }
65 
66   @Test
defaultMetricRegistry()67   public void defaultMetricRegistry() {
68     assertThat(Metrics.getMetricRegistry())
69         .isInstanceOf(MetricRegistry.newNoopMetricRegistry().getClass());
70   }
71 }
72