コード例 #1
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));
        }
コード例 #2
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);
        }
コード例 #3
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"));
        }