コード例 #1
0
ファイル: MetadataBaseTest.cs プロジェクト: Elidiomar/ef_core
        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"));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        public void Can_add_annotation()
        {
            var metadataBase = new ConcreteMetadata();

            metadataBase.Annotations.Add(new Annotation("Foo", "Bar"));

            Assert.Equal("Bar", metadataBase["Foo"]);
        }
コード例 #5
0
        public void Can_get_set_model_annotations_via_indexer()
        {
            var metadataBase = new ConcreteMetadata();

            metadataBase["foo"] = "bar";

            Assert.Equal("bar", metadataBase["foo"]);
        }
コード例 #6
0
        public void Can_add_annotation()
        {
            var metadataBase = new ConcreteMetadata();

            metadataBase.Annotations.Add(new Annotation("Foo", "Bar"));

            Assert.Equal("Bar", metadataBase["Foo"]);
        }
コード例 #7
0
ファイル: MetadataBaseTest.cs プロジェクト: Elidiomar/ef_core
        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));
        }
コード例 #8
0
ファイル: MetadataBaseTest.cs プロジェクト: Elidiomar/ef_core
        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);
        }
コード例 #9
0
        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());
        }
コード例 #10
0
        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());
        }
コード例 #11
0
        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"]);
        }
コード例 #12
0
        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
        }
コード例 #13
0
        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
        }
コード例 #14
0
ファイル: MetadataBaseTest.cs プロジェクト: Elidiomar/ef_core
        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);
        }
コード例 #15
0
        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"]);
        }
コード例 #16
0
        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));
        }
コード例 #17
0
        public void Can_get_set_model_annotations_via_indexer()
        {
            var metadataBase = new ConcreteMetadata();

            metadataBase["foo"] = "bar";

            Assert.Equal("bar", metadataBase["foo"]);
        }