blob: 50c119e3c46930676bd5b4c23bcfb7b651ff9680 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional information regarding
* copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License. You may obtain a
* copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.apache.geode.distributed.internal;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.same;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.Properties;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.apache.geode.StatisticDescriptor;
import org.apache.geode.Statistics;
import org.apache.geode.StatisticsType;
import org.apache.geode.internal.statistics.StatisticsManager;
import org.apache.geode.internal.statistics.StatisticsManagerFactory;
/**
* Unit tests for {@link InternalDistributedSystem}.
*/
public class InternalDistributedSystemStatisticsManagerTest {
private static final String STATISTIC_NAME = "statistic-name";
private static final String STATISTIC_DESCRIPTION = "statistic-description";
private static final String STATISTIC_UNITS = "statistic-units";
private static final StatisticsType STATISTICS_TYPE = mock(StatisticsType.class);
private static final String STATISTICS_TEXT_ID = "statistics-text-id";
private static final long STATISTICS_NUMERIC_ID = 2349;
@Mock(name = "autowiredDistributionManager")
private DistributionManager distributionManager;
@Mock(name = "autowiredStatisticsManagerFactory")
private StatisticsManagerFactory statisticsManagerFactory;
@Mock(name = "autowiredStatisticsManager")
private StatisticsManager statisticsManager;
private InternalDistributedSystem internalDistributedSystem;
@Before
public void setUp() {
initMocks(this);
when(statisticsManagerFactory.create(any(), anyLong(), anyBoolean()))
.thenReturn(statisticsManager);
internalDistributedSystem = new InternalDistributedSystem.BuilderForTesting(new Properties())
.setDistributionManager(distributionManager)
.setStatisticsManagerFactory(statisticsManagerFactory)
.build();
}
@Test
public void createsStatisticsManagerViaFactory() {
StatisticsManagerFactory statisticsManagerFactory =
mock(StatisticsManagerFactory.class, "statisticsManagerFactory");
StatisticsManager statisticsManagerCreatedByFactory =
mock(StatisticsManager.class, "statisticsManagerCreatedByFactory");
when(statisticsManagerFactory
.create(any(), anyLong(), eq(false)))
.thenReturn(statisticsManagerCreatedByFactory);
InternalDistributedSystem result =
new InternalDistributedSystem.BuilderForTesting(new Properties())
.setDistributionManager(distributionManager)
.setStatisticsManagerFactory(statisticsManagerFactory)
.build();
assertThat(result.getStatisticsManager())
.isSameAs(statisticsManagerCreatedByFactory);
}
@Test
public void delegatesCreateTypeToStatisticsManager() {
String typeName = "type-name";
String typeDescription = "type-description";
StatisticDescriptor[] descriptors = {};
StatisticsType typeReturnedByManager = mock(StatisticsType.class);
when(statisticsManager.createType(typeName, typeDescription, descriptors))
.thenReturn(typeReturnedByManager);
StatisticsType result =
internalDistributedSystem.createType(typeName, typeDescription, descriptors);
assertThat(result)
.isSameAs(typeReturnedByManager);
}
@Test
public void delegatesCreateTypeFromXmlToStatisticsManager() throws IOException {
Reader reader = new StringReader("<arbitrary-xml/>");
StatisticsType[] typesReturnedByManager = {};
when(statisticsManager.createTypesFromXml(same(reader)))
.thenReturn(typesReturnedByManager);
StatisticsType[] result = internalDistributedSystem.createTypesFromXml(reader);
assertThat(result)
.isSameAs(typesReturnedByManager);
}
@Test
public void delegatesFindTypeToStatisticsManager() {
String soughtTypeName = "the-name";
StatisticsType typeReturnedByManager = mock(StatisticsType.class);
when(statisticsManager.findType(soughtTypeName))
.thenReturn(typeReturnedByManager);
StatisticsType result = internalDistributedSystem.findType(soughtTypeName);
assertThat(result)
.isSameAs(typeReturnedByManager);
}
@Test
public void delegatesCreateIntCounterToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(
statisticsManager.createLongCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createIntCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateLongCounterToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createLongCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createLongCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateDoubleCounterToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createDoubleCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createDoubleCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateIntGaugeToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createLongGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createIntGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateLongGaugeToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager.createLongGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createLongGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateDoubleGaugeToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createDoubleGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createDoubleGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateLargerBetterIntCounterToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createLongCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createIntCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateLargerBetterLongCounterToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createLongCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createLongCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateLargerBetterDoubleCounterToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createDoubleCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createDoubleCounter(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateLargerBetterIntGaugeToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createLongGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createIntGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateLargerBetterLongGaugeToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createLongGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createLongGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateLargerBetterDoubleGaugeToStatisticsManager() {
StatisticDescriptor descriptorReturnedByManager = mock(StatisticDescriptor.class);
when(statisticsManager
.createDoubleGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false))
.thenReturn(descriptorReturnedByManager);
StatisticDescriptor result = internalDistributedSystem
.createDoubleGauge(STATISTIC_NAME, STATISTIC_DESCRIPTION, STATISTIC_UNITS, false);
assertThat(result)
.isSameAs(descriptorReturnedByManager);
}
@Test
public void delegatesCreateStatisticsToStatisticsManager() {
Statistics statisticsReturnedByManager = mock(Statistics.class);
when(statisticsManager.createStatistics(STATISTICS_TYPE))
.thenReturn(statisticsReturnedByManager);
Statistics result = internalDistributedSystem
.createStatistics(STATISTICS_TYPE);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
@Test
public void delegatesCreateStatisticsWithTextIdToStatisticsManager() {
Statistics statisticsReturnedByManager = mock(Statistics.class);
when(statisticsManager.createStatistics(STATISTICS_TYPE, STATISTICS_TEXT_ID))
.thenReturn(statisticsReturnedByManager);
Statistics result = internalDistributedSystem
.createStatistics(STATISTICS_TYPE, STATISTICS_TEXT_ID);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
@Test
public void delegatesCreateStatisticsWithNumericIdToStatisticsManager() {
Statistics statisticsReturnedByManager = mock(Statistics.class);
when(statisticsManager
.createStatistics(STATISTICS_TYPE, STATISTICS_TEXT_ID, STATISTICS_NUMERIC_ID))
.thenReturn(statisticsReturnedByManager);
Statistics result = internalDistributedSystem
.createStatistics(STATISTICS_TYPE, STATISTICS_TEXT_ID, STATISTICS_NUMERIC_ID);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
@Test
public void delegatesCreateAtomicStatisticsToStatisticsManager() {
Statistics statisticsReturnedByManager = mock(Statistics.class);
when(statisticsManager.createAtomicStatistics(STATISTICS_TYPE))
.thenReturn(statisticsReturnedByManager);
Statistics result = internalDistributedSystem
.createAtomicStatistics(STATISTICS_TYPE);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
@Test
public void delegatesCreateAtomicStatisticsWithTextIdToStatisticsManager() {
Statistics statisticsReturnedByManager = mock(Statistics.class);
when(statisticsManager.createAtomicStatistics(STATISTICS_TYPE, STATISTICS_TEXT_ID))
.thenReturn(statisticsReturnedByManager);
Statistics result = internalDistributedSystem
.createAtomicStatistics(STATISTICS_TYPE, STATISTICS_TEXT_ID);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
@Test
public void delegatesCreateAtomicStatisticsWithNumericIdToStatisticsManager() {
Statistics statisticsReturnedByManager = mock(Statistics.class);
when(statisticsManager
.createAtomicStatistics(STATISTICS_TYPE, STATISTICS_TEXT_ID, STATISTICS_NUMERIC_ID))
.thenReturn(statisticsReturnedByManager);
Statistics result = internalDistributedSystem
.createAtomicStatistics(STATISTICS_TYPE, STATISTICS_TEXT_ID, STATISTICS_NUMERIC_ID);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
@Test
public void delegatesFindStatisticsByTypeToStatisticsManager() {
Statistics[] statisticsReturnedByManager = {};
when(statisticsManager.findStatisticsByType(STATISTICS_TYPE))
.thenReturn(statisticsReturnedByManager);
Statistics[] result = internalDistributedSystem
.findStatisticsByType(STATISTICS_TYPE);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
@Test
public void delegatesFindStatisticsByTextIdToStatisticsManager() {
Statistics[] statisticsReturnedByManager = {};
String soughtTextId = "sought-text-id";
when(statisticsManager.findStatisticsByTextId(soughtTextId))
.thenReturn(statisticsReturnedByManager);
Statistics[] result = internalDistributedSystem
.findStatisticsByTextId(soughtTextId);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
@Test
public void delegatesFindStatisticsByNumericIdToStatisticsManager() {
Statistics[] statisticsReturnedByManager = {};
long soughtNumericId = 836282;
when(statisticsManager.findStatisticsByNumericId(soughtNumericId))
.thenReturn(statisticsReturnedByManager);
Statistics[] result = internalDistributedSystem
.findStatisticsByNumericId(soughtNumericId);
assertThat(result)
.isSameAs(statisticsReturnedByManager);
}
}