Beispiel #1
0
        public void Test_Run( )
        {
            using (var mock = GetMock( ))
            {
                ImportRunWorker worker    = mock.Create <ImportRunWorker>( );
                var             importRun = GetImportRun(mock);

                Field field = new StringField( ).AsWritable <Field>( );
                field.Name = "Field1";

                EntityType type = new EntityType( );
                type.Fields.Add(field);

                ApiFieldMapping fieldMapping = new ApiFieldMapping( );
                fieldMapping.MappedField = field;
                fieldMapping.Name        = "NotAValidExcelColumnReference";

                ApiResourceMapping mapping = importRun.ImportConfigUsed.ImportConfigMapping;
                mapping.ResourceMemberMappings.Add(fieldMapping.As <ApiMemberMapping>( ));
                mapping.MappedType = type;
                importRun.Save( );

                worker.StartImport(MockRunId);

                Assert.That(importRun.ImportRunStatus_Enum, Is.EqualTo(WorkflowRunState_Enumeration.WorkflowRunCompleted));
                Assert.That(importRun.ImportRecordsSucceeded, Is.EqualTo(4));
                Assert.That(importRun.ImportRecordsTotal, Is.EqualTo(4));
                Assert.That(importRun.ImportRecordsFailed, Is.EqualTo(0));
                Assert.That(importRun.ImportRunFinished, Is.Not.Null);
            }
        }
Beispiel #2
0
        public static ApiFieldMapping CreateApiFieldMapping(ApiResourceMapping resourceMapping, EntityRef field, string memberName)
        {
            Field           fieldResource = Entity.Get <Field>(field);
            ApiFieldMapping mapping       = new ApiFieldMapping( );

            mapping.MappedField = fieldResource;
            mapping.Name        = memberName;
            resourceMapping.ResourceMemberMappings.Add(mapping.As <ApiMemberMapping>( ));

            return(mapping);
        }
Beispiel #3
0
        public void Test_MandatoryField(string mandatoryDefinedOn, string data)
        {
            // Create JSON
            string jsonMember = "member";
            string jsonData   = data.Replace("'", "\"");
            string json       = "{\"" + jsonMember + "\":" + jsonData + "}";

            if (data == "'unprovided'")
            {
                json = json.Replace(jsonMember, "somethingelse");
            }

            // Create a type mapping
            EntityType         entityTypeResource = new EntityType();
            ApiResourceMapping typeMapping        = new ApiResourceMapping();

            typeMapping.MappedType = entityTypeResource;

            // Create a member mapping
            StringField     fieldResource = new StringField();
            ApiFieldMapping fieldMapping  = new ApiFieldMapping();

            fieldMapping.MappedField = fieldResource.As <Field>();
            fieldMapping.Name        = jsonMember;
            typeMapping.ResourceMemberMappings.Add(fieldMapping.As <ApiMemberMapping>());
            if (mandatoryDefinedOn == "Mapping")
            {
                fieldMapping.ApiMemberIsRequired = true;
            }
            if (mandatoryDefinedOn == "Schema")
            {
                fieldResource.IsRequired = true;
            }
            entityTypeResource.Save( );

            // Fill entity
            if (data == "'provided'")
            {
                IEntity entity = RunTest(json, typeMapping);
            }
            else
            {
                Assert.Throws <ConnectorRequestException>(() => RunTest(json, typeMapping), "E1010 '" + jsonMember + "' value is required.");
            }
        }
        /// <summary>
        ///     Get all the mapping columns from selected entity Type.
        /// </summary>
        private static void AddAllFields(ImportConfig importConfig, SampleTable sample)   // List<ColumnInfo> mappingColumnCollection, EntityType type, DbDataTable sampleDataTable )
        {
            EntityType type      = importConfig.ImportConfigMapping.MappedType;
            var        allFields = EntityTypeHelper.GetAllFields(type);

            foreach (Field field in allFields)
            {
                if (field.Name == "Alias")
                {
                    continue;
                }

                SampleColumn column = sample.Columns.FirstOrDefault(col => col.Name == field.Name);
                if (column == null)
                {
                    continue;
                }

                ApiFieldMapping fieldMapping = new ApiFieldMapping( );
                fieldMapping.Name        = column.ColumnName;
                fieldMapping.MappedField = field;
                importConfig.ImportConfigMapping.ResourceMemberMappings.Add(fieldMapping.As <ApiMemberMapping>( ));
            }
        }
Beispiel #5
0
        public void Test_Failure_NoRecordsSucceeded( )
        {
            using (var mock = GetMock( ))
            {
                // Create an int field and write string data to it.
                Field field = new IntField( ).AsWritable <Field>( );
                field.Name       = "Field2";
                field.IsRequired = true;
                ApiFieldMapping mappedField = new ApiFieldMapping( );
                mappedField.MappedField = field;
                mappedField.Name        = "A"; // text column on Test3 sheet

                var importConfig = GetImportRun(mock).ImportConfigUsed;
                importConfig.ImportConfigMapping.MappingSourceReference = "Test3";
                importConfig.ImportConfigMapping.ImportDataRow          = 16; // only ask for two rows
                var mapping = importConfig.ImportConfigMapping;
                mapping.MappedType.Fields.Add(field);
                mapping.ResourceMemberMappings.Clear( );
                mapping.ResourceMemberMappings.Add(mappedField.As <ApiMemberMapping>( ));
                GetImportRun(mock).Save( );

                RunAndAssertFailure(mock, "No records were successfully imported.\r\nRow 16: Value for 'Field2' was formatted incorrectly.\r\nRow 17: Value for 'Field2' was formatted incorrectly.");
            }
        }