Exemplo n.º 1
0
        public bool Export()
        {
            if (!AreSpecificFailureMechanismsUniquelyNamed())
            {
                log.Error(Resources.AssemblyExporter_Specific_failure_mechanisms_must_have_a_unique_name);
                return(false);
            }

            ExportableAssessmentSection exportableAssessmentSection = CreateExportableAssessmentSection();

            if (exportableAssessmentSection == null)
            {
                log.Error(Resources.AssemblyExporter_No_AssemblyResult_exported_Check_results_for_details);
                return(false);
            }

            try
            {
                SerializableAssemblyWriter.WriteAssembly(SerializableAssemblyCreator.Create(exportableAssessmentSection),
                                                         filePath);
            }
            catch (AssemblyCreatorException)
            {
                log.Error(Resources.AssemblyExporter_No_AssemblyResult_exported_Check_results_for_details);
                return(false);
            }
            catch (CriticalFileWriteException e)
            {
                log.ErrorFormat(Resources.AssemblyExporter_Error_Exception_0_no_AssemblyResult_exported, e.Message);
                return(false);
            }

            return(true);
        }
        public void Create_AssessmentSectionNull_ThrowsArgumentNullException()
        {
            // Call
            void Call() => SerializableAssemblyCreator.Create(null);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(Call);

            Assert.AreEqual("assessmentSection", exception.ParamName);
        }
        public void CreateSerializableAssembly_WithValidArguments_ReturnsSerializableAssembly()
        {
            // Setup
            const string assessmentSectionName = "assessmentSectionName";
            const string assessmentSectionId   = "assessmentSectionId";

            IEnumerable <Point2D> geometry = CreateGeometry();
            ExportableAssessmentSectionAssemblyResult assessmentSectionAssembly =
                ExportableAssessmentSectionAssemblyResultTestFactory.CreateResult();
            IEnumerable <ExportableFailureMechanism> failureMechanisms =
                new[]
            {
                CreateFailureMechanism(),
                CreateFailureMechanism(),
                CreateFailureMechanism(),
                CreateFailureMechanism()
            };

            var exportableAssessmentSection = new ExportableAssessmentSection(assessmentSectionName,
                                                                              assessmentSectionId,
                                                                              geometry,
                                                                              assessmentSectionAssembly,
                                                                              failureMechanisms,
                                                                              new[]
            {
                CreateCombinedSectionAssembly(CreateCombinedFailureMechanismSection()),
                CreateCombinedSectionAssembly(CreateCombinedFailureMechanismSection())
            });

            // Call
            SerializableAssembly serializableAssembly = SerializableAssemblyCreator.Create(exportableAssessmentSection);

            // Assert
            Assert.AreEqual("Assemblage.0", serializableAssembly.Id);
            AssertSerializableBoundary(exportableAssessmentSection.Geometry, serializableAssembly.Boundary);

            SerializableFeatureMember[] serializableAssemblyFeatureMembers = serializableAssembly.FeatureMembers;
            Assert.AreEqual(24, serializableAssemblyFeatureMembers.Length);

            var serializableAssessmentSection = (SerializableAssessmentSection)serializableAssemblyFeatureMembers[0];

            AssertSerializableAssessmentSection($"Wks.{assessmentSectionId}", assessmentSectionName, geometry, serializableAssessmentSection);
            var serializableAssessmentProcess = (SerializableAssessmentProcess)serializableAssemblyFeatureMembers[1];

            AssertSerializableAssessmentProcess("Bp.0", serializableAssessmentSection, serializableAssessmentProcess);
            var serializableTotalAssemblyResult = (SerializableTotalAssemblyResult)serializableAssemblyFeatureMembers[2];

            AssertSerializableTotalAssemblyResult("Vo.0",
                                                  assessmentSectionAssembly,
                                                  serializableAssessmentProcess,
                                                  serializableTotalAssemblyResult);

            AssertFailureMechanismConnections(3, 0, serializableTotalAssemblyResult, serializableAssemblyFeatureMembers);
            AssertFailureMechanismConnections(4, 1, serializableTotalAssemblyResult, serializableAssemblyFeatureMembers);
            AssertFailureMechanismConnections(5, 2, serializableTotalAssemblyResult, serializableAssemblyFeatureMembers);
            AssertFailureMechanismConnections(6, 3, serializableTotalAssemblyResult, serializableAssemblyFeatureMembers);

            var combinedFailureMechanismSectionCollection = (SerializableFailureMechanismSectionCollection)serializableAssemblyFeatureMembers[17];

            AssertSerializableFailureMechanismSectionCollection("Vi.4", combinedFailureMechanismSectionCollection);
            AssertCombinedFailureMechanismSectionAssemblyConnections(11, 4, 0, combinedFailureMechanismSectionCollection, serializableTotalAssemblyResult, serializableAssemblyFeatureMembers);
            AssertCombinedFailureMechanismSectionAssemblyConnections(12, 5, 1, combinedFailureMechanismSectionCollection, serializableTotalAssemblyResult, serializableAssemblyFeatureMembers);
        }