public void TestTimeZones(string timeZone, int expectedHour) { EntityType type = null; ImportConfig config = null; try { // Create Type type = new EntityType { Fields = { new DateTimeField { Name = "Incident Date Time" }.As <Field>( ) } }; type.Save( ); var field = type.Fields[0]; // Create Configuration config = new ImportConfig { ImportFileType_Enum = ImportFileTypeEnum_Enumeration.ImportFileTypeExcel, ImportConfigMapping = new ApiResourceMapping { MappingSourceReference = "Incident", ImportHeadingRow = 4, ImportDataRow = 5, MappedType = type, ResourceMemberMappings = { new ApiFieldMapping { Name = "A", MappedField = Resource.Name_Field.As <Field>(), }.As <ApiMemberMapping>( ), new ApiFieldMapping { Name = "C", MappedField = field }.As <ApiMemberMapping>( ) } } }; config.Save( ); // Run upload long importRunId; var status = TestUpload(config, false, request => { if (timeZone == null) { request.HttpWebRequest.Headers.Remove("Tz"); } else { request.HttpWebRequest.Headers["Tz"] = timeZone; } }, out importRunId); Assert.That(importRunId, Is.GreaterThan(0)); Assert.That(status.ImportStatus, Is.EqualTo(ImportStatus.Success), status.ImportMessages); Assert.That(status.RecordsSucceeded, Is.EqualTo(7), status.ImportMessages); Assert.That(status.RecordsFailed, Is.EqualTo(0), status.ImportMessages); // Imported value was 21/09/2012 18:00 // Perth timezone is +8 // Expect UTC of 21/09/2012 10:00 // Look for uploaded entity IEntity entity = Factory.ScriptNameResolver.GetInstance("Power Outage", type.Id); Assert.That(entity, Is.Not.Null, "Find entity"); DateTime?value = entity.GetField <DateTime>(field.Id); Assert.That(value, Is.EqualTo(new DateTime(2012, 09, 21, expectedHour, 0, 0, DateTimeKind.Utc)), "Check date-time value"); } finally { config?.Delete( ); type?.Delete( ); } }
public void TestTestRun( ) { // TestRun should not save data EntityType type = null; ImportConfig config = null; try { // Create Type type = new EntityType { Fields = { new DateTimeField { Name = "Incident Date Time" }.As <Field>( ) } }; type.Save( ); var field = type.Fields [0]; // Create Configuration config = new ImportConfig { ImportFileType_Enum = ImportFileTypeEnum_Enumeration.ImportFileTypeExcel, ImportConfigMapping = new ApiResourceMapping { MappingSourceReference = "Incident", ImportHeadingRow = 4, ImportDataRow = 5, MappedType = type, ResourceMemberMappings = { new ApiFieldMapping { Name = "A", MappedField = Resource.Name_Field.As <Field>(), }.As <ApiMemberMapping>( ), new ApiFieldMapping { Name = "C", MappedField = field }.As <ApiMemberMapping>( ) } } }; config.Save( ); // Run upload long importRunId; const bool testRun = true; var status = TestUpload(config, testRun, null, out importRunId); Assert.That(importRunId, Is.GreaterThan(0)); Assert.That(status.ImportStatus, Is.EqualTo(ImportStatus.Success), status.ImportMessages); Assert.That(status.RecordsSucceeded, Is.EqualTo(7), status.ImportMessages); Assert.That(status.RecordsFailed, Is.EqualTo(0), status.ImportMessages); // Look for uploaded entity IEntity entity = Factory.ScriptNameResolver.GetInstance("Power Outage", type.Id); Assert.That(entity, Is.Null, "Find entity"); } finally { config?.Delete( ); type?.Delete( ); } }