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")); }
public void Members_check_arguments() { var metadataBase = new ConcreteMetadata(); Assert.Equal( "annotation", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => metadataBase.Annotations.Add(null)).ParamName); Assert.Equal( "annotation", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => metadataBase.Annotations.Add(null)).ParamName); Assert.Equal( Strings.FormatArgumentIsEmpty("annotationName"), Assert.Throws <ArgumentException>(() => metadataBase[""]).Message); Assert.Equal( Strings.FormatArgumentIsEmpty("annotationName"), Assert.Throws <ArgumentException>(() => metadataBase[""] = "The kake is a lie").Message); Assert.Equal( "value", Assert.Throws <ArgumentNullException>(() => metadataBase["X"] = null).ParamName); }
public void Members_check_arguments() { var metadataBase = new ConcreteMetadata(); Assert.Equal( "annotation", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws<ArgumentNullException>(() => metadataBase.Annotations.Add(null)).ParamName); Assert.Equal( "annotation", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws<ArgumentNullException>(() => metadataBase.Annotations.Add(null)).ParamName); Assert.Equal( Strings.FormatArgumentIsEmpty("annotationName"), Assert.Throws<ArgumentException>(() => metadataBase[""]).Message); Assert.Equal( Strings.FormatArgumentIsEmpty("annotationName"), Assert.Throws<ArgumentException>(() => metadataBase[""] = "The kake is a lie").Message); Assert.Equal( "value", Assert.Throws<ArgumentNullException>(() => metadataBase["X"] = null).ParamName); }
public void Can_add_annotation() { var metadataBase = new ConcreteMetadata(); metadataBase.Annotations.Add(new Annotation("Foo", "Bar")); Assert.Equal("Bar", metadataBase["Foo"]); }
public void Can_get_set_model_annotations_via_indexer() { var metadataBase = new ConcreteMetadata(); metadataBase["foo"] = "bar"; Assert.Equal("bar", metadataBase["foo"]); }
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 Add_duplicate_annotation_replaces_current_annotation() { var metadataBase = new ConcreteMetadata(); metadataBase.Annotations.Add(new Annotation("Foo", "Bar")); var newAnnotation = new Annotation("Foo", "Bar"); metadataBase.Annotations.Add(newAnnotation); Assert.Same(newAnnotation, metadataBase.Annotations.Single()); }
public void Can_update_existing_annotation() { var metadataBase = new ConcreteMetadata(); var annotation = new Annotation("Foo", "Bar"); metadataBase.Annotations.Add(annotation); Assert.Equal("Bar", metadataBase["Foo"]); metadataBase["Foo"] = "Baz"; Assert.Equal("Baz", metadataBase["Foo"]); }
public void Can_remove_annotation() { var metadataBase = new ConcreteMetadata(); var annotation = new Annotation("Foo", "Bar"); metadataBase.Annotations.Add(annotation); Assert.Equal("Bar", metadataBase["Foo"]); metadataBase.Annotations.Remove(annotation); Assert.Null(metadataBase["Foo"]); metadataBase.Annotations.Remove(annotation); // no throw }
public void Can_get_and_set_model_annotations() { var metadataBase = new ConcreteMetadata(); var annotation = metadataBase.GetOrAddAnnotation("Foo", "Bar"); Assert.NotNull(annotation); Assert.Same(annotation, metadataBase.TryGetAnnotation("Foo")); Assert.Same(annotation, metadataBase.GetAnnotation("Foo")); Assert.Null(metadataBase["foo"]); Assert.Null(metadataBase.TryGetAnnotation("foo")); metadataBase["Foo"] = "horse"; Assert.Equal("horse", metadataBase["Foo"]); metadataBase["Foo"] = null; Assert.Null(metadataBase["Foo"]); Assert.Empty(metadataBase.Annotations); Assert.Equal( Strings.FormatAnnotationNotFound("Foo"), Assert.Throws <ModelItemNotFoundException>(() => metadataBase.GetAnnotation("Foo")).Message); }
public void Annotations_are_ordered_by_name() { var metadataBase = new ConcreteMetadata(); var annotation1 = new Annotation("Z", "Foo"); var annotation2 = new Annotation("A", "Bar"); metadataBase.Annotations.Add(annotation1); metadataBase.Annotations.Add(annotation2); Assert.True(new[] { annotation2, annotation1 }.SequenceEqual(metadataBase.Annotations)); }