blob: 01496738c1030186a51361794bb0767266cbc685 [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.ambari.metrics.adservice.metadata
import org.apache.commons.lang.SerializationUtils
import org.scalatest.FunSuite
class MetricSourceDefinitionTest extends FunSuite {
test("createNewMetricSourceDefinition") {
val msd : MetricSourceDefinition = new MetricSourceDefinition("testDefinition", "testAppId", MetricSourceDefinitionType.API)
assert(msd.definitionName == "testDefinition")
assert(msd.appId == "testAppId")
assert(msd.definitionSource == MetricSourceDefinitionType.API)
assert(msd.hosts.isEmpty)
assert(msd.metricDefinitions.isEmpty)
assert(msd.associatedAnomalySubsystems.isEmpty)
assert(msd.relatedDefinitions.isEmpty)
}
test("testAddMetricDefinition") {
val msd : MetricSourceDefinition = new MetricSourceDefinition("testDefinition", "testAppId", MetricSourceDefinitionType.API)
assert(msd.metricDefinitions.isEmpty)
msd.addMetricDefinition(MetricDefinition("TestMetric", "TestApp", List.empty[String]))
assert(msd.metricDefinitions.nonEmpty)
}
test("testEquals") {
val msd1 : MetricSourceDefinition = new MetricSourceDefinition("testDefinition", "testAppId", MetricSourceDefinitionType.API)
val msd2 : MetricSourceDefinition = new MetricSourceDefinition("testDefinition", "testAppId2", MetricSourceDefinitionType.API)
assert(msd1 == msd2)
val msd3 : MetricSourceDefinition = new MetricSourceDefinition("testDefinition1", "testAppId", MetricSourceDefinitionType.API)
val msd4 : MetricSourceDefinition = new MetricSourceDefinition("testDefinition2", "testAppId2", MetricSourceDefinitionType.API)
assert(msd3 != msd4)
}
test("testRemoveMetricDefinition") {
val msd : MetricSourceDefinition = new MetricSourceDefinition("testDefinition", "testAppId", MetricSourceDefinitionType.API)
assert(msd.metricDefinitions.isEmpty)
msd.addMetricDefinition(MetricDefinition("TestMetric", "TestApp", List.empty[String]))
assert(msd.metricDefinitions.nonEmpty)
msd.removeMetricDefinition(MetricDefinition("TestMetric", "TestApp", List.empty[String]))
assert(msd.metricDefinitions.isEmpty)
}
test("serializeDeserialize") {
val msd : MetricSourceDefinition = new MetricSourceDefinition("testDefinition", "testAppId", MetricSourceDefinitionType.API)
val msdByteArray: Array[Byte] = SerializationUtils.serialize(msd)
assert(msdByteArray.nonEmpty)
val msd2: MetricSourceDefinition = SerializationUtils.deserialize(msdByteArray).asInstanceOf[MetricSourceDefinition]
assert(msd2 != null)
assert(msd == msd2)
}
}