예제 #1
0
        public void GetSize_MultiplePrimitiveTypes_Success()
        {
            var expected = 0;
            var types    = new List <Type>
            {
                typeof(int),
                typeof(bool),
                typeof(double),
                typeof(decimal),
                typeof(float),
                typeof(byte),
            };

            var context = new Dictionary <Type, int>(types.Count);

            types.ForEach(t =>
            {
                var count = new Random().Next();
                context.Add(t, count);
                expected += t == typeof(string)
                                ? Helper.GetExpectedSizeForStringType(count)
                                : Marshal.SizeOf(t) * count;
            });

            var res = SizeUtility.GetSizeOf(context);

            Assert.AreEqual(expected, res);
        }
예제 #2
0
        public void GetSizeOfStringType_WithStringType_Success()
        {
            var itemCount    = 12;
            var stringLength = 50;
            var res          = SizeUtility.GetSizeOfStringType(stringLength) * itemCount;
            var expected     = Helper.GetExpectedSizeForStringType(stringLength) * itemCount;

            Assert.AreEqual(expected, res);
        }
예제 #3
0
        public void GetSize_WithInteger_Success()
        {
            var itemCount = 10;
            var res       = SizeUtility.GetSizeOf(typeof(int), itemCount);
            var res2      = SizeUtility.GetSizeOf <int>(itemCount);
            var expected  = sizeof(int) * itemCount;

            Assert.AreEqual(expected, res);
            Assert.AreEqual(expected, res2);
        }
예제 #4
0
        public void GetSize_WithObjectType_NotSupportedExceptionMustBeThrown()
        {
            var mustBeTrue = false;

            try
            {
                SizeUtility.GetSizeOf(typeof(object), 1);
            }
            catch (NotSupportedException)
            {
                mustBeTrue = true;
            }

            Assert.IsTrue(mustBeTrue);
        }