/* * Copyright 2017, OpenCensus Authors * * 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 io.opencensus.trace; import static com.google.common.truth.Truth.assertThat; import com.google.common.testing.EqualsTester; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** Unit tests for {@link Link}. */ @RunWith(JUnit4.class) public class AnnotationTest { @Test(expected = NullPointerException.class) public void fromDescription_NullDescription() { Annotation.fromDescription(null); } @Test public void fromDescription() { Annotation annotation = Annotation.fromDescription("MyAnnotationText"); assertThat(annotation.getDescription()).isEqualTo("MyAnnotationText"); assertThat(annotation.getAttributes().size()).isEqualTo(0); } @Test(expected = NullPointerException.class) public void fromDescriptionAndAttributes_NullDescription() { Annotation.fromDescriptionAndAttributes(null, Collections.<String, AttributeValue>emptyMap()); } @Test(expected = NullPointerException.class) public void fromDescriptionAndAttributes_NullAttributes() { Annotation.fromDescriptionAndAttributes("", null); } @Test public void fromDescriptionAndAttributes() { Map<String, AttributeValue> attributes = new HashMap<String, AttributeValue>(); attributes.put( "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue")); Annotation annotation = Annotation.fromDescriptionAndAttributes("MyAnnotationText", attributes); assertThat(annotation.getDescription()).isEqualTo("MyAnnotationText"); assertThat(annotation.getAttributes()).isEqualTo(attributes); } @Test public void fromDescriptionAndAttributes_EmptyAttributes() { Annotation annotation = Annotation.fromDescriptionAndAttributes( "MyAnnotationText", Collections.<String, AttributeValue>emptyMap()); assertThat(annotation.getDescription()).isEqualTo("MyAnnotationText"); assertThat(annotation.getAttributes().size()).isEqualTo(0); } @Test public void annotation_EqualsAndHashCode() { EqualsTester tester = new EqualsTester(); Map<String, AttributeValue> attributes = new HashMap<String, AttributeValue>(); attributes.put( "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue")); tester .addEqualityGroup( Annotation.fromDescription("MyAnnotationText"), Annotation.fromDescriptionAndAttributes( "MyAnnotationText", Collections.<String, AttributeValue>emptyMap())) .addEqualityGroup( Annotation.fromDescriptionAndAttributes("MyAnnotationText", attributes), Annotation.fromDescriptionAndAttributes("MyAnnotationText", attributes)) .addEqualityGroup(Annotation.fromDescription("MyAnnotationText2")); tester.testEquals(); } @Test public void annotation_ToString() { Annotation annotation = Annotation.fromDescription("MyAnnotationText"); assertThat(annotation.toString()).contains("MyAnnotationText"); Map<String, AttributeValue> attributes = new HashMap<String, AttributeValue>(); attributes.put( "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue")); annotation = Annotation.fromDescriptionAndAttributes("MyAnnotationText2", attributes); assertThat(annotation.toString()).contains("MyAnnotationText2"); assertThat(annotation.toString()).contains(attributes.toString()); } }