blob: 6734cfa7852d019bbfc111c310179e83beda41c4 [file] [log] [blame]
/*
* Copyright 2018-present Open Networking Foundation
*
* Licensed 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.onosproject.openstacktelemetry.api;
import com.google.common.collect.Maps;
import com.google.common.testing.EqualsTester;
import org.junit.Before;
import org.junit.Test;
import org.onosproject.openstacktelemetry.api.config.TelemetryConfig;
import org.onosproject.openstacktelemetry.api.config.TelemetryConfig.ConfigType;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
/**
* Unit tests for DefaultTelemetryConfig class.
*/
public final class DefaultTelemetryConfigTest {
private static final String NAME_1 = "grpc";
private static final String NAME_2 = "kafka";
private static final ConfigType TYPE_1 = ConfigType.GRPC;
private static final ConfigType TYPE_2 = ConfigType.KAFKA;
private static final String MANUFACTURER_1 = "grpc.io";
private static final String MANUFACTURER_2 = "kafka.apache.org";
private static final String SW_VERSION_1 = "1.0";
private static final String SW_VERSION_2 = "1.0";
private static final Map<String, String> PROP_1 = Maps.newConcurrentMap();
private static final Map<String, String> PROP_2 = Maps.newConcurrentMap();
private static final String PROP_1_KEY_1 = "key11";
private static final String PROP_1_KEY_2 = "key12";
private static final String PROP_1_VALUE_1 = "value11";
private static final String PROP_1_VALUE_2 = "value12";
private static final String PROP_2_KEY_1 = "key21";
private static final String PROP_2_KEY_2 = "key22";
private static final String PROP_2_VALUE_1 = "value21";
private static final String PROP_2_VALUE_2 = "value22";
private static final boolean ENABLED_1 = true;
private static final boolean ENABLED_2 = false;
private TelemetryConfig config1;
private TelemetryConfig sameAsConfig1;
private TelemetryConfig config2;
/**
* Initial setup for this unit test.
*/
@Before
public void setup() {
PROP_1.put(PROP_1_KEY_1, PROP_1_VALUE_1);
PROP_1.put(PROP_1_KEY_2, PROP_1_VALUE_2);
PROP_2.put(PROP_2_KEY_1, PROP_2_VALUE_1);
PROP_2.put(PROP_2_KEY_2, PROP_2_VALUE_2);
config1 = new DefaultTelemetryConfig(NAME_1, TYPE_1, null,
MANUFACTURER_1, SW_VERSION_1, ENABLED_1, PROP_1);
sameAsConfig1 = new DefaultTelemetryConfig(NAME_1, TYPE_1, null,
MANUFACTURER_1, SW_VERSION_1, ENABLED_1, PROP_1);
config2 = new DefaultTelemetryConfig(NAME_2, TYPE_2, null,
MANUFACTURER_2, SW_VERSION_2, ENABLED_2, PROP_2);
}
/**
* Tests class immutability.
*/
@Test
public void testImmutability() {
assertThatClassIsImmutable(DefaultTelemetryConfig.class);
}
/**
* Tests object equality.
*/
@Test
public void testEquality() {
new EqualsTester()
.addEqualityGroup(config1, sameAsConfig1)
.addEqualityGroup(config2).testEquals();
}
/**
* Tests object construction.
*/
@Test
public void testConstruction() {
TelemetryConfig config = config1;
assertEquals(config.name(), NAME_1);
assertEquals(config.type(), TYPE_1);
assertEquals(config.manufacturer(), MANUFACTURER_1);
assertEquals(config.swVersion(), SW_VERSION_1);
assertEquals(config.properties(), PROP_1);
assertEquals(config.enabled(), ENABLED_1);
}
}