Ejemplo n.º 1
0
        public void EnumSize(ModelValueType baseType, int expectedSize)
        {
            // Arrange
            var model = new ClassModel("Dummy");

            model.Properties.Add(new PropertyModel("Enum")
            {
                ElementType = "SomeEnum",
                ValueType   = ModelValueType.Class,
                Attributes  = new List <AttributeModel> {
                    new AttributeModel("DataMember")
                }
            });
            model.References = new List <CodeElementModel> {
                new EnumModel("SomeEnum")
                {
                    BaseType = baseType
                }
            };

            // Act
            var size = BinarySize.OfClass(model, new BinarySerializer());

            // Assert
            Assert.AreEqual(expectedSize, size);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get the binary size of a given value type
        /// </summary>
        public static int OfType(ModelValueType type)
        {
            switch (type)
            {
            case ModelValueType.Boolean:
            case ModelValueType.Byte:
                return(1);

            case ModelValueType.Char:
            case ModelValueType.Int16:
            case ModelValueType.UInt16:
                return(2);

            case ModelValueType.Int32:
            case ModelValueType.UInt32:
            case ModelValueType.Single:
                return(4);

            case ModelValueType.Double:
            case ModelValueType.Int64:
            case ModelValueType.UInt64:
                return(8);

            case ModelValueType.String:
            case ModelValueType.Class:
                return(0);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Ejemplo n.º 3
0
        public void ValueTypeSize(ModelValueType type, int expectedSize)
        {
            // Arrange
            var model = new ClassModel("Dummy");

            model.Properties.Add(new PropertyModel("Property")
            {
                ValueType   = type,
                ElementType = type.ToString("G"),
                Attributes  = new List <AttributeModel> {
                    new AttributeModel("DataMember")
                }
            });

            // Act
            var size = BinarySize.OfClass(model, new BinarySerializer());

            // Assert
            Assert.AreEqual(expectedSize, size);
        }