コード例 #1
0
        public void ImplicitCastToInt_SingleCase_Int()
        {
            ListOrSingleValue <int> o = 7;

            int value = o;

            Assert.Equal(7, value);
        }
コード例 #2
0
        public void ImplicitCastToSingle_EmptyListOrSingle_Default()
        {
            ListOrSingleValue <int> o = new ListOrSingleValue <int>();

            int intValue = o;

            Assert.Equal(0, intValue);
        }
コード例 #3
0
        public void IsSingle_ReferencedTypeParameter_True()
        {
            var o = new ListOrSingleValue <List <int> >();

            Assert.Equal(0, o.Count);
            Assert.True(o.IsSingle);
            Assert.Null((List <int>)o);
        }
コード例 #4
0
        public void IsSingle_ValuedTypeParameterInt_True()
        {
            var o = new ListOrSingleValue <int>();

            Assert.Equal(0, o.Count);
            Assert.True(o.IsSingle);
            Assert.Equal(default(int), (int)o);
        }
コード例 #5
0
        public void Initialization_SingleValue_Correct()
        {
            ListOrSingleValue <int> o = 5;

            Assert.Equal(1, o.Count);
            Assert.Equal(o.CastErrorMode, CastErrorMode.ThrowExceptionIfList);
            Assert.True(o.IsSingle);
            Assert.Equal(5, o.ElementAt(0));
        }
コード例 #6
0
        public void ToString_ListCase_CommaSeparatedValues()
        {
            var o = new ListOrSingleValue <int>()
            {
                1, 2, 3
            };

            Assert.Equal(o.ToString(), "1,2,3");
        }
コード例 #7
0
        public void ImplicitCastToInt_ListCase_InvalidCastException()
        {
            var o = new ListOrSingleValue <int>()
            {
                1, 2, 3
            };

            Assert.Throws <InvalidCastException>(() => { int value = o; });
        }
コード例 #8
0
        public void IsSingle_ListWithSingleElement_True()
        {
            var o = new ListOrSingleValue <int>();

            o.Add(5);

            Assert.Equal(1, o.Count);
            Assert.True(o.IsSingle);
            Assert.Equal(5, o.ElementAt(0));
        }
コード例 #9
0
        public void ImplicitCastToSingle_UseFirstOrDefaultElementIfListMode_CastedAsFirstElement()
        {
            var o = new ListOrSingleValue <int>(CastErrorMode.UseFirstOrDefaultElementIfList)
            {
                1, 2, 3
            };

            int intValue = o;

            Assert.Equal(1, intValue);
        }
コード例 #10
0
        public void Initialization_List_Correct()
        {
            var o = new ListOrSingleValue <int>()
            {
                1, 2, 3
            };

            Assert.Equal(3, o.Count);
            Assert.False(o.IsSingle);
            Assert.Equal(o.CastErrorMode, CastErrorMode.ThrowExceptionIfList);
            Assert.Equal(1, o.ElementAt(0));
            Assert.Equal(2, o.ElementAt(1));
            Assert.Equal(3, o.ElementAt(2));
        }
コード例 #11
0
        public void ImplicitCastFromList_ListOfInt_ListOrSingle()
        {
            var list = new List <int> {
                10, 12, 15
            };

            ListOrSingleValue <int> o = list;

            Assert.Equal(3, o.Count);
            Assert.Equal(o.CastErrorMode, CastErrorMode.ThrowExceptionIfList);
            Assert.False(o.IsSingle);
            Assert.Equal(10, o.ElementAt(0));
            Assert.Equal(12, o.ElementAt(1));
            Assert.Equal(15, o.ElementAt(2));
        }
コード例 #12
0
        public void ToString_EmptyReferencedTypeListCase_BullReferenceException()
        {
            var o = new ListOrSingleValue <List <int> >();

            Assert.Throws <NullReferenceException>(() => o.ToString());
        }
コード例 #13
0
        public void ToString_EmptyIntListCase_IntDefaultValue()
        {
            var o = new ListOrSingleValue <int>();

            Assert.Equal(o.ToString(), default(int).ToString());
        }
コード例 #14
0
        public void ToString_SingleCase_SingleValueString()
        {
            ListOrSingleValue <int> o = 8;

            Assert.Equal(o.ToString(), "8");
        }