From b3a3ea0afc654d58cda899cbb2dc7d0a018a1975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sam=20Geren=C3=A9?= Date: Sat, 4 Oct 2025 14:24:05 +0200 Subject: [PATCH 1/2] Improve ReqIF extension coverage --- ...ttributeDefinitionExtensionsTestFixture.cs | 141 ++++++++++-- .../AttributeValueExtensionsTestFixture.cs | 100 ++++++++- .../RelationGroupTypeExtensionsTestFixture.cs | 70 ++++-- ...ementWithAttributesExtensionTestFixture.cs | 210 +++++++++++++++--- .../SpecObjectExtensionsTestFixture.cs | 115 +++++++--- .../SpecObjectTypeExtensionsTestFixture.cs | 70 ++++-- .../SpecRelationTypeExtensionsTestFixture.cs | 70 ++++-- .../SpecificationExtensionsTestFixture.cs | 83 +++++-- .../SpecificationTypeExtensionsTestFixture.cs | 70 ++++-- 9 files changed, 741 insertions(+), 188 deletions(-) diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/AttributeDefinitionExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/AttributeDefinitionExtensionsTestFixture.cs index 01595ea..84fcaa7 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/AttributeDefinitionExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/AttributeDefinitionExtensionsTestFixture.cs @@ -20,7 +20,10 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { - using System.Linq; + using System; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; using Microsoft.Extensions.Logging; @@ -54,9 +57,9 @@ public void OneTimeSetUp() }); } - [Test] - public void Verify_that_QueryDatatypeName_returns_expected_results() - { + [Test] + public void Verify_that_QueryDatatypeName_returns_expected_results() + { var attributeDefinitionBoolean = new AttributeDefinitionBoolean(); Assert.That(attributeDefinitionBoolean.QueryDatatypeName(), Is.EqualTo("Boolean")); @@ -96,13 +99,29 @@ public void Verify_that_QueryDatatypeName_returns_expected_results() var attributeDefinitionXhtml = new AttributeDefinitionXHTML(); Assert.That(attributeDefinitionXhtml.QueryDatatypeName(), Is.EqualTo("XHTML")); - attributeDefinitionXhtml = new AttributeDefinitionXHTML(this.loggerFactory); - Assert.That(attributeDefinitionXhtml.QueryDatatypeName(), Is.EqualTo("XHTML")); - } - - [Test] - public void Verify_that_QueryDefaultValueAsFormattedString_returns_expected_results() - { + attributeDefinitionXhtml = new AttributeDefinitionXHTML(this.loggerFactory); + Assert.That(attributeDefinitionXhtml.QueryDatatypeName(), Is.EqualTo("XHTML")); + } + + [Test] + public void Verify_that_QueryDatatypeName_throws_when_input_is_null() + { + Assert.That(() => AttributeDefinitionExtensions.QueryDatatypeName(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_QueryDatatypeName_throws_when_type_is_not_supported() + { + var unsupportedAttributeDefinition = new UnsupportedAttributeDefinition(); + + Assert.That( + () => unsupportedAttributeDefinition.QueryDatatypeName(), + Throws.Exception.TypeOf()); + } + + [Test] + public void Verify_that_QueryDefaultValueAsFormattedString_returns_expected_results() + { var testDataCreator = new ReqIFTestDataCreator(); var reqif = testDataCreator.Create(); @@ -126,8 +145,98 @@ public void Verify_that_QueryDefaultValueAsFormattedString_returns_expected_resu var attributeDefinitionString = (AttributeDefinitionString)specType.SpecAttributes.Single(x => x.Identifier == "requirement-string-attribute"); Assert.That(attributeDefinitionString.QueryDefaultValueAsFormattedString(), Is.EqualTo("NOT SET")); - var attributeDefinitionXHTML = (AttributeDefinitionXHTML)specType.SpecAttributes.Single(x => x.Identifier == "requirement-xhtml-attribute"); - Assert.That(attributeDefinitionXHTML.QueryDefaultValueAsFormattedString(), Is.EqualTo("NOT SET")); - } - } -} + var attributeDefinitionXHTML = (AttributeDefinitionXHTML)specType.SpecAttributes.Single(x => x.Identifier == "requirement-xhtml-attribute"); + Assert.That(attributeDefinitionXHTML.QueryDefaultValueAsFormattedString(), Is.EqualTo("NOT SET")); + } + + [Test] + public void Verify_that_QueryDefaultValueAsFormattedString_returns_formatted_default_values() + { + var attributeDefinitionBoolean = new AttributeDefinitionBoolean + { + DefaultValue = new AttributeValueBoolean { TheValue = true } + }; + + Assert.That(attributeDefinitionBoolean.QueryDefaultValueAsFormattedString(), Is.EqualTo("True")); + + var attributeDefinitionDate = new AttributeDefinitionDate + { + DefaultValue = new AttributeValueDate { TheValue = new DateTime(2020, 12, 25) } + }; + + Assert.That(attributeDefinitionDate.QueryDefaultValueAsFormattedString(), Is.EqualTo("December 25, 2020")); + + var enumValue = new EnumValue { Identifier = "enum" }; + var attributeDefinitionEnumeration = new AttributeDefinitionEnumeration + { + DefaultValue = new AttributeValueEnumeration() + }; + attributeDefinitionEnumeration.DefaultValue.Values.Add(enumValue); + + Assert.That( + attributeDefinitionEnumeration.QueryDefaultValueAsFormattedString(), + Is.EqualTo(enumValue.ToString())); + + var attributeDefinitionInteger = new AttributeDefinitionInteger + { + DefaultValue = new AttributeValueInteger { TheValue = 42 } + }; + + Assert.That(attributeDefinitionInteger.QueryDefaultValueAsFormattedString(), Is.EqualTo("42")); + + var attributeDefinitionReal = new AttributeDefinitionReal + { + DefaultValue = new AttributeValueReal { TheValue = 4.2 } + }; + + Assert.That(attributeDefinitionReal.QueryDefaultValueAsFormattedString(), Is.EqualTo("4.2")); + + var attributeDefinitionString = new AttributeDefinitionString + { + DefaultValue = new AttributeValueString { TheValue = "value" } + }; + + Assert.That(attributeDefinitionString.QueryDefaultValueAsFormattedString(), Is.EqualTo("value")); + + var attributeDefinitionXhtml = new AttributeDefinitionXHTML + { + DefaultValue = new AttributeValueXHTML { TheValue = "content" } + }; + + Assert.That(attributeDefinitionXhtml.QueryDefaultValueAsFormattedString(), Is.EqualTo("content")); + } + + [Test] + public void Verify_that_QueryDefaultValueAsFormattedString_throws_when_input_is_null() + { + Assert.That(() => AttributeDefinitionExtensions.QueryDefaultValueAsFormattedString(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_QueryDefaultValueAsFormattedString_throws_when_type_is_not_supported() + { + var unsupportedAttributeDefinition = new UnsupportedAttributeDefinition(); + + Assert.That( + () => unsupportedAttributeDefinition.QueryDefaultValueAsFormattedString(), + Throws.Exception.TypeOf()); + } + + private class UnsupportedAttributeDefinition : AttributeDefinition + { + protected override DatatypeDefinition GetDatatypeDefinition() + { + return null; + } + + protected override void SetDatatypeDefinition(DatatypeDefinition datatypeDefinition) + { + } + + internal override Task ReadXmlAsync(System.Xml.XmlReader reader, CancellationToken token) + { + return Task.CompletedTask; + } + } + } +} diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/AttributeValueExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/AttributeValueExtensionsTestFixture.cs index b9e0882..632cdc0 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/AttributeValueExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/AttributeValueExtensionsTestFixture.cs @@ -20,7 +20,11 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { - using System.Linq; + using System; + using System.Collections.Generic; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; using NUnit.Framework; @@ -34,11 +38,11 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions [TestFixture] public class AttributeValueExtensionsTestFixture { - [Test] - public void Verify_that_QueryFormattedValue_returns_expected_results() - { - var testDataCreator = new ReqIFTestDataCreator(); - var reqif = testDataCreator.Create(); + [Test] + public void Verify_that_QueryFormattedValue_returns_expected_results() + { + var testDataCreator = new ReqIFTestDataCreator(); + var reqif = testDataCreator.Create(); var specObject = reqif.CoreContent.SpecObjects.Single(x => x.Identifier == "specobject_1"); @@ -60,8 +64,82 @@ public void Verify_that_QueryFormattedValue_returns_expected_results() var attributeValueString = specObject.Values.OfType().Single(); Assert.That(attributeValueString.QueryFormattedValue(), Is.EqualTo("a string value")); - var attributeValueXhtml = specObject.Values.OfType().First(); - Assert.That(attributeValueXhtml.QueryFormattedValue(), Is.EqualTo("XhtmlPType text before brtext after br text before spanXhtmlSpanTypetext after span text before emXhtmlEmTypetext after em text before strongXhtmlStrongTypetext after strong text before dfnXhtmlDfnTypetext after dfn text before codeXhtmlCodeTypetext after code text before sampXhtmlSampTypetext after samp text before kbdXhtmlKbdTypetext after kbd text before varXhtmlVarTypetext after var text before citeXhtmlCiteTypetext after cite text before abbrXhtmlAbbrTypetext after abbr text before acronymXhtmlAcronymTypetext after acronym text before qXhtmlQTypetext after q text before ttXhtmlInlPresTypetext after tt text before iXhtmlInlPresTypetext after i text before bXhtmlInlPresTypetext after b text before bigXhtmlInlPresTypetext after big text before smallXhtmlInlPresTypetext after small text before subXhtmlInlPresTypetext after sub text before supXhtmlInlPresTypetext after sup text before insXhtmlEditTypetext after ins text before delXhtmlEditTypetext after del")); - } - } -} + var attributeValueXhtml = specObject.Values.OfType().First(); + Assert.That(attributeValueXhtml.QueryFormattedValue(), Is.EqualTo("XhtmlPType text before brtext after br text before spanXhtmlSpanTypetext after span text before emXhtmlEmTypetext after em text before strongXhtmlStrongTypetext after strong text before dfnXhtmlDfnTypetext after dfn text before codeXhtmlCodeTypetext after code text before sampXhtmlSampTypetext after samp text before kbdXhtmlKbdTypetext after kbd text before varXhtmlVarTypetext after var text before citeXhtmlCiteTypetext after cite text before abbrXhtmlAbbrTypetext after abbr text before acronymXhtmlAcronymTypetext after acronym text before qXhtmlQTypetext after q text before ttXhtmlInlPresTypetext after tt text before iXhtmlInlPresTypetext after i text before bXhtmlInlPresTypetext after b text before bigXhtmlInlPresTypetext after big text before smallXhtmlInlPresTypetext after small text before subXhtmlInlPresTypetext after sub text before supXhtmlInlPresTypetext after sup text before insXhtmlEditTypetext after ins text before delXhtmlEditTypetext after del")); + } + + [Test] + public void Verify_that_QueryFormattedValue_joins_multiple_enumeration_values() + { + var enumerationValueA = new EnumValue + { + Properties = new EmbeddedValue { OtherContent = "A" } + }; + + var enumerationValueB = new EnumValue + { + Properties = new EmbeddedValue { OtherContent = "B" } + }; + + var attributeValueEnumeration = new AttributeValueEnumeration(); + attributeValueEnumeration.Values.Add(enumerationValueA); + attributeValueEnumeration.Values.Add(enumerationValueB); + + Assert.That(attributeValueEnumeration.QueryFormattedValue(), Is.EqualTo("A;B")); + } + + [Test] + public void Verify_that_QueryFormattedValue_throws_when_attributeValue_is_null() + { + Assert.That(() => AttributeValueExtensions.QueryFormattedValue(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_QueryFormattedValue_throws_when_type_is_not_supported() + { + var unsupportedAttributeValue = new UnsupportedAttributeValue(); + + Assert.That( + () => unsupportedAttributeValue.QueryFormattedValue(), + Throws.Exception.TypeOf()); + } + + private class UnsupportedAttributeValue : AttributeValue + { + public override object ObjectValue + { + get => null; + set + { + } + } + + protected override AttributeDefinition GetAttributeDefinition() + { + return null; + } + + protected override void SetAttributeDefinition(AttributeDefinition attributeDefinition) + { + } + + internal override void ReadXml(System.Xml.XmlReader reader) + { + } + + internal override Task ReadXmlAsync(System.Xml.XmlReader reader, CancellationToken token) + { + return Task.CompletedTask; + } + + internal override void WriteXml(System.Xml.XmlWriter writer) + { + } + + internal override Task WriteXmlAsync(System.Xml.XmlWriter writer, CancellationToken token) + { + return Task.CompletedTask; + } + } + } +} diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/RelationGroupTypeExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/RelationGroupTypeExtensionsTestFixture.cs index 9dea1db..e88a352 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/RelationGroupTypeExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/RelationGroupTypeExtensionsTestFixture.cs @@ -21,12 +21,13 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { using System; - using System.Linq; - - using NUnit.Framework; - - using ReqIFSharp.Extensions.ReqIFExtensions; - using ReqIFSharp.Extensions.Tests.TestData; + using System.Linq; + + using NUnit.Framework; + + using ReqIFSharp; + using ReqIFSharp.Extensions.ReqIFExtensions; + using ReqIFSharp.Extensions.Tests.TestData; /// /// Suite of tests for the class. @@ -45,20 +46,49 @@ public void SetUp() } [Test] - public void Verify_that_QueryReferencingRelationGroups_returns_expected_results() - { - var relationGroupType = (RelationGroupType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "relationgrouptype"); - - var specObjects = relationGroupType.QueryReferencingRelationGroups(); - - Assert.That(specObjects.Count(), Is.EqualTo(1)); - } - - [Test] - public void Verify_that_on_QueryReferencingRelationGroups_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() - { - var relationGroupType = new RelationGroupType(); - + public void Verify_that_QueryReferencingRelationGroups_returns_expected_results() + { + var relationGroupType = (RelationGroupType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "relationgrouptype"); + + var specObjects = relationGroupType.QueryReferencingRelationGroups(); + + Assert.That(specObjects.Count(), Is.EqualTo(1)); + } + + [Test] + public void Verify_that_QueryReferencingRelationGroups_returns_empty_when_none_reference_type() + { + var reqIf = new ReqIF + { + CoreContent = new ReqIFContent() + }; + + var relationGroupType = new RelationGroupType { ReqIFContent = reqIf.CoreContent }; + var otherRelationGroupType = new RelationGroupType { ReqIFContent = reqIf.CoreContent }; + + var relationGroup = new RelationGroup(reqIf.CoreContent, null) + { + Type = otherRelationGroupType + }; + + reqIf.CoreContent.SpecRelationGroups.Add(relationGroup); + + var result = relationGroupType.QueryReferencingRelationGroups(); + + Assert.That(result, Is.Empty); + } + + [Test] + public void Verify_that_QueryReferencingRelationGroups_throws_when_relationGroupType_is_null() + { + Assert.That(() => RelationGroupTypeExtensions.QueryReferencingRelationGroups(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_on_QueryReferencingRelationGroups_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() + { + var relationGroupType = new RelationGroupType(); + Assert.That(() => relationGroupType.QueryReferencingRelationGroups(), Throws.Exception.TypeOf() .With.Message.Contains("The owning ReqIFContent of the RelationGroupType is not set.")); diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecElementWithAttributesExtensionTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecElementWithAttributesExtensionTestFixture.cs index de1196b..85fbcbe 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecElementWithAttributesExtensionTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecElementWithAttributesExtensionTestFixture.cs @@ -20,16 +20,18 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { - using System.IO; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; - using NUnit.Framework; - - using ReqIFSharp; - using ReqIFSharp.Extensions.ReqIFExtensions; - using ReqIFSharp.Extensions.Services; + using NUnit.Framework; + + using ReqIFSharp; + using ReqIFSharp.Extensions.ReqIFExtensions; + using ReqIFSharp.Extensions.Services; /// /// Suite of tests for the @@ -60,25 +62,175 @@ public async Task SetUp() } [Test] - public void Verify_that_QueryExternalObjects_returns_expected_results() - { - var specObject = this.reqIf.CoreContent.SpecObjects.Single(x => x.Identifier == "_3.4.2.2.2_BrLeft_2_BrRight_._BrLeft_f_BrRight_1"); - - var externalObjects = specObject.QueryExternalObjects(); - - Assert.That(externalObjects.Count, Is.EqualTo(1)); - } - - [Test] - public async Task Verify_that_QueryBase64Payloads_returns_expected_results() - { - var specObject = this.reqIf.CoreContent.SpecObjects.Single(x => x.Identifier == "_3.4.2.2.2_BrLeft_2_BrRight_._BrLeft_f_BrRight_1"); - + public void Verify_that_QueryExternalObjects_returns_expected_results() + { + var specObject = this.reqIf.CoreContent.SpecObjects.Single(x => x.Identifier == "_3.4.2.2.2_BrLeft_2_BrRight_._BrLeft_f_BrRight_1"); + + var externalObjects = specObject.QueryExternalObjects(); + + Assert.That(externalObjects.Count, Is.EqualTo(1)); + } + + [Test] + public void Verify_that_QueryExternalObjects_returns_empty_when_no_external_objects_are_present() + { + var specObject = new SpecObject + { + Values = + { + new AttributeValueBoolean(), + new AttributeValueString() + } + }; + + Assert.That(specObject.QueryExternalObjects(), Is.Empty); + } + + [Test] + public void Verify_that_QueryExternalObjects_throws_when_specElement_is_null() + { + Assert.That(() => SpecElementWithAttributesExtensions.QueryExternalObjects(null), Throws.ArgumentNullException); + } + + [Test] + public async Task Verify_that_QueryBase64Payloads_returns_expected_results() + { + var specObject = this.reqIf.CoreContent.SpecObjects.Single(x => x.Identifier == "_3.4.2.2.2_BrLeft_2_BrRight_._BrLeft_f_BrRight_1"); + var base64Payloads = await specObject.QueryBase64PayloadsAsync(this.reqIFLoaderService); - var base64Payload = base64Payloads.Single(); - - Assert.That(base64Payload.Item2, Does.StartWith("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfgAAACfCAIAAACazFx+AAAAAXNSR0IArs4c6QAA")); - } - } -} + var base64Payload = base64Payloads.Single(); + + Assert.That(base64Payload.Item2, Does.StartWith("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfgAAACfCAIAAACazFx+AAAAAXNSR0IArs4c6QAA")); + } + + [Test] + public void Verify_that_QueryBase64PayloadsAsync_throws_when_specElement_is_null() + { + Assert.That( + () => SpecElementWithAttributesExtensions.QueryBase64PayloadsAsync(null, this.reqIFLoaderService), + Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_QueryBase64PayloadsAsync_throws_when_loader_is_null() + { + var specObject = this.reqIf.CoreContent.SpecObjects.First(); + + Assert.That(() => specObject.QueryBase64PayloadsAsync(null), Throws.ArgumentNullException); + } + + [Test] + public async Task Verify_that_QueryBase64PayloadsAsync_returns_payloads_for_all_external_objects() + { + var specObject = new SpecObject + { + Values = + { + new AttributeValueXHTML + { + ExternalObjects = + { + new ExternalObject { Identifier = "object-1" }, + new ExternalObject { Identifier = "object-2" } + } + }, + new AttributeValueXHTML + { + ExternalObjects = + { + new ExternalObject { Identifier = "object-3" } + } + } + } + }; + + var loader = new StubReqIfLoaderService(); + + var payloads = await specObject.QueryBase64PayloadsAsync(loader); + + Assert.That(payloads.Select(x => x.Item1.Identifier), Is.EquivalentTo(new[] { "object-1", "object-2", "object-3" })); + Assert.That(payloads.Select(x => x.Item2), Is.EquivalentTo(new[] { "payload-object-1", "payload-object-2", "payload-object-3" })); + } + + [Test] + public void Verify_that_ReqIFContent_QueryExternalObjects_returns_expected_results() + { + var reqIfContent = new ReqIFContent(); + + var specObject = new SpecObject + { + ReqIFContent = reqIfContent, + Values = + { + new AttributeValueXHTML + { + ExternalObjects = + { + new ExternalObject { Identifier = "object-1" } + } + } + } + }; + + var specRelation = new SpecRelation + { + ReqIFContent = reqIfContent, + Values = + { + new AttributeValueXHTML + { + ExternalObjects = + { + new ExternalObject { Identifier = "object-2" } + } + } + } + }; + + reqIfContent.SpecObjects.Add(specObject); + reqIfContent.SpecRelations.Add(specRelation); + + var externalObjects = reqIfContent.QueryExternalObjects().ToList(); + + Assert.That(externalObjects.Select(x => x.Identifier), Is.EquivalentTo(new[] { "object-1", "object-2" })); + } + + [Test] + public void Verify_that_ReqIFContent_QueryExternalObjects_throws_when_reqIfContent_is_null() + { + Assert.That(() => ReqIFContentExtensions.QueryExternalObjects(null), Throws.ArgumentNullException); + } + + private class StubReqIfLoaderService : IReqIFLoaderService + { + public IEnumerable ReqIFData => throw new NotImplementedException(); + + public event EventHandler> ReqIfChanged + { + add => throw new NotImplementedException(); + remove => throw new NotImplementedException(); + } + + public Task GetSourceStreamAsync(CancellationToken token) + { + throw new NotImplementedException(); + } + + public Task LoadAsync(Stream reqifStream, SupportedFileExtensionKind fileExtensionKind, CancellationToken token) + { + throw new NotImplementedException(); + } + + public Task QueryDataAsync(ExternalObject externalObject, CancellationToken token) + { + return Task.FromResult($"payload-{externalObject.Identifier}"); + } + + public void Reset() + { + throw new NotImplementedException(); + } + } + } +} diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecObjectExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecObjectExtensionsTestFixture.cs index a732075..b3d70df 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecObjectExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecObjectExtensionsTestFixture.cs @@ -21,11 +21,12 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { using System; - using System.Linq; - - using NUnit.Framework; - - using ReqIFSharp.Extensions.ReqIFExtensions; + using System.Linq; + + using NUnit.Framework; + + using ReqIFSharp; + using ReqIFSharp.Extensions.ReqIFExtensions; /// /// Suite of tests for the class @@ -67,29 +68,81 @@ public void SetUp() this.specRelation.Source = this.specObject; } - [Test] - public void Verify_that_QueryContainerSpecifications_returns_expected_result() - { - var specifications = this.specObject.QueryContainerSpecifications(); - - Assert.That(specifications.Single(), Is.EqualTo(this.specification)); - } - - [Test] - public void Verify_that_when_ReqIFContent_is_null_exception_is_thrown() - { - this.specObject = new SpecObject(); - - Assert.That(() => this.specObject.QueryContainerSpecifications(), - Throws.TypeOf()); - } - - [Test] - public void Verify_that_QuerySpecRelations_returns_expected_result() - { - var specRelations = this.specObject.QuerySpecRelations(); - - Assert.That(specRelations.Single(), Is.EqualTo(this.specRelation)); - } - } -} + [Test] + public void Verify_that_QueryContainerSpecifications_returns_expected_result() + { + var specifications = this.specObject.QueryContainerSpecifications(); + + Assert.That(specifications.Single(), Is.EqualTo(this.specification)); + } + + [Test] + public void Verify_that_QueryContainerSpecifications_returns_empty_when_specObject_not_in_specification() + { + var specObject = new SpecObject + { + ReqIFContent = this.reqIf.CoreContent + }; + + Assert.That(specObject.QueryContainerSpecifications(), Is.Empty); + } + + [Test] + public void Verify_that_QueryContainerSpecifications_throws_when_specObject_is_null() + { + Assert.That(() => SpecObjectExtensions.QueryContainerSpecifications(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_when_ReqIFContent_is_null_exception_is_thrown() + { + this.specObject = new SpecObject(); + + Assert.That(() => this.specObject.QueryContainerSpecifications(), + Throws.TypeOf()); + } + + [Test] + public void Verify_that_QuerySpecRelations_returns_expected_result() + { + var specRelations = this.specObject.QuerySpecRelations(); + + Assert.That(specRelations.Single(), Is.EqualTo(this.specRelation)); + } + + [Test] + public void Verify_that_QuerySpecRelations_returns_results_when_specObject_is_target() + { + var targetSpecObject = new SpecObject(this.reqIf.CoreContent, null) + { + Identifier = "target" + }; + + var specRelation = new SpecRelation(this.reqIf.CoreContent, null) + { + Target = targetSpecObject + }; + + var specRelations = targetSpecObject.QuerySpecRelations(); + + Assert.That(specRelations.Single(), Is.EqualTo(specRelation)); + } + + [Test] + public void Verify_that_QuerySpecRelations_returns_empty_when_no_relations_exist() + { + var specObject = new SpecObject + { + ReqIFContent = this.reqIf.CoreContent + }; + + Assert.That(specObject.QuerySpecRelations(), Is.Empty); + } + + [Test] + public void Verify_that_QuerySpecRelations_throws_when_specObject_is_null() + { + Assert.That(() => SpecObjectExtensions.QuerySpecRelations(null), Throws.ArgumentNullException); + } + } +} diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecObjectTypeExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecObjectTypeExtensionsTestFixture.cs index 5e29ab1..71a9896 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecObjectTypeExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecObjectTypeExtensionsTestFixture.cs @@ -21,12 +21,13 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { using System; - using System.Linq; - - using NUnit.Framework; - - using ReqIFSharp.Extensions.ReqIFExtensions; - using ReqIFSharp.Extensions.Tests.TestData; + using System.Linq; + + using NUnit.Framework; + + using ReqIFSharp; + using ReqIFSharp.Extensions.ReqIFExtensions; + using ReqIFSharp.Extensions.Tests.TestData; /// /// Suite of tests for the class. @@ -45,20 +46,49 @@ public void SetUp() } [Test] - public void Verify_that_QueryReferencingSpecObject_returns_expected_results() - { - var specObjectType = (SpecObjectType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "requirement"); - - var specObjects = specObjectType.QueryReferencingSpecObjects(); - - Assert.That(specObjects.Count(), Is.EqualTo(3)); - } - - [Test] - public void Verify_that_on_QueryReferencingSpecifications_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() - { - var specObjectType = new SpecObjectType(); - + public void Verify_that_QueryReferencingSpecObject_returns_expected_results() + { + var specObjectType = (SpecObjectType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "requirement"); + + var specObjects = specObjectType.QueryReferencingSpecObjects(); + + Assert.That(specObjects.Count(), Is.EqualTo(3)); + } + + [Test] + public void Verify_that_QueryReferencingSpecObject_returns_empty_when_none_reference_type() + { + var reqIf = new ReqIF + { + CoreContent = new ReqIFContent() + }; + + var specObjectType = new SpecObjectType { ReqIFContent = reqIf.CoreContent }; + var otherSpecObjectType = new SpecObjectType { ReqIFContent = reqIf.CoreContent }; + + var specObject = new SpecObject(reqIf.CoreContent, null) + { + Type = otherSpecObjectType + }; + + reqIf.CoreContent.SpecObjects.Add(specObject); + + var result = specObjectType.QueryReferencingSpecObjects(); + + Assert.That(result, Is.Empty); + } + + [Test] + public void Verify_that_QueryReferencingSpecObject_throws_when_specObjectType_is_null() + { + Assert.That(() => SpecObjectTypeExtensions.QueryReferencingSpecObjects(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_on_QueryReferencingSpecifications_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() + { + var specObjectType = new SpecObjectType(); + Assert.That(() => specObjectType.QueryReferencingSpecObjects(), Throws.Exception.TypeOf() .With.Message.Contains("The owning ReqIFContent of the SpecObjectType is not set.")); diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecRelationTypeExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecRelationTypeExtensionsTestFixture.cs index f6d3278..a9b01a5 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecRelationTypeExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecRelationTypeExtensionsTestFixture.cs @@ -21,12 +21,13 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { using System; - using System.Linq; - - using NUnit.Framework; - - using ReqIFSharp.Extensions.ReqIFExtensions; - using ReqIFSharp.Extensions.Tests.TestData; + using System.Linq; + + using NUnit.Framework; + + using ReqIFSharp; + using ReqIFSharp.Extensions.ReqIFExtensions; + using ReqIFSharp.Extensions.Tests.TestData; /// /// Suite of tests for the class. @@ -45,20 +46,49 @@ public void SetUp() } [Test] - public void Verify_that_QueryReferencingSpecRelations_returns_expected_results() - { - var specRelationType = (SpecRelationType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "specificationrelation"); - - var specObjects = specRelationType.QueryReferencingSpecRelations(); - - Assert.That(specObjects.Count(), Is.EqualTo(1)); - } - - [Test] - public void Verify_that_on_QueryReferencingSpecRelations_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() - { - var specObjectType = new SpecRelationType(); - + public void Verify_that_QueryReferencingSpecRelations_returns_expected_results() + { + var specRelationType = (SpecRelationType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "specificationrelation"); + + var specObjects = specRelationType.QueryReferencingSpecRelations(); + + Assert.That(specObjects.Count(), Is.EqualTo(1)); + } + + [Test] + public void Verify_that_QueryReferencingSpecRelations_returns_empty_when_none_reference_type() + { + var reqIf = new ReqIF + { + CoreContent = new ReqIFContent() + }; + + var specRelationType = new SpecRelationType { ReqIFContent = reqIf.CoreContent }; + var otherSpecRelationType = new SpecRelationType { ReqIFContent = reqIf.CoreContent }; + + var specRelation = new SpecRelation(reqIf.CoreContent, null) + { + Type = otherSpecRelationType + }; + + reqIf.CoreContent.SpecRelations.Add(specRelation); + + var result = specRelationType.QueryReferencingSpecRelations(); + + Assert.That(result, Is.Empty); + } + + [Test] + public void Verify_that_QueryReferencingSpecRelations_throws_when_specRelationType_is_null() + { + Assert.That(() => SpecRelationTypeExtensions.QueryReferencingSpecRelations(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_on_QueryReferencingSpecRelations_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() + { + var specObjectType = new SpecRelationType(); + Assert.That(() => specObjectType.QueryReferencingSpecRelations(), Throws.Exception.TypeOf() .With.Message.Contains("The owning ReqIFContent of the SpecRelationType is not set.")); diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecificationExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecificationExtensionsTestFixture.cs index 0a3ae73..336a057 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecificationExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecificationExtensionsTestFixture.cs @@ -57,25 +57,66 @@ public async Task SetUp() } [Test] - public void Verify_that_QuerySpecHierarchies_returns_the_expected_results() - { - var specification = this.reqIf.CoreContent.Specifications.Single(x => x.Identifier == "_o7scS6dbEeafNduaIhMwQg"); - - Assert.That(specification.QueryAllContainedSpecHierarchies().Count(), Is.EqualTo(13)); - } - - [Test] - public void Verify_that_QueryAttributeDefinitions_returns_the_expected_results() - { - var specification = this.reqIf.CoreContent.Specifications.Single(x => x.Identifier == "_o7scS6dbEeafNduaIhMwQg"); - - var attributeDefinitions = specification.QueryAttributeDefinitions().ToList(); - - Assert.That(attributeDefinitions.Count, Is.EqualTo(3)); - - Assert.That(attributeDefinitions.Single(x => x.Identifier == "_o7scPKdbEeafNduaIhMwQg"), Is.Not.Null); - Assert.That(attributeDefinitions.Single(x => x.Identifier == "_o7scPadbEeafNduaIhMwQg"), Is.Not.Null); - Assert.That(attributeDefinitions.Single(x => x.Identifier == "_o7scO6dbEeafNduaIhMwQg"), Is.Not.Null); - } - } + public void Verify_that_QuerySpecHierarchies_returns_the_expected_results() + { + var specification = this.reqIf.CoreContent.Specifications.Single(x => x.Identifier == "_o7scS6dbEeafNduaIhMwQg"); + + Assert.That(specification.QueryAllContainedSpecHierarchies().Count(), Is.EqualTo(13)); + } + + [Test] + public void Verify_that_QuerySpecHierarchies_throws_when_specification_is_null() + { + Assert.That(() => SpecificationExtensions.QueryAllContainedSpecHierarchies(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_SpecHierarchy_QueryAllContainedSpecHierarchies_returns_expected_results() + { + var rootHierarchy = new SpecHierarchy(); + var childHierarchy = new SpecHierarchy(); + var grandChildHierarchy = new SpecHierarchy(); + + rootHierarchy.Children.Add(childHierarchy); + childHierarchy.Children.Add(grandChildHierarchy); + + var result = rootHierarchy.QueryAllContainedSpecHierarchies(); + + Assert.That(result, Is.EquivalentTo(new[] { childHierarchy, grandChildHierarchy })); + } + + [Test] + public void Verify_that_QueryAllContainedSpecObjects_returns_the_expected_results() + { + var specification = this.reqIf.CoreContent.Specifications.Single(x => x.Identifier == "_o7scS6dbEeafNduaIhMwQg"); + + Assert.That(specification.QueryAllContainedSpecObjects().Count(), Is.EqualTo(13)); + } + + [Test] + public void Verify_that_QueryAttributeDefinitions_returns_the_expected_results() + { + var specification = this.reqIf.CoreContent.Specifications.Single(x => x.Identifier == "_o7scS6dbEeafNduaIhMwQg"); + + var attributeDefinitions = specification.QueryAttributeDefinitions().ToList(); + + Assert.That(attributeDefinitions.Count, Is.EqualTo(3)); + + Assert.That(attributeDefinitions.Single(x => x.Identifier == "_o7scPKdbEeafNduaIhMwQg"), Is.Not.Null); + Assert.That(attributeDefinitions.Single(x => x.Identifier == "_o7scPadbEeafNduaIhMwQg"), Is.Not.Null); + Assert.That(attributeDefinitions.Single(x => x.Identifier == "_o7scO6dbEeafNduaIhMwQg"), Is.Not.Null); + } + + [Test] + public void Verify_that_QueryAttributeDefinitions_throws_when_specification_is_null() + { + Assert.That(() => SpecificationExtensions.QueryAttributeDefinitions(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_SpecHierarchy_QueryAllContainedSpecHierarchies_throws_when_specHierarchy_is_null() + { + Assert.That(() => SpecHierarchyExtensions.QueryAllContainedSpecHierarchies(null), Throws.ArgumentNullException); + } + } } \ No newline at end of file diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecificationTypeExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecificationTypeExtensionsTestFixture.cs index 3f252fb..752b52a 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecificationTypeExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecificationTypeExtensionsTestFixture.cs @@ -21,12 +21,13 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { using System; - using System.Linq; - - using NUnit.Framework; - - using ReqIFSharp.Extensions.ReqIFExtensions; - using ReqIFSharp.Extensions.Tests.TestData; + using System.Linq; + + using NUnit.Framework; + + using ReqIFSharp; + using ReqIFSharp.Extensions.ReqIFExtensions; + using ReqIFSharp.Extensions.Tests.TestData; /// /// Suite of tests for the class. @@ -45,20 +46,49 @@ public void SetUp() } [Test] - public void Verify_that_QueryReferencingSpecifications_returns_expected_results() - { - var specificationType = (SpecificationType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "specificationtype"); - - var specObjects = specificationType.QueryReferencingSpecifications(); - - Assert.That(specObjects.Count(), Is.EqualTo(2)); - } - - [Test] - public void Verify_that_on_QueryReferencingSpecifications_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() - { - var specificationType = new SpecificationType(); - + public void Verify_that_QueryReferencingSpecifications_returns_expected_results() + { + var specificationType = (SpecificationType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "specificationtype"); + + var specObjects = specificationType.QueryReferencingSpecifications(); + + Assert.That(specObjects.Count(), Is.EqualTo(2)); + } + + [Test] + public void Verify_that_QueryReferencingSpecifications_returns_empty_when_none_reference_type() + { + var reqIf = new ReqIF + { + CoreContent = new ReqIFContent() + }; + + var specificationType = new SpecificationType { ReqIFContent = reqIf.CoreContent }; + var otherSpecificationType = new SpecificationType { ReqIFContent = reqIf.CoreContent }; + + var specification = new Specification(reqIf.CoreContent, null) + { + Type = otherSpecificationType + }; + + reqIf.CoreContent.Specifications.Add(specification); + + var result = specificationType.QueryReferencingSpecifications(); + + Assert.That(result, Is.Empty); + } + + [Test] + public void Verify_that_QueryReferencingSpecifications_throws_when_specificationType_is_null() + { + Assert.That(() => SpecificationTypeExtensions.QueryReferencingSpecifications(null), Throws.ArgumentNullException); + } + + [Test] + public void Verify_that_on_QueryReferencingSpecifications_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() + { + var specificationType = new SpecificationType(); + Assert.That(() => specificationType.QueryReferencingSpecifications(), Throws.Exception.TypeOf() .With.Message.Contains("The owning ReqIFContent of the SpecificationType is not set.")); From 1358465a6cdd2527e1d0f8c41257986000397861 Mon Sep 17 00:00:00 2001 From: samatstarion Date: Sat, 4 Oct 2025 14:41:29 +0200 Subject: [PATCH 2/2] [revert] SpecElementWithAttributesExtensionTestFixture --- ...ementWithAttributesExtensionTestFixture.cs | 212 +++--------------- .../SpecRelationTypeExtensionsTestFixture.cs | 70 ++---- 2 files changed, 50 insertions(+), 232 deletions(-) diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecElementWithAttributesExtensionTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecElementWithAttributesExtensionTestFixture.cs index 85fbcbe..3ced4b6 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecElementWithAttributesExtensionTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecElementWithAttributesExtensionTestFixture.cs @@ -20,18 +20,16 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - - using NUnit.Framework; - - using ReqIFSharp; - using ReqIFSharp.Extensions.ReqIFExtensions; - using ReqIFSharp.Extensions.Services; + using System.IO; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + + using NUnit.Framework; + + using ReqIFSharp; + using ReqIFSharp.Extensions.ReqIFExtensions; + using ReqIFSharp.Extensions.Services; /// /// Suite of tests for the @@ -62,175 +60,25 @@ public async Task SetUp() } [Test] - public void Verify_that_QueryExternalObjects_returns_expected_results() - { - var specObject = this.reqIf.CoreContent.SpecObjects.Single(x => x.Identifier == "_3.4.2.2.2_BrLeft_2_BrRight_._BrLeft_f_BrRight_1"); - - var externalObjects = specObject.QueryExternalObjects(); - - Assert.That(externalObjects.Count, Is.EqualTo(1)); - } - - [Test] - public void Verify_that_QueryExternalObjects_returns_empty_when_no_external_objects_are_present() - { - var specObject = new SpecObject - { - Values = - { - new AttributeValueBoolean(), - new AttributeValueString() - } - }; - - Assert.That(specObject.QueryExternalObjects(), Is.Empty); - } - - [Test] - public void Verify_that_QueryExternalObjects_throws_when_specElement_is_null() - { - Assert.That(() => SpecElementWithAttributesExtensions.QueryExternalObjects(null), Throws.ArgumentNullException); - } - - [Test] - public async Task Verify_that_QueryBase64Payloads_returns_expected_results() - { - var specObject = this.reqIf.CoreContent.SpecObjects.Single(x => x.Identifier == "_3.4.2.2.2_BrLeft_2_BrRight_._BrLeft_f_BrRight_1"); - + public void Verify_that_QueryExternalObjects_returns_expected_results() + { + var specObject = this.reqIf.CoreContent.SpecObjects.Single(x => x.Identifier == "_3.4.2.2.2_BrLeft_2_BrRight_._BrLeft_f_BrRight_1"); + + var externalObjects = specObject.QueryExternalObjects(); + + Assert.That(externalObjects.Count, Is.EqualTo(1)); + } + + [Test] + public async Task Verify_that_QueryBase64Payloads_returns_expected_results() + { + var specObject = this.reqIf.CoreContent.SpecObjects.Single(x => x.Identifier == "_3.4.2.2.2_BrLeft_2_BrRight_._BrLeft_f_BrRight_1"); + var base64Payloads = await specObject.QueryBase64PayloadsAsync(this.reqIFLoaderService); - var base64Payload = base64Payloads.Single(); - - Assert.That(base64Payload.Item2, Does.StartWith("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfgAAACfCAIAAACazFx+AAAAAXNSR0IArs4c6QAA")); - } - - [Test] - public void Verify_that_QueryBase64PayloadsAsync_throws_when_specElement_is_null() - { - Assert.That( - () => SpecElementWithAttributesExtensions.QueryBase64PayloadsAsync(null, this.reqIFLoaderService), - Throws.ArgumentNullException); - } - - [Test] - public void Verify_that_QueryBase64PayloadsAsync_throws_when_loader_is_null() - { - var specObject = this.reqIf.CoreContent.SpecObjects.First(); - - Assert.That(() => specObject.QueryBase64PayloadsAsync(null), Throws.ArgumentNullException); - } - - [Test] - public async Task Verify_that_QueryBase64PayloadsAsync_returns_payloads_for_all_external_objects() - { - var specObject = new SpecObject - { - Values = - { - new AttributeValueXHTML - { - ExternalObjects = - { - new ExternalObject { Identifier = "object-1" }, - new ExternalObject { Identifier = "object-2" } - } - }, - new AttributeValueXHTML - { - ExternalObjects = - { - new ExternalObject { Identifier = "object-3" } - } - } - } - }; - - var loader = new StubReqIfLoaderService(); - - var payloads = await specObject.QueryBase64PayloadsAsync(loader); - - Assert.That(payloads.Select(x => x.Item1.Identifier), Is.EquivalentTo(new[] { "object-1", "object-2", "object-3" })); - Assert.That(payloads.Select(x => x.Item2), Is.EquivalentTo(new[] { "payload-object-1", "payload-object-2", "payload-object-3" })); - } - - [Test] - public void Verify_that_ReqIFContent_QueryExternalObjects_returns_expected_results() - { - var reqIfContent = new ReqIFContent(); - - var specObject = new SpecObject - { - ReqIFContent = reqIfContent, - Values = - { - new AttributeValueXHTML - { - ExternalObjects = - { - new ExternalObject { Identifier = "object-1" } - } - } - } - }; - - var specRelation = new SpecRelation - { - ReqIFContent = reqIfContent, - Values = - { - new AttributeValueXHTML - { - ExternalObjects = - { - new ExternalObject { Identifier = "object-2" } - } - } - } - }; - - reqIfContent.SpecObjects.Add(specObject); - reqIfContent.SpecRelations.Add(specRelation); - - var externalObjects = reqIfContent.QueryExternalObjects().ToList(); - - Assert.That(externalObjects.Select(x => x.Identifier), Is.EquivalentTo(new[] { "object-1", "object-2" })); - } - - [Test] - public void Verify_that_ReqIFContent_QueryExternalObjects_throws_when_reqIfContent_is_null() - { - Assert.That(() => ReqIFContentExtensions.QueryExternalObjects(null), Throws.ArgumentNullException); - } - - private class StubReqIfLoaderService : IReqIFLoaderService - { - public IEnumerable ReqIFData => throw new NotImplementedException(); - - public event EventHandler> ReqIfChanged - { - add => throw new NotImplementedException(); - remove => throw new NotImplementedException(); - } - - public Task GetSourceStreamAsync(CancellationToken token) - { - throw new NotImplementedException(); - } - - public Task LoadAsync(Stream reqifStream, SupportedFileExtensionKind fileExtensionKind, CancellationToken token) - { - throw new NotImplementedException(); - } - - public Task QueryDataAsync(ExternalObject externalObject, CancellationToken token) - { - return Task.FromResult($"payload-{externalObject.Identifier}"); - } - - public void Reset() - { - throw new NotImplementedException(); - } - } - } -} + var base64Payload = base64Payloads.Single(); + + Assert.That(base64Payload.Item2, Does.StartWith("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfgAAACfCAIAAACazFx+AAAAAXNSR0IArs4c6QAA")); + } + } +} diff --git a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecRelationTypeExtensionsTestFixture.cs b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecRelationTypeExtensionsTestFixture.cs index a9b01a5..f6d3278 100644 --- a/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecRelationTypeExtensionsTestFixture.cs +++ b/ReqIFSharp.Extensions.Tests/ReqIFExtensions/SpecRelationTypeExtensionsTestFixture.cs @@ -21,13 +21,12 @@ namespace ReqIFSharp.Extensions.Tests.ReqIFExtensions { using System; - using System.Linq; - - using NUnit.Framework; - - using ReqIFSharp; - using ReqIFSharp.Extensions.ReqIFExtensions; - using ReqIFSharp.Extensions.Tests.TestData; + using System.Linq; + + using NUnit.Framework; + + using ReqIFSharp.Extensions.ReqIFExtensions; + using ReqIFSharp.Extensions.Tests.TestData; /// /// Suite of tests for the class. @@ -46,49 +45,20 @@ public void SetUp() } [Test] - public void Verify_that_QueryReferencingSpecRelations_returns_expected_results() - { - var specRelationType = (SpecRelationType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "specificationrelation"); - - var specObjects = specRelationType.QueryReferencingSpecRelations(); - - Assert.That(specObjects.Count(), Is.EqualTo(1)); - } - - [Test] - public void Verify_that_QueryReferencingSpecRelations_returns_empty_when_none_reference_type() - { - var reqIf = new ReqIF - { - CoreContent = new ReqIFContent() - }; - - var specRelationType = new SpecRelationType { ReqIFContent = reqIf.CoreContent }; - var otherSpecRelationType = new SpecRelationType { ReqIFContent = reqIf.CoreContent }; - - var specRelation = new SpecRelation(reqIf.CoreContent, null) - { - Type = otherSpecRelationType - }; - - reqIf.CoreContent.SpecRelations.Add(specRelation); - - var result = specRelationType.QueryReferencingSpecRelations(); - - Assert.That(result, Is.Empty); - } - - [Test] - public void Verify_that_QueryReferencingSpecRelations_throws_when_specRelationType_is_null() - { - Assert.That(() => SpecRelationTypeExtensions.QueryReferencingSpecRelations(null), Throws.ArgumentNullException); - } - - [Test] - public void Verify_that_on_QueryReferencingSpecRelations_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() - { - var specObjectType = new SpecRelationType(); - + public void Verify_that_QueryReferencingSpecRelations_returns_expected_results() + { + var specRelationType = (SpecRelationType)this.reqIf.CoreContent.SpecTypes.Single(x => x.Identifier == "specificationrelation"); + + var specObjects = specRelationType.QueryReferencingSpecRelations(); + + Assert.That(specObjects.Count(), Is.EqualTo(1)); + } + + [Test] + public void Verify_that_on_QueryReferencingSpecRelations_NullReferenceException_is_thrown_when_owning_ReqIFContent_is_not_set() + { + var specObjectType = new SpecRelationType(); + Assert.That(() => specObjectType.QueryReferencingSpecRelations(), Throws.Exception.TypeOf() .With.Message.Contains("The owning ReqIFContent of the SpecRelationType is not set."));