public void Annotations_are_ordered_by_name() { var metadataBase = new ConcreteMetadata(); var annotation1 = metadataBase.AddAnnotation("Z", "Foo"); var annotation2 = metadataBase.AddAnnotation("A", "Bar"); Assert.True(new[] { annotation2, annotation1 }.SequenceEqual(metadataBase.Annotations)); }
public void Addind_duplicate_annotation_throws() { var metadataBase = new ConcreteMetadata(); metadataBase.AddAnnotation("Foo", "Bar"); Assert.Equal( Strings.FormatDuplicateAnnotation("Foo"), Assert.Throws <InvalidOperationException>(() => metadataBase.AddAnnotation("Foo", "Bar")).Message); }
public void Can_add_and_remove_annotation() { var metadataBase = new ConcreteMetadata(); Assert.Null(metadataBase.TryGetAnnotation("Foo")); Assert.Null(metadataBase.RemoveAnnotation(new Annotation("Foo", "Bar"))); var annotation = metadataBase.AddAnnotation("Foo", "Bar"); Assert.NotNull(annotation); Assert.Equal("Bar", annotation.Value); Assert.Equal("Bar", metadataBase["Foo"]); Assert.Same(annotation, metadataBase.TryGetAnnotation("Foo")); Assert.Same(annotation, metadataBase.GetOrAddAnnotation("Foo", "Baz")); Assert.Equal(new[] { annotation }, metadataBase.Annotations.ToArray()); Assert.Same(annotation, metadataBase.RemoveAnnotation(annotation)); Assert.Empty(metadataBase.Annotations); Assert.Null(metadataBase.RemoveAnnotation(annotation)); Assert.Null(metadataBase["Foo"]); Assert.Null(metadataBase.TryGetAnnotation("Foo")); }