View Javadoc

1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  package org.apache.hadoop.hbase.regionserver;
20  
21  import static org.junit.Assert.assertTrue;
22  import static org.junit.Assert.assertEquals;
23  import static org.junit.Assert.assertNotEquals;
24  
25  import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
26  import org.apache.hadoop.hbase.testclassification.SmallTests;
27  import org.junit.Test;
28  import org.junit.experimental.categories.Category;
29  
30  /**
31   *  Test for MetricsTableSourceImpl
32   */
33  @Category({SmallTests.class})
34  public class TestMetricsTableSourceImpl {
35  
36    @Test
37    public void testCompareToHashCode() throws Exception {
38      MetricsRegionServerSourceFactory metricsFact =
39          CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class);
40  
41      MetricsTableSource one = metricsFact.createTable(
42        "ONETABLE", new MetricsTableWrapperStub("ONETABLE"));
43      MetricsTableSource oneClone = metricsFact.createTable(
44        "ONETABLE", new MetricsTableWrapperStub("ONETABLE"));
45      MetricsTableSource two = metricsFact.createTable(
46        "TWOTABLE", new MetricsTableWrapperStub("TWOTABLE"));
47  
48      assertEquals(0, one.compareTo(oneClone));
49      assertEquals(one.hashCode(), oneClone.hashCode());
50      assertNotEquals(one, two);
51  
52      assertTrue(one.compareTo(two) != 0);
53      assertTrue(two.compareTo(one) != 0);
54      assertTrue(two.compareTo(one) != one.compareTo(two));
55      assertTrue(two.compareTo(two) == 0);
56    }
57  
58    @Test(expected = RuntimeException.class)
59    public void testNoGetTableMetricsSourceImpl() throws Exception {
60      // This should throw an exception because MetricsTableSourceImpl should only
61      // be created by a factory.
62      CompatibilitySingletonFactory.getInstance(MetricsTableSourceImpl.class);
63    }
64  
65    @Test
66    public void testGetTableMetrics() throws Exception{
67      MetricsTableSource oneTbl =
68          CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class)
69          .createTable("ONETABLE", new MetricsTableWrapperStub("ONETABLE"));
70      assertEquals("ONETABLE", oneTbl.getTableName());
71    }
72  }