protected override void PrepareData() { Well = new Well { Uuid = DevKit.Uid(), Citation = DevKit.Citation("Well"), GeographicLocationWGS84 = DevKit.Location(), SchemaVersion = "2.0", TimeZone = DevKit.TimeZone }; Wellbore = new Wellbore { Uuid = DevKit.Uid(), Citation = DevKit.Citation("Wellbore"), Well = DevKit.DataObjectReference(Well), SchemaVersion = "2.0" }; WellboreGeometry = new WellboreGeometry { Uuid = DevKit.Uid(), Citation = DevKit.Citation("WellboreGeometry"), Wellbore = DevKit.DataObjectReference(Wellbore), SchemaVersion = EtpUris.GetUriFamily(typeof(WellboreGeometry)).Version, }; }
public async Task WellboreGeometry200_PutObject_Can_Add_WellboreGeometry() { AddParents(); await RequestSessionAndAssert(); var handler = _client.Handler <IStoreCustomer>(); var uri = WellboreGeometry.GetUri(); var dataObject = CreateDataObject(uri, WellboreGeometry); // Get Object Expecting it Not to Exist await GetAndAssert(handler, uri, Energistics.EtpErrorCodes.NotFound); // Put Object await PutAndAssert(handler, dataObject); // Get Object var args = await GetAndAssert(handler, uri); // Check Data Object XML Assert.IsNotNull(args?.Message.DataObject); var xml = args.Message.DataObject.GetString(); var result = Parse <WellboreGeometry>(xml); Assert.IsNotNull(result); }
public void TestSetUp() { Logger.Debug($"Executing {TestContext.TestName}"); DevKit = new DevKit200Aspect(TestContext); Well = new Well { Uuid = DevKit.Uid(), Citation = DevKit.Citation("Well"), GeographicLocationWGS84 = DevKit.Location(), SchemaVersion = "2.0", TimeZone = DevKit.TimeZone }; Wellbore = new Wellbore { Uuid = DevKit.Uid(), Citation = DevKit.Citation("Wellbore"), Well = DevKit.DataObjectReference(Well), SchemaVersion = "2.0" }; WellboreGeometry = new WellboreGeometry { Uuid = DevKit.Uid(), Citation = DevKit.Citation("WellboreGeometry"), Wellbore = DevKit.DataObjectReference(Wellbore), SchemaVersion = EtpUris.GetUriFamily(typeof(WellboreGeometry)).Version, }; BeforeEachTest(); OnTestSetUp(); }
public async Task WellboreGeometry200_PutObject_Can_Update_WellboreGeometry() { AddParents(); await RequestSessionAndAssert(); var handler = _client.Handler <IStoreCustomer>(); var uri = WellboreGeometry.GetUri(); // Add a ExtensionNameValue to Data Object var envName = "TestPutObject"; var env = DevKit.ExtensionNameValue(envName, envName); WellboreGeometry.ExtensionNameValue = new List <ExtensionNameValue>() { env }; var dataObject = CreateDataObject(uri, WellboreGeometry); // Get Object Expecting it Not to Exist await GetAndAssert(handler, uri, Energistics.EtpErrorCodes.NotFound); // Put Object for Add await PutAndAssert(handler, dataObject); // Get Added Object var args = await GetAndAssert(handler, uri); // Check Added Data Object XML Assert.IsNotNull(args?.Message.DataObject); var xml = args.Message.DataObject.GetString(); var result = Parse <WellboreGeometry>(xml); Assert.IsNotNull(result); Assert.IsNotNull(result.ExtensionNameValue.FirstOrDefault(e => e.Name.Equals(envName))); // Remove Comment from Data Object result.ExtensionNameValue.Clear(); var updateDataObject = CreateDataObject(uri, result); // Put Object for Update await PutAndAssert(handler, updateDataObject); // Get Updated Object args = await GetAndAssert(handler, uri); // Check Added Data Object XML Assert.IsNotNull(args?.Message.DataObject); var updateXml = args.Message.DataObject.GetString(); result = Parse <WellboreGeometry>(updateXml); Assert.IsNotNull(result); // Test Data Object overwrite Assert.IsNull(result.ExtensionNameValue.FirstOrDefault(e => e.Name.Equals(envName))); }
public async Task WellboreGeometry200_GetResources_Can_Get_All_WellboreGeometry_Resources() { AddParents(); DevKit.AddAndAssert(WellboreGeometry); await RequestSessionAndAssert(); var uri = WellboreGeometry.GetUri(); var parentUri = uri.Parent; await GetResourcesAndAssert(WellboreGeometry.Wellbore.GetUri()); var folderUri = parentUri.Append(uri.ObjectType); await GetResourcesAndAssert(folderUri); }
/// <summary> /// Gets the .NET type for the specified object type and WITSML version. /// </summary> /// <param name="objectType">The data object type.</param> /// <param name="family">THe data object family name.</param> /// <param name="version">The WITSML version.</param> /// <returns>The .NET type for the data object.</returns> /// <remarks>Handles versions of the format X.Y[.X.[.W]] and dataVersion=X.Y[.Z[.W]].</remarks> public static Type GetObjectType(string objectType, string family, string version) { if (string.IsNullOrEmpty(version) || version.Length < 3) { return(null); } Assembly assembly; string familyUpper = family.ToUpperInvariant(); if (familyUpper == ObjectFamilies.Witsml) { assembly = typeof(IWitsmlDataObject).Assembly; } else if (familyUpper == ObjectFamilies.Prodml) { assembly = typeof(IProdmlDataObject).Assembly; } else if (familyUpper == ObjectFamilies.Resqml) { assembly = typeof(IResqmlDataObject).Assembly; } else if (familyUpper == ObjectFamilies.Eml) { // TODO: Update this once common is implemented independently. familyUpper = "WITSML"; version = "2.0"; assembly = typeof(IWitsmlDataObject).Assembly; } else { return(null); } var index = version.LastIndexOf('='); index++; // index will be -1 if no '=' is found so no special case needed. char build = version.Length > index + 4 ? version[index + 4] : '0'; var ns = $"Energistics.DataAccess.{familyUpper}{version[index]}{version[index + 2]}{build}."; if (WbGeometry.EqualsIgnoreCase(objectType) && !OptionsIn.DataVersion.Version200.Equals(version)) { objectType = $"StandAlone{WellboreGeometry.ToPascalCase()}"; } return(assembly.GetType(ns + objectType.ToPascalCase())); }
/// <summary> /// Gets the .NET type for the specified object type and WITSML version. /// </summary> /// <param name="objectType">The data object type.</param> /// <param name="version">The WITSML version.</param> /// <returns>The .NET type for the data object.</returns> public static Type GetObjectType(string objectType, string version) { var ns = OptionsIn.DataVersion.Version131.Equals(version) ? "Energistics.DataAccess.WITSML131." : OptionsIn.DataVersion.Version200.Equals(version) ? "Energistics.DataAccess.WITSML200." : OptionsIn.DataVersion.Version210.Equals(version) ? "Energistics.DataAccess.RESQML210." : "Energistics.DataAccess.WITSML141."; if (WbGeometry.EqualsIgnoreCase(objectType) && !OptionsIn.DataVersion.Version200.Equals(version)) { objectType = $"StandAlone{WellboreGeometry.ToPascalCase()}"; } return(typeof(IDataObject).Assembly.GetType(ns + objectType.ToPascalCase())); }
/// <summary> /// Sets additional default values for the specified data object. /// </summary> /// <param name="dataObject">The data object.</param> /// <param name="uri">The URI.</param> partial void SetAdditionalDefaultValues(WellboreGeometry dataObject, EtpUri uri) { dataObject.GrowingStatus = ChannelStatus.active; }