コード例 #1
0
        public void GetMetadataView_IMetadataViewWithTypeMismatchOnUnbox()
        {
            var metadata = new Dictionary <string, object>();

            metadata["Value"] = (short)9999;

            var exception = Assert.Throws <CompositionContractMismatchException>(() =>
            {
                MetadataViewProvider.GetMetadataView <ITrans_MetadataViewWithTypeMismatchDefaultValue>(new Dictionary <string, object>());
            });

            Assert.IsType <TargetInvocationException>(exception.InnerException);
        }
コード例 #2
0
        public void GetMetadataView_MetadataViewWithImplementation()
        {
            Dictionary <string, object> metadata = new Dictionary <string, object>();

            metadata = new Dictionary <string, object>();
            metadata.Add("String1", "One");
            metadata.Add("String2", "Two");
            var view1 = MetadataViewProvider.GetMetadataView <IMetadataViewWithImplementation>(metadata);

            Assert.Equal("One", view1.String1);
            Assert.Equal("Two", view1.String2);
            Assert.Equal(view1.GetType(), typeof(MetadataViewWithImplementation));
        }
コード例 #3
0
        public void GetMetadataView_IMetadataViewWithDefaultedIntAndInvalidMetadata()
        {
            Dictionary <string, object> metadata = new Dictionary <string, object>();

            metadata = new Dictionary <string, object>();
            metadata.Add("MyInt", 1.2);
            var view1 = MetadataViewProvider.GetMetadataView <ITrans_MetadataViewWithDefaultedInt>(metadata);

            Assert.Equal(120, view1.MyInt);

            metadata = new Dictionary <string, object>();
            metadata.Add("MyInt", "Hello, World");
            var view2 = MetadataViewProvider.GetMetadataView <ITrans_MetadataViewWithDefaultedInt>(metadata);

            Assert.Equal(120, view2.MyInt);
        }
コード例 #4
0
        public void GetMetadataView_CachesViewType()
        {
            var metadata1 = new Dictionary <string, object>();

            metadata1["Value"] = "value1";
            var view1 = MetadataViewProvider.GetMetadataView <ITrans_MetadataTests_MetadataView>(metadata1);

            Assert.Equal("value1", view1.Value);

            var metadata2 = new Dictionary <string, object>();

            metadata2["Value"] = "value2";
            var view2 = MetadataViewProvider.GetMetadataView <ITrans_MetadataTests_MetadataView>(metadata2);

            Assert.Equal("value2", view2.Value);

            Assert.Equal(view1.GetType(), view2.GetType());
        }
コード例 #5
0
        public static TMetadataView GetMetadataView <TMetadataView>(IDictionary <string, object?> metadata)
        {
            Requires.NotNull(metadata, nameof(metadata));

            return(MetadataViewProvider.GetMetadataView <TMetadataView>(metadata));
        }
コード例 #6
0
        public void GetMetadataView_IMetadataViewWithDefaultedString()
        {
            var view = MetadataViewProvider.GetMetadataView <ITrans_MetadataViewWithDefaultedString>(new Dictionary <string, object>());

            Assert.Equal("MyString", view.MyString);
        }
コード例 #7
0
        public void GetMetadataView_IMetadataViewWithDefaultedInt64()
        {
            var view = MetadataViewProvider.GetMetadataView <ITrans_MetadataViewWithDefaultedInt64>(new Dictionary <string, object>());

            Assert.Equal(Int64.MaxValue, view.MyInt64);
        }
コード例 #8
0
        public void GetMetadataView_IMetadataViewWithDefaultedBool()
        {
            var view = MetadataViewProvider.GetMetadataView <ITrans_MetadataViewWithDefaultedBool>(new Dictionary <string, object>());

            Assert.Equal(false, view.MyBool);
        }
コード例 #9
0
        public void GetMetadataView_DictionaryAsTMetadataViewTypeArgument_ShouldNotThrow()
        {
            var metadata = new Dictionary <string, object>();

            MetadataViewProvider.GetMetadataView <Dictionary <string, object> >(metadata);
        }
コード例 #10
0
        public void GetMetadataView_IMetadataViewWithDefaultedInt()
        {
            var view = MetadataViewProvider.GetMetadataView <ITrans_MetadataViewWithDefaultedInt>(new Dictionary <string, object>());

            Assert.AreEqual(120, view.MyInt);
        }