Example #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);
        }
Example #2
0
        public void CollectionSizes()
        {
            // Arrange
            var model = new ClassModel("Dummy");

            model.Properties.Add(new PropertyModel("Dim1")
            {
                IsCollection   = true,
                CollectionType = "List",
                Dimensions     = 1,
                Attributes     = new List <AttributeModel> {
                    new AttributeModel("DataMember")
                }
            });
            model.Properties.Add(new PropertyModel("Dim2")
            {
                IsCollection   = true,
                CollectionType = "Array",
                Dimensions     = 2,
                Attributes     = new List <AttributeModel> {
                    new AttributeModel("DataMember")
                }
            });

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

            // Assert
            Assert.AreEqual(6, size);
        }
Example #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);
        }
 public CollectionMemberContext(T collection, TMember value, Int32 index, BinaryOffset position, BinarySize length)
     : base(collection, value, position, length)
 {
     Index = index;
 }
Example #5
0
 public IMemberBuilder <T, TMember> SizeOf(BinarySize size)
 {
     return(SizeOf(c => size));
 }
Example #6
0
 public Context(T o, BinaryOffset position, BinarySize length)
 {
     StreamPosition = position;
     Object         = o;
     StreamLength   = length;
 }
Example #7
0
 public MemberContext(T o, TMember value, BinaryOffset position, BinarySize length)
     : base(o, position, length)
 {
     Value = value;
 }
 public ISkippedMemberBuilder <T, TMember> SizeOf(BinarySize sizeInBytes)
 {
     return(SizeOf(context => sizeInBytes));
 }