예제 #1
0
        public void DynamicRecordField_SourceFieldLayoutIsProvided_SourceFieldLayoutAttributeIsCreated()
        {
            var fieldProvider        = MockRepository.GenerateMock <IDynamicRecordFieldProvider>();
            var dynamicRecordFactory = new DynamicRecordFactory(fieldProvider);

            var dynamicRecordField = new DynamicRecordField()
            {
                Name                  = "Field0",
                DotNetDataType        = typeof(string),
                SourceFieldStartIndex = 1,
                SourceFieldLength     = 10
            };

            var fields = new List <IDynamicRecordField>()
            {
                dynamicRecordField
            };

            fieldProvider.Stub(x => x.GetFields()).Return(fields);

            var record = dynamicRecordFactory.Create(null);

            var property = record.GetType().GetProperty(dynamicRecordField.Name);
            var sourceFieldLayoutAttribute = (SourceFieldLayoutAttribute)property
                                             .GetCustomAttributes(true)
                                             .Single(x => x is SourceFieldLayoutAttribute);

            Assert.AreEqual(1, sourceFieldLayoutAttribute.StartIndex);
            Assert.AreEqual(10, sourceFieldLayoutAttribute.Length);
        }
예제 #2
0
        public void DynamicRecordField_DestinationFieldNameIsProvided_DestinationFieldNameAttributeIsCreated()
        {
            var fieldProvider        = MockRepository.GenerateMock <IDynamicRecordFieldProvider>();
            var dynamicRecordFactory = new DynamicRecordFactory(fieldProvider);

            var dynamicRecordField = new DynamicRecordField()
            {
                Name                 = "Field0",
                DotNetDataType       = typeof(string),
                DestinationFieldName = "Field0Name"
            };

            var fields = new List <IDynamicRecordField>()
            {
                dynamicRecordField
            };

            fieldProvider.Stub(x => x.GetFields()).Return(fields);

            var record = dynamicRecordFactory.Create(null);

            var property = record.GetType().GetProperty(dynamicRecordField.Name);
            var DestinationFieldNameAttribute = (DestinationFieldNameAttribute)property
                                                .GetCustomAttributes(true)
                                                .Single(x => x is DestinationFieldNameAttribute);

            Assert.AreEqual("Field0Name", DestinationFieldNameAttribute.FieldName);
        }
예제 #3
0
        public void DynamicRecordField_DotNetDataTypeIsNotProvided_ExceptionIsThrown()
        {
            var fieldProvider        = MockRepository.GenerateMock <IDynamicRecordFieldProvider>();
            var dynamicRecordFactory = new DynamicRecordFactory(fieldProvider);

            var dynamicRecordField = new DynamicRecordField()
            {
                Name               = "Field0",
                DotNetDataType     = null,
                SourceFieldOrdinal = 1
            };

            var fields = new List <IDynamicRecordField>()
            {
                dynamicRecordField
            };

            fieldProvider.Stub(x => x.GetFields()).Return(fields);

            dynamicRecordFactory.Create(null);
        }