/// <summary> /// Reads the <see cref="SpecificFailureMechanismEntity"/> and uses the information to create a <see cref="SpecificFailureMechanism"/>. /// </summary> /// <param name="entity">The <see cref="SpecificFailureMechanismEntity"/> to create a <see cref="SpecificFailureMechanism"/> with.</param> /// <param name="collector">The object keeping track of read operations.</param> /// <exception cref="ArgumentNullException">Thrown when any argument is <c>null</c>.</exception> internal static SpecificFailureMechanism Read(this SpecificFailureMechanismEntity entity, ReadConversionCollector collector) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (collector == null) { throw new ArgumentNullException(nameof(collector)); } var failureMechanism = new SpecificFailureMechanism { Name = entity.Name, Code = entity.Code, GeneralInput = { N = (RoundedDouble)entity.N, ApplyLengthEffectInSection = Convert.ToBoolean(entity.ApplyLengthEffectInSection) } }; entity.ReadCommonFailureMechanismProperties(failureMechanism, collector); ReadFailureMechanismSectionResults(entity, failureMechanism, collector); return(failureMechanism); }
public void Read_CollectorNull_ThrowArgumentNullException() { // Setup var entity = new SpecificFailureMechanismEntity(); // Call void Call() => entity.Read(null); // Assert string paramName = Assert.Throws <ArgumentNullException>(Call).ParamName; Assert.AreEqual("collector", paramName); }
public void Read_ValidEntityWithoutSections_ReturnSpecificFailureMechanism() { // Setup var entity = new SpecificFailureMechanismEntity { N = 1.1 }; var collector = new ReadConversionCollector(); // Call SpecificFailureMechanism specificFailureMechanism = entity.Read(collector); // Assert Assert.AreEqual(entity.FailureMechanismSectionEntities.Count, specificFailureMechanism.Sections.Count()); Assert.IsNull(specificFailureMechanism.FailureMechanismSectionSourcePath); }
public void Read_EntityWithNullValues_ReturnSpecificFailureMechanism() { // Setup var entity = new SpecificFailureMechanismEntity { N = 1.1 }; var collector = new ReadConversionCollector(); // Call SpecificFailureMechanism specificFailureMechanism = entity.Read(collector); // Assert FailureMechanismAssemblyResult assemblyResult = specificFailureMechanism.AssemblyResult; Assert.IsNaN(assemblyResult.ManualFailureMechanismAssemblyProbability); }
public void Read_ValidEntity_ReturnSpecificFailureMechanism() { // Setup var random = new Random(21); bool inAssembly = random.NextBoolean(); var probabilityResultType = random.NextEnumValue <FailureMechanismAssemblyProbabilityResultType>(); const string filePath = "failureMechanismSections/File/Path"; var entity = new SpecificFailureMechanismEntity { Name = "Specific failure mechanism name", Code = "FAALMECHANISME", N = random.NextDouble(1.0, 20.0), ApplyLengthEffectInSection = Convert.ToByte(random.NextBoolean()), InAssembly = Convert.ToByte(inAssembly), InAssemblyInputComments = "Some input text", InAssemblyOutputComments = "Some output text", NotInAssemblyComments = "Some not in assembly text", FailureMechanismSectionCollectionSourcePath = filePath, FailureMechanismAssemblyResultProbabilityResultType = Convert.ToByte(probabilityResultType), FailureMechanismAssemblyResultManualFailureMechanismAssemblyProbability = random.NextDouble(), FailureMechanismSectionEntities = { CreateSimpleFailureMechanismSectionEntity() } }; var collector = new ReadConversionCollector(); // Call SpecificFailureMechanism specificFailureMechanism = entity.Read(collector); // Assert FailureMechanismEntityTestHelper.AssertIFailureMechanismEntityProperties(entity, specificFailureMechanism); Assert.AreEqual(entity.Name, specificFailureMechanism.Name); Assert.AreEqual(entity.Code, specificFailureMechanism.Code); Assert.AreEqual(entity.FailureMechanismSectionEntities.Count, specificFailureMechanism.Sections.Count()); Assert.AreEqual(filePath, specificFailureMechanism.FailureMechanismSectionSourcePath); Assert.AreEqual(entity.N, specificFailureMechanism.GeneralInput.N, specificFailureMechanism.GeneralInput.N.GetAccuracy()); Assert.AreEqual(Convert.ToBoolean(entity.ApplyLengthEffectInSection), specificFailureMechanism.GeneralInput.ApplyLengthEffectInSection); }
public void Read_ValidEntityWithSections_ReturnSpecificFailureMechanism() { // Setup const string filePath = "sections/File/Path"; FailureMechanismSectionEntity failureMechanismSectionEntity = CreateSimpleFailureMechanismSectionEntity(); var sectionResultEntity = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity { FailureMechanismSectionEntity = failureMechanismSectionEntity }; SectionResultTestHelper.SetSectionResult(sectionResultEntity); failureMechanismSectionEntity.NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntities = new List <NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity> { sectionResultEntity }; var entity = new SpecificFailureMechanismEntity { N = 1.1, FailureMechanismSectionEntities = new List <FailureMechanismSectionEntity> { failureMechanismSectionEntity }, FailureMechanismSectionCollectionSourcePath = filePath }; var collector = new ReadConversionCollector(); // Call SpecificFailureMechanism specificFailureMechanism = entity.Read(collector); // Assert Assert.AreEqual(filePath, specificFailureMechanism.FailureMechanismSectionSourcePath); Assert.AreEqual(entity.FailureMechanismSectionEntities.Count, specificFailureMechanism.Sections.Count()); SectionResultTestHelper.AssertSectionResult(entity.FailureMechanismSectionEntities .SelectMany(fms => fms.NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntities) .Single(), specificFailureMechanism.SectionResults.Single()); }