public void EtpUri_11_Uris() { var uuid = Uuid(); /////////////////////////// // Invalid URI /////////////////////////// var uri = new EtpUri("http://www.energistics.org"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); /////////////////////////// // Root URIs /////////////////////////// uri = new EtpUri("eml:"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri("eml://"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsRootUri: true, IsDataspaceUri: true, IsBaseUri: true, IsCanonicalUri: true); uri = new EtpUri("eml://?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsRootUri: true, IsDataspaceUri: true, IsBaseUri: true, IsAlternateUri: true, HasQuery: true); uri = new EtpUri("eml://#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsRootUri: true, IsDataspaceUri: true, IsBaseUri: true, IsAlternateUri: true, HasHash: true); /////////////////////////// // Dataspace URIs /////////////////////////// uri = new EtpUri("eml://data-space/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri("eml://data-space/second-level/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri("eml://data-space"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsDataspaceUri: true, IsBaseUri: true, IsCanonicalUri: true); uri = new EtpUri("eml://data-space?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsDataspaceUri: true, IsBaseUri: true, IsAlternateUri: true, HasQuery: true); uri = new EtpUri("eml://data-space#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsDataspaceUri: true, IsBaseUri: true, IsAlternateUri: true, HasHash: true); uri = new EtpUri("eml://data-space/second-level"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsDataspaceUri: true, IsBaseUri: true, IsCanonicalUri: true); uri = new EtpUri("eml://data-space/second-level?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsDataspaceUri: true, IsBaseUri: true, IsAlternateUri: true, HasQuery: true); uri = new EtpUri("eml://data-space/second-level#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsDataspaceUri: true, IsBaseUri: true, IsAlternateUri: true, HasHash: true); /////////////////////////// // Family Version URIs /////////////////////////// uri = new EtpUri("eml://witsml20/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri("eml://data-space/witsml20/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri("eml://data-space/second-level/witsml20/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri("eml://witsml20"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFamilyVersionUri: true, IsBaseUri: true, IsCanonicalUri: true); uri = new EtpUri("eml://witsml20?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFamilyVersionUri: true, IsBaseUri: true, IsAlternateUri: true, HasQuery: true); uri = new EtpUri("eml://witsml20#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFamilyVersionUri: true, IsBaseUri: true, IsAlternateUri: true, HasHash: true); uri = new EtpUri("eml://data-space/witsml20"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFamilyVersionUri: true, IsBaseUri: true, IsCanonicalUri: true); uri = new EtpUri("eml://data-space/witsml20?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFamilyVersionUri: true, IsBaseUri: true, IsAlternateUri: true, HasQuery: true); uri = new EtpUri("eml://data-space/witsml20#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFamilyVersionUri: true, IsBaseUri: true, IsAlternateUri: true, HasHash: true); /////////////////////////// // Object URIs /////////////////////////// uri = new EtpUri($"eml://witsml20/Well({uuid})/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well({uuid})"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsCanonicalUri: true, IsObjectUri: true); uri = new EtpUri($"eml://witsml20/Well({uuid})?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well({uuid})#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, HasHash: true); /////////////////////////// // Object Hierarchy URIs /////////////////////////// uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/Log({Uuid()})/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, IsHierarchicalUri: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, IsHierarchicalUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, IsHierarchicalUri: true, HasHash: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/Log({Uuid()})"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, IsHierarchicalUri: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/Log({Uuid()})?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, IsHierarchicalUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/Log({Uuid()})#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, IsHierarchicalUri: true, HasHash: true); /////////////////////////// // Folder and Query URIs /////////////////////////// uri = new EtpUri($"eml://witsml20/Well/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/Log/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsQueryUri: true, IsFolderUri: true, IsCanonicalUri: true, IsTemplateUri: true, IsFolderTemplateUri: true); uri = new EtpUri($"eml://witsml20/Well?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsQueryUri: true, IsFolderUri: true, IsCanonicalUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsQueryUri: true, IsFolderUri: true, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasHash: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsQueryUri: true, IsFolderUri: true, IsCanonicalUri: true, IsHierarchicalUri: true, IsTemplateUri: true, IsFolderTemplateUri: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsQueryUri: true, IsFolderUri: true, IsCanonicalUri: true, IsHierarchicalUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsQueryUri: true, IsFolderUri: true, IsAlternateUri: true, IsHierarchicalUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasHash: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/Log"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFolderUri: true, IsAlternateUri: true, IsHierarchicalUri: true, IsTemplateUri: true, IsFolderTemplateUri: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/Log?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFolderUri: true, IsAlternateUri: true, IsHierarchicalUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore({Uuid()})/Log#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsFolderUri: true, IsAlternateUri: true, IsHierarchicalUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasHash: true); /////////////////////////// // Template URIs /////////////////////////// uri = new EtpUri($"eml://witsml20/Well/Wellbore/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/Log/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/Log({Uuid()})/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well/Wellbore({uuid})/Log/"); AssertUri(uri, IsValid: false, EtpVersion: EtpVersion.v11); uri = new EtpUri($"eml://witsml20/Well/Wellbore"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true); uri = new EtpUri($"eml://witsml20/Well/Wellbore?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well/Wellbore#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasHash: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/Log"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/Log?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/Log#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasHash: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/Log({Uuid()})"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsObjectTemplateUri: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/Log({Uuid()})?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsObjectTemplateUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well({uuid})/Wellbore/Log({Uuid()})#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsObjectTemplateUri: true, HasHash: true); uri = new EtpUri($"eml://witsml20/Well/Wellbore({uuid})/Log"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true); uri = new EtpUri($"eml://witsml20/Well/Wellbore({uuid})/Log?query"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasQuery: true); uri = new EtpUri($"eml://witsml20/Well/Wellbore({uuid})/Log#hash"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsTemplateUri: true, IsFolderTemplateUri: true, HasHash: true); /////////////////////////// // Special Cases /////////////////////////// uri = new EtpUri($"eml://witsml14/well()"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsAlternateUri: true, IsObjectUri: true, HasEmptyObjectId: true); uri = new EtpUri($"eml://some-data/space/witsml14/well({uuid})/wellbore({Uuid()})"); AssertUri(uri, IsValid: true, EtpVersion: EtpVersion.v11, IsCanonicalUri: true, IsObjectUri: true, IsHierarchicalUri: true); }
public void EtpUri_11_As_Canonical_Returns_Correct_Uri() { var uuid = Uuid(); var uuid2 = Uuid(); var original = new EtpUri("eml://"); var canonical = new EtpUri("eml://"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri("eml://some-data/space"); canonical = new EtpUri("eml://some-data/space"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri("eml://some-data/space?query#hash"); canonical = new EtpUri("eml://some-data/space"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri("eml://some-data/space/witsml20"); canonical = new EtpUri("eml://some-data/space/witsml20"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri("eml://witsml20"); canonical = new EtpUri("eml://witsml20"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri("eml://witsml20?query#hash"); canonical = new EtpUri("eml://witsml20"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri("eml://some-data/space/witsml20/Well"); canonical = new EtpUri("eml://some-data/space/witsml20/Well"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri("eml://some-data/space/witsml20/Well?query"); canonical = new EtpUri("eml://some-data/space/witsml20/Well?query"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri("eml://some-data/space/witsml20/Well?query#hash"); canonical = new EtpUri("eml://some-data/space/witsml20/Well?query"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})"); canonical = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})?query"); canonical = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})?query#hash"); canonical = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well/Wellbore"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well/Wellbore?query"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore?query"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well/Wellbore?query#hash"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore?query"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore"); canonical = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore?query"); canonical = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore?query"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore?query#hash"); canonical = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore?query"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore({uuid2})"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore({uuid2})"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore({uuid2})?query"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore({uuid2})"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore({uuid2})?query#hash"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore({uuid2})"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore({uuid2})/Log"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore({uuid2})/Log"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore({uuid2})/Log?query"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore({uuid2})/Log?query"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/Wellbore({uuid2})/Log?query#hash"); canonical = new EtpUri($"eml://some-data/space/witsml20/Wellbore({uuid2})/Log?query"); Assert.AreEqual(canonical, original.AsCanonical()); // Special Cases original = new EtpUri($"eml://some-data/space/witsml20/Well({uuid})/DataAssuranceRecord({uuid2})"); canonical = new EtpUri($"eml://some-data/space/eml21/DataAssuranceRecord({uuid2})"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml14/well({uuid})/wellbore({uuid2})"); canonical = new EtpUri($"eml://some-data/space/witsml14/well({uuid})/wellbore({uuid2})"); Assert.AreEqual(canonical, original.AsCanonical()); original = new EtpUri($"eml://some-data/space/witsml14/well()"); canonical = new EtpUri($"eml://some-data/space/witsml14/well()"); Assert.AreEqual(canonical, original.AsCanonical()); }